DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Что такое AUTOTRACE?

AUTOTRACE - это, может быть, один из наиболее тщательно скрываемых секретов SQI?Plus. Данное средство стало доступным в SQI?Plus 2.3, и оно буква­льно вкладывает вам в руки замечательную информацию, позволяющую отказа­ться от прогона SQL_TRACE, обработки его выходной информации с помощью tkprof, очистки файлов трассировки и управления ими, а также от выполнения других административных действий, которые можно считать накладными рас­ходами, связанными с этими операциями. Получить утилиту AUTOTRACE очень легко, а использовать ее еще легче.
Для создания AUTOTRACE необходимо запустить сценарий 

plustrce.sql, 

кото­рый размещен в каталоге $ORACLE_HOME/sqlplus/admin. Для версий Oracle, появившихся до 8.1.0 на платформе Windows NT, этот сценарий следует искать в каталоге plusXX. В некоторых выпусках файл 

plustrce.sql 

(к нашему удивлению) можно найти в каталоге $ORACLE_HOME/dbms.
Чтобы создать пользователя для AUTOTRACE, просто зарегистрируйтесь как SYS, а затем запустите вышеупомянутый сценарий. Наряду с другими объек­тами он создает роль по имени PLUSTRACE. Все, что вам нужно сделать после завершения выполнения сценария, это предоставить полномочия роли PLUSTRACE всем релевантным пользователям и подготовить их к использова­нию AUTOTRACE.
Замечание Поскольку AUTOTRACE автоматически генерирует Explain Plan одного или нескольких операторов SQL для указанного пользователя, таблица PLAN_TABLEb схеме пользователя должна быть создана еще до попыток применения AUTOTRACE. Если это не так, от имени запустившего AUTOTRACE пользователя выполните сценарий utlxplan.sql, который хранится в каталоге $ORACLE_HOME/rdbms/admin.
Хотя применяемым по умолчанию методом использования AUTOTRACE яв-
ляется команда set autotrace on, выполнить эту команду удается не всегда, осо-
бенно, если запрос возвращает сотни тысяч строк. Опция        позволяет
взглянуть только на статистику запроса, без его данных.
Совет
Опцию traceonly можно также использовать как очень быстрый метод получения Explain Plan для оператора SQL. Это справедливо, когда AUTOTRACE включается на клиентской машине из версии SQL*Plus для Windows, и как только появляется окно диалога "Query is Executing", нажмите на кнопку Cancel и получите Explain Plan.

Ниже приведен пример прогона AUTOTRACE:
О  SQL> set autotrace traceonly
SQL> select count   (*)   from TEST_OBJECTS;

Execution Plan

0        SELECT STATEMENT Optimizer=CHOOSE   (Cost=1        Card=1)
0       SORT   (AGGREGATE)
1 TABLE ACCESS (FULL) OF 'TEST_OBJECTS'        (Cost=l Card=1) Statistics

28    recursive calls 16    db block gets
2   consistent gets
0    physical reads
0        redo size
1083        bytes sent via SQL*Net to client
669        bytes received via SQL*Net from client
4    SQL*Net roundtrips to/from client
1        sorts (memory)
sorts (disk)
rows processed
Как видно из этих выходных данных, AUTOTRACE предлагает множество информации, в том числе количество рекурсивных вызовов, общее число логи­ческих операций ввода/вывода для оператора SQL, физический ввод/вывод, количество генерированных блоков обновлений (если необходимо), сведения о трафике SQL, статистики сортировки (сортировки в памяти против дисковых сортировок) и общее число обработанных строк.
Замечание
Как упоминалось в начале главы, необходимо присвоить приоритеты усилиям по настройке на основании потребляемых ресурсов и частоты выполнения операторов SQL в системе. Например, если за период продолжительностью в 24 час 100 операторов SQL в совокупности производят 2 млн операций логического ввода/вывода, а один запрос делает 1 млн операций логического ввода/вывода всего за одно свое выполнение, нужно ли фокусировать свои усилия именно на этом запросе. Да, потому что данный запрос составляет всего 1 % от рабочей нагрузки, но при этом потребляет 50% ресурсов. Такую информацию можно получить, сделав запрос kV$SQL относительно Buffer_Gets и Executions.
 


происшествия в санкт петербурге сегодня







jAntivirus