Коли ви дивитеся на DELETE або INSERT без запиту, тоді нульовий PLAN_HASH_VALUE цілком нормальний, оскільки плану немає. У цих випадках шлях доступу не розраховано та не потрібен.17 вересня 2019 р
Plan_hash_value є хеш плану виконання. Це зміниться, якщо ви отримаєте інший план. Отже, після очищення заяви ви все ще маєте той самий план, тобто це, ймовірно, було витрачено даремно.
Як змусити SQL ID використовувати певний хеш
- Показує поточний план. …
- Завантажити ідентифікатор SQL з кешу курсора. …
- Завантажити SQL ID з AWR. …
- Перевірте план виконання SQL_ID у STS. …
- Завантажте всі плани з SQL Tuning Set. …
- Змусити оператор SQL використовувати певний хеш. …
- Показує план виконання плану sql. …
- Показати всі базові лінії sql.
Щоб контролювати, який план використовує оператор, подивіться на керування планом SQL. Використовуючи це, ви можете створити базові лінії, які визначають, які плани оптимізатор може використовувати для запиту. Ви можете використовуйте подання DBA_HIST_SQL_PLAN, щоб перевірити наявність плану виконання та відповідних деталей. У цьому поданні ви побачите plan_hash_value.
Хеш плану запиту є хеш, створений з операцій у певному плані виконання. Я хотів би сказати, що кожен окремий план виконання має різний хеш, але там можуть бути одна або дві колізії хешів.
Щоб переглянути плани, збережені в базовій лінії плану SQL для конкретного оператора, використовувати DBMS_XPLAN. Функція DISPLAY_SQL_PLAN_BASELINE. Ця функція використовує інформацію про план, що зберігається в історії планів, для відображення планів. У наступній таблиці описано відповідні параметри для DBMS_XPLAN.