Как регистрировать операторы, которые выполняются по индексу в Oracle? - PullRequest
1 голос
/ 24 февраля 2012

У меня есть индекс для таблицы в oracle, и я не знаю, используется она или нет, и как она используется. Есть ли способ зарегистрировать все операторы, которые используют этот индекс? Если нет, то есть ли способ узнать, используется ли этот индекс или нет?

Спасибо

1 Ответ

2 голосов
/ 24 февраля 2012

Понимание конечной цели определенно было бы полезно.

Вы можете запросить таблицу GV$SQL_PLAN, чтобы узнать, какие запросы в общем пуле используют определенный индекс

SELECT *
  FROM gv$sql_plan
 WHERE object_owner = <<owner of object>
   AND object_name  = <<name of index>>

Однако в зависимости от вашей системы операторы SQL могут не оставаться в общем пуле особенно долго, поэтому вам может потребоваться относительно частый опрос, чтобы убедиться, что вы ничего не пропустили. В зависимости от версии, редакции и лицензированных опций Oracle, вы также можете запросить таблицы AWR, чтобы получить историческую информацию о плане. Но это будет иметь информацию только по запросам, которые были достаточно дорогими, чтобы они были зафиксированы в снимке AWR.

SELECT *
  FROM dba_hist_sql_plan
 WHERE object_owner = <<owner of object>
   AND object_name  = <<name of index>>

Если вы пытаетесь выяснить, используется ли индекс, тем не менее, вы, вероятно, захотите использовать что-то вроде мониторинг индекса и позволить Oracle отслеживать, какие индексы используются. Однако следует помнить, что в этом подходе есть подводные камни. Например, индексы на внешних ключах , которые необходимы для эффективного удаления, не могут быть помечены как используемые для мониторинга индекса (и при этом они не будут обнаружены при просмотре планов запросов). Мониторинг индекса может также пропустить случаи, когда статистика по индексу используется для составления эффективного плана, несмотря на то, что сам индекс не используется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...