![]() |
|
Программирование >> Oracle
Стратегии и средства настройки 601 и выдает такие результаты: ops$tkyte@ORA8I.WORLD> ©showsql USERNAME SID SERIAL STATUS MODULE ACTION CLIENT INFO OPS$TKYTE 30,23483 ACTIVE 01@ showsql.sql CTXSYS 56,32 ACTIVE OPS$TKYTE(30,23483) ospid = 29832 program = sqlplusSaria (TNS V1-V3) Sunday 20:34 Sunday 20:40 last et = 0 SELECT USERNAME ( SID , SERIAL# ) ospid = PROCESS program = PROGRAM USERNAME, TO CHAR ( LOGON TIME, Day HH24:MI) LOGON TIME,TO CHAR(SYSDATE, Day HH24 :MI) CURRENT TIME,SQL ADDRESS,LAST CALL ET FROM V$SESSION WH ERE STATUS = ACTIVE AND RAWTOHEX(SQL ADDRESS) != 00 AND US ERNAME IS NOT NULL ORDER BY LAST CALL ET CTXSYS(56,32) ospid = 15610 program = ctxsrv@aria (TNS VI-V3) Monday 11:52 Sunday 20:40 last et = 20 BEGIN drilist.get cmd( :sid, :mbox, :pmask, :cmd type,:disp id, :disp retum address, :disp user, :disp command, :disp argl, :disp arg2, :disp arg3, :disp arg4, :disp arg5, :disp arg6, :di sp arg7, :disp arg8, :disp arg9, :disp arglO ) ; :error stack : = drue.get stack; exception when dr def.textile error then :error stack := drue.get stack; when others than drue.text on stack(sql errm); :error stack := drue.get stack; END; ops$tkyte@ORA8I.WORLD> Как видите, утилита SQL*Plus заполнила столбец MODULE представления V$SESSION именем выполняющегося сценария. Эта информация может очень помочь, особенно если приложения меняют значение в этом столбце, чтобы показать свое текущее состояние. Представление V$SESSION EVENT Мы уже несколько раз использовали это представление. Я часто использую его, чтобы понять, что заставляет процедуру или запрос ждать ресурса. Аналогичную информацию можно получить из трассировочного файла при соответствующей установке событий, но это представление облегчает получение текущих времен ожидания событий для сеанса и сравнение их с последующими, полученными после запуска того или иного процесса. Это намного проще, чем выискивать соответствующую информацию в трассировочном фале. Это представление содержит информацию об ожидании событий для всех сеансов в системе, поэтому позволяет узнать, чего именно ждут другие сеансы, а не только запрашивающий. Аналогично включению трассировки для другого сеанса с помощью пакета DBMS SYSTEM, можно использовать представление V$SESSION EVENT для слежения за ожиданием событий другими. Глава 10 Представление V$SESSION LONGOPS Это представление будет подробно рассмотрено в Приложении А. Оно используется продолжительными процессами, такими как создание индексов, резервное копирование и восстановление и любыми другими, которые, по мнению стоимостного оптимизатора, потребуют более шести секунд для информирования о ходе работы. Приложения также могут использовать это представление с помощью пакета DBMS APPLICATION INFO. Если создается длительно работающий процесс или задание, в нем можно выполнять вызовы процедур пакета DBMS APPLICATION INFO для информирования других сеансов о ходе работы. В этом случае легко контролировать работу задания и определять, зависло оно или просто для решения задачи нужно время. Представление V$SESSION WAIT Это представление содержит информацию обо всех сеансах, находящихся в состоянии ожидания, и о времени ожидания. Оно обычно используется для слежения за предположительно зависшими или слишком медленно работающими приложениями. Представление V$SESSTAT Представление V$SESSTAT аналогично V$MYSTAT, но содержит статистическую информацию обо всех сеансах, а не только о запрашивающем. Оно используется для контроля сеансов, работа которых вас интересует. Например, это представление можно использовать для контроля процента мягких разборов в приложении стороннего производителя, установленного на том же сервере. Это часто приходится делать при росте количества жестких разборов в ранее хорошо настроенной системе. Контролируя процент мягких разборов только этого нового приложения, можно быстро определить, не оно ли стало причиной появления в системе множества уникальных SQL-операторов, не использующих связываемые переменные. Представление V$SESS IO Оно позволяет понять, какой объем ввода/вывода выполнил текущий (или любой другой) сеанс. Я использую это представление аналогично представлениям V$MYSTAT и V$SESSION EVENT. Я делаю моментальный снимок, выполняю ряд действий, а затем определяю разницу между двумя моментами времени. Она показывает, какой объем ввода/вывода был выполнен в ходе рассматриваемых действий. Эту информацию можно получить и из отчета TKPROF, но в запросах легко выполнять подсчеты и агрегировать результаты. Утилита TKPROF будет показывать, сколько операций ввода/вывода потребовал каждый оператор. Запросы же к представлению V$SESS IO позволяют выполнять произвольный набор операторов и получать статистические данные, касающиеся ввода/вывода для всего набора в целом. Стратегии и средства настройки 603 Представления V$SQL и V$SQLAREA Эти представления содержат разобранные и хранящиеся в разделяемом пуле SQL-операторы. Оба эти представления уже использовались в нескольких главах. Представление V$SQLAREA - обобщающее. Оно будет содержать по одной строке для каждого SQL-запроса. Столбец VERSION COUNT показывает, сколько строк содержится в представлении V$SQL для соответствующего запроса. Старайтесь избегать запросов к этому представлению; обращайтесь непосредственно к представлению V$SQL. Получение информации из V$SQLAREA может потребовать слишком много ресурсов, особенно в загруженной системе. Представления V$SQLAREA и V$SQL позволяют увидеть, какие SQL-операторы выполняются в системе, сколько раз каждый оператор выполняется и разбирается, сколько логических и физических операций ввода/вывода он делает и т.д. Эти представления также позволяют находить SQL-операторы, не использующие связываемых переменных. Представление V$STATNAME Представление V$STATNAME содержит имена всех статистических показателей. Оно используется в соединениях с представлениями V$MYSTAT и V$SESSTAT для преобразования номера показателя в понятное имя. Представление V$SYSSTAT Тогда как представление V$SESSTAT содержит статистическую информацию по сеансам, в V$SYSSTAT она накапливается для экземпляра в целом. Сеансы начинаются и завершаются, соответствующие записи добавляются и удаляются в базовые таблицы представления V$SESSTAT, а данные в представлении V$SYSSTAT существуют до тех пор, пока сервер не будет остановлен. Именно эту информацию использует пакет StatsPack для вычисления большинства выдаваемых показателей. Представление V$SYSTEM EVENT Это представление для ожиданий событий играет ту же роль, что и представление V$SYSSTAT для статистических показателей. Оно содержит информацию об ожидании событий на уровне экземпляра. Эту информацию пакет StatsPack также использует при вычислении выдаваемых показателей. Резюме Настройка, выполняемая постфактум, - это немного удачи и много поисков. Если же настройка выполняется в ходе разработки, делать ее легко и просто. Я всегда предпочитаю простые и понятные решения, особенно если другие варианты подразумевают удачу . Настройка постфактум - одно из самых сложных дел. Необходимо разобраться, почему система работает медленно, где именно происходит замедление и как заста-
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |