Если я отправляю вопрос о производительности запросов Oracle SQL, что я должен включить в свой вопрос? - PullRequest
3 голосов
/ 16 ноября 2008

Если я отправляю вопрос о запросе к базе данных Oracle, что я должен включить в свой вопрос, чтобы у людей была возможность ответить мне? Как мне получить эту информацию?

Простого предоставления неэффективного запроса может быть недостаточно.

Ответы [ 3 ]

4 голосов
/ 16 ноября 2008
  • Определение схемы задействованных таблиц.
  • Индексы, определенные в этих таблицах.
  • Запрос, который вы выполняете.
  • Результирующий план выполнения запроса
3 голосов
/ 17 ноября 2008

В идеале, получить полный план запроса, используя DBMS_XPLAN.DISPLAY_CURSOR, используя sql_id и child_cursor_id из v $ sql. В противном случае (то есть в более старых версиях) попробуйте v $ sql_plan и включите предикаты фильтра и доступа. EXPLAIN PLAN - это хорошо, если он действительно показывает использованный план.

Версия и редакция БД (Экспресс / Стандарт / Предприятие). Может ОС тоже. SELECT * FROM V $ VERSION

Если у вас есть какие-либо нестандартные параметры базы данных, это полезно знать (особенно что-либо связанное с оптимизатором). выберите * из параметра v $, где rownum <5 и isdefault! = 'TRUE'; * Если вы делаете изменить события сеанса '10053 контекст имени трассы навсегда, уровень 1' и проанализировать запрос, будет файл журнала, который будет включать все параметры, используемые при оптимизации запроса * </p>

Размеры таблиц реального мира и распределение столбцов (например, это таблица миллионов строк, 30% строк красного цвета и т. Д.). И соответствующие статистические данные USER_TABLES, USER_TAB_COLUMNS.

Как долго это выглядит на самом деле, а также любые доступные вам статистические данные SQL (согласованное получение, физическое чтение) из v $ sql.

Кроме того, кому вы ДУМАЕТЕ, что он сможет работать быстрее. Вы думаете, что есть лучший план, или вы просто скрещиваете пальцы?

3 голосов
/ 16 ноября 2008

План запроса всегда полезен

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