#oracle #oracle12c
#Oracle #oracle12c
Вопрос:
Я использую Oracle 12c. И на основе DBA_INDEX_USAGE я могу определить, какие индексы можно использовать, а какие нет. Мой вопрос: есть ли какой-либо способ получить именно запрос, который использует индекс?
Спасибо!
Комментарии:
1. Проверьте план запроса вашего SQL как место для начала. В общем, вы не управляете, какой индекс будет использовать Oracle. Скорее, вы пишете наилучший запрос, который вы можете, возможно, используя индексы, а затем позволяете Oracle принимать наилучшее решение о выполнении.
2. @TimBiegeleisen Я знаю это, но ваш ответ не был ответом на мое желание. Теперь у меня есть план перепроектировать все индексы в моей базе данных (~ 500 индексов), поэтому я должен знать количество запросов, использующих индекс, а также структурировать запрос, который вызывает индекс. Большое спасибо!
3. Я также использую oracle12c и не могу видеть представление с именем
DBA_INDEX_USAGE
4. Обновление: Теперь я могу ответить на свой вопрос. Чтобы определить, какие индексы можно использовать, а какие нет, я использую DBA_INDEX_USAGE. Чтобы проверить, точно ли запрос использует индекс, сначала я использую dba_hist_sqlstat для получения SQL_ID, затем я использую v $ sqltext для получения всех запросов к этому индексу. Обратите внимание, что: полный текст в v $ sqltext просто сохраняется в течение 7 дней.