Топ-100
 

Кнопки и меню (главное окно)

Боковое меню

Верхнее меню

Меню "Action" 

Oracle transaction

Информация по транзакциям в БД Oracle, их количестве по времени, статусам, откату

  • Вкладка "Count" - Информация по количеству транзакций в разрезе год, месяц, день

  • Вкладка "Dead transaction" - транзакции по которым не удалось провести откат. Данные  из системной таблицы x$ktuxe

  • Вкладка "Rollback prograss" - на вкладке отображается информация по обработанным блокам транзакцией. При этом, если значение в столбце "used_ublk" это сигнализирует об откате.

  • Вкладка "Transaction recovery by SMON" - список сессий чьи изменения откатывет SMON (сессия была завершена в ОС)

menu - action.jpg
CerebroSQL - menu - db
CerebroSQL - menu - exec.jpg
CerebroSQL - menu - editors.jpg
 
 
oracle - transactions
 

Count transaction view

->Запрос для извлечения данных<-

SELECT TO_CHAR(FIRST_TIME,'YYYY') INTERVAL, 
       round(SUM(NEXT_CHANGE#-FIRST_CHANGE#)/1000) "COUNT" 
  FROM V$LOG_HISTORY where to_char(first_time,'yyyy')=$$CURRENT_YEAR
GROUP BY TO_CHAR(FIRST_TIME,'YYYY')
ORDER BY 1 

или 

SELECT TO_CHAR(FIRST_TIME,'MM') INTERVAL, 
       round(SUM(NEXT_CHANGE#-FIRST_CHANGE#)/1000) "COUNT" 
  FROM V$LOG_HISTORY where to_char(first_time,'yyyy')=$$CURRENT_YEAR
GROUP BY TO_CHAR(FIRST_TIME,'MM')
ORDER BY 1

или

SELECT TO_CHAR(FIRST_TIME,'MM-dd') INTERVAL, 
       round(SUM(NEXT_CHANGE#-FIRST_CHANGE#)/1000) "COUNT" 
  FROM V$LOG_HISTORY where to_char(first_time,'yyyy')=$$CURRENT_YEAR
GROUP BY TO_CHAR(FIRST_TIME,'MM-dd')
ORDER BY 1  

-----

Dead transaction

->Запрос для извлечения данных<-

select ktuxeusn,
       ktuxeslt,
       ktuxesqn,
       ktuxesta,
       ktuxesiz
  from x$ktuxe
where ktuxesta <> 'INACTIVE'

   and ktuxecfl like 'ÞAD%'

order by ktuxesiz asc  

-----

Rollback progress

->Запрос для извлечения данных<-

select ses.username,

       ses.sid,

       substr(ses.program, 1, 19) command,

       tra.used_ublk
  from v$session ses,

       v$transaction tra
where ses.saddr = tra.ses_addr 

-----

Transaction recovery by SMON

->Запрос для извлечения данных<-

select usn,
       state,
       undoblockstotal "Total",
       undoblocksdone "Done",
       undoblockstotal-undoblocksdone "ToDo",
       decode(cputime,0,'unknown',sysdate+(((undoblockstotal-undoblocksdone) / (undoblocksdone / cputime)) / 86400)) "Estimated"
  from v$fast_start_transactions 

-----

Oracle Top SQL

Топ формируется по следующим типам:

  • Buffer

  • Physical Reads

  • Executions

  • Parse Calls

  • Sharable Memory

  • Version Count

Oracle top SQL

Последовательность действий

  • Из выпадающего списка "Top type" выбрать тип группировки

  • В поле "Number of displayed rows" указать количество отображаемых строк в ТОПе

  • Нажать кнопку "Show data

Просмотр информации по запросу

  • Выделить строку в списке "List query"

  • В поле "Query text" отобразится сам запрос

  • На вкладке "Plan" план запроса

  • При переключении на вкладку "Recomendation" формируются рекомендации по оптимизации запроса с помощью DBMS_SQLTUNE

Buffer

->Запрос для извлечения данных<-

SELECT * FROM
(SELECT sql_fulltext sql,
        sql_id,
        buffer_gets, executions, buffer_gets/(nvl2(executions,1,1)) "Gets/Exec",
        hash_value,address
   FROM V$SQLAREA
  WHERE buffer_gets > 10000
ORDER BY buffer_gets DESC)
WHERE rownum <= 100

-----

Physical read

->Запрос для извлечения данных<-

SELECT * FROM
(SELECT sql_fulltext sql,
        sql_id,
        disk_reads, executions, disk_reads/(nvl2(executions,1,1)) "Reads/Exec",
        hash_value,address
   FROM V$SQLAREA
  WHERE disk_reads > 1000
ORDER BY disk_reads DESC)
WHERE rownum <= 100

-----

Executions

->Запрос для извлечения данных<-

SELECT * FROM
(SELECT sql_fulltext sql,
        sql_id,
        executions,

        эrows_processed,

        rows_processed/(nvl2(executions,1,1)) "Rows/Exec", 
        hash_value,

        address
   FROM V$SQLAREA
  WHERE executions > 100
ORDER BY executions DESC)
WHERE rownum <= 100  

-----

Parse calls

->Запрос для извлечения данных<-

SELECT * FROM
(SELECT sql_fulltext sql,
        sql_id,
        parse_calls,

        executions,

        hash_value,

        address
   FROM V$SQLAREA
  WHERE parse_calls > 1000
ORDER BY parse_calls DESC)
WHERE rownum <= 100 

-----

Sharable memory

->Запрос для извлечения данных<-

SELECT * FROM
(SELECT sql_fulltext sql,
        sql_id,
        sharable_mem,

        executions,

        hash_value,

        address
   FROM V$SQLAREA
  WHERE sharable_mem > 1048576
ORDER BY sharable_mem DESC)
WHERE rownum <= 100 

-----

Version count

->Запрос для извлечения данных<-

SELECT * FROM
(SELECT sql_fulltext sql,
        sql_id,
        version_count,

        executions,

        hash_value,

        address
   FROM V$SQLAREA
  WHERE version_count > 20 
ORDER BY version_count DESC)
WHERE rownum <= 100 

-----

Load recomendation

->Запрос для извлечения данных<-

DECLARE
  my_task_name VARCHAR2 (30);
BEGIN
my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK (
  sql_id      => $$SQL_ID,

  task_name   => $$TASK_NAME_GEN);
END;

/
begin

  DBMS_SQLTUNE.EXECUTE_TUNING_TASK ($$TASK_NAME_GEN);

end;

/
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK ($$TASK_NAME_GEN) "SQL" FROM dual 

-----

Oracle session list

Подробную информацию смотрите в соответствующем разделе

Oracle active SQL

История активных сессий, подробная информация о текущих активных сессиях

 
 
 

Oracle SQL Profile

Список созданных профилей для запросов. 

Цветовой индикатор в списке "Profile name" указывает на статус профиля, зеленый - активен, красный - отключен.

Через контекстное меню профиль можно включать/выключать

CcerebroSQL - Oracle SQL Profile list

Список созданных профилей SQL запросов

->Запрос для извлечения данных<-

select name, status from DBA_SQL_PROFILES

-----

Подробная информация о профиле 

->Запрос для извлечения данных<-

select name, category, signature, created, last_modified, type, status, force_matching, sql_text  from DBA_SQL_PROFILES where name=$$SQL_PROFILE_NAME

-----

Включение/выключение профиля запроса

->Запрос для извлечения данных<-

begin  

  DBMS_SQLTUNE.ALTER_SQL_PROFILE('$$SQL_PROFILE_NAME','STATUS','ENABLED');

end;

/

begin  

  DBMS_SQLTUNE.ALTER_SQL_PROFILE('$$SQL_PROFILE_NAME','STATUS','DISABLED');

end;

/

-----

Oracle FileStat

Подробная информация по использованию файлов БД. 

 

Страница "Datafile I/O" 

Статистика в процентах по вводу/выводу по файлам

 
CerebroSQL - Oracle Datafile IO

->Запрос для извлечения данных<-

SELECT a.tablespace_name,
       a.file_name,
       a.blocks,
       round((a.phywrts*(8192/1024))/1024) phywrts,
       round((a.phyrds*(8192/1024))/1024) phyrds
FROM
(SELECT t.name tablespace_name,
       d.name file_name,
       d.blocks,
       f.phywrts,
       f.phyrds
  FROM v$filestat f,
       v$datafile d,
       V$TABLESPACE t
WHERE f.file#=d.file#
   AND d.blocks >0 
   AND t.ts#=d.ts#
UNION ALL
SELECT t.name tablespace_name,
       d.name file_name,
       d.blocks, 
       f.phywrts,
       f.phyrds
  FROM v$tempstat f,
       v$tempfile d,
       V$TABLESPACE t
WHERE f.file#=d.file#
   AND d.blocks >0
   AND t.ts#=d.ts# ) a
  order by 4 desc

-----

Страница "Session I/O"

Статистика по вводу/выводу в разрезе сессий

CerebroSQL - Oracle session IO statistics

->Запрос для извлечения данных<-

SELECT
       s.sid||':'||
       s.serial# SS,
       NVL(DECODE(s.type,'BACKGROUND','SYS ('||b.name||')',
                  s.username),substr(p.program,instr(p.program,'('))) oracle_user,
       s.status status,
       s.machine machine,
       nvl(s.osuser,'('||b.name||')')  os_user, 
       round(((i.block_gets+i.consistent_gets)*8192)/1024/1024,3) logical_reads,
       round((i.physical_reads*8192)/1024/1024,3) physical_reads,
       s.program  client_program,
       t.ksusestv*10 cpu_usage,
       s.logon_time logon_time,
       s.sql_hash_value
  FROM v$session s,
       v$process p,
       v$sess_io i,
       x$ksusesta t,
       v$bgprocess b
WHERE p.addr=s.paddr
   AND i.sid=s.sid
   AND t.indx=s.sid
   AND t.ksusestn=12
   AND p.addr=b.paddr(+)
order by i.physical_reads desc 

-----

Страница "IOStat_File"

Данные из представления v_$iostat_file. Суммарные данные по вводу/выводу по типам файлов используемых в СУБД Oracle

CerebroSQL - view v_$iostat_file

->Запрос для извлечения данных<-

with iostat_file as
  (select filetype_name,sum(large_read_reqs) large_read_reqs,
          sum(large_read_servicetime) large_read_servicetime,
          sum(large_write_reqs) large_write_reqs,
          sum(large_write_servicetime) large_write_servicetime,
          sum(small_read_reqs) small_read_reqs,
          sum(small_read_servicetime) small_read_servicetime,
          sum(small_sync_read_latency) small_sync_read_latency,
          sum(small_sync_read_reqs) small_sync_read_reqs,
          sum(small_write_reqs) small_write_reqs,
          sum(small_write_servicetime) small_write_servicetime
     from sys.v_$iostat_file
    group by filetype_name)
select filetype_name, small_read_reqs + large_read_reqs "reads",
       large_write_reqs + small_write_reqs "writes",
       round((small_read_servicetime + large_read_servicetime)/1000)
          read_time_sec,
       round((small_write_servicetime + large_write_servicetime)/1000)
          write_time_sec,
       case when small_sync_read_reqs > 0 then
          round(small_sync_read_latency / small_sync_read_reqs, 2)
       end avg_sync_read_ms,
       round((  small_read_servicetime+large_read_servicetime
              + small_write_servicetime + large_write_servicetime)
             / 1000, 2)  total_io_seconds
  from iostat_file
order by 7 desc 

-----

Страница "IOStat_Function"

Статистика использования ввода/вывода с диска функциями в СУБД Oracle

CerebroSQL - v$ostat_function

->Запрос для извлечения данных<-

select
   function_name,
   small_read_reqs + large_read_reqs reads,
   small_write_reqs + large_write_reqs writes,
   wait_time/1000 wait_time_sec,
   case when number_of_waits > 0 then
          round(wait_time / number_of_waits, 2)
       end avg_wait_ms
from
   v$iostat_function
order by
    wait_time desc 

-----

 

Oracle memory using

Детальная информация по распределению памяти между буферами СУБД Oracle. Статистика их использования

CerebroSQL - Oracle memory using
 
 

Pools [MB] - распределение памяти между буферами в СУБД Oracle

Данные обновляются каждые 15 сек. Информация собирается основным ядром мониторинга работы БД

->Запрос для извлечения данных<-

select s.name "name", sum(s.summ) "sum" from (select case
  when pool is null then name
   when pool is not null then pool
end as name, round(sum(bytes)/1024/1024,1) as summ
from v$sgastat group by pool, name) s group by s.name
union all
select name, round(bytes/1024/1024) as sum  from v$sgainfo where name in ('Free SGA Memory Available','Streams Pool Size','Maximum SGA Size')

-----

Вкладка "Parameter"

->Запрос для извлечения данных<-

select name, display_value from v$parameter where
  Upper(name) like Upper('%inmemo%') or
  Upper(name) like Upper('%sga%') or
  Upper(name) like Upper('%pga%') or
  Upper(name) like Upper('%memor%') or
  Upper(name) like Upper('%pool%')
order by 1

-----

Вкладка "SGAINFO"

->Запрос для извлечения данных<-

select name, round(bytes/1024/1024,2) "MB", resizeable from V$SGAINFO

------

Вкладка "SGASTAT"

->Запрос для извлечения данных<-

select pool, name, bytes from V$SGASTAT

-----

Вкладка "PGASTAT"

->Запрос для извлечения данных<-

select name,
       case
         when Upper(substr(unit, 0,4))= Upper('byte') then 
              round(value/1024/1024,2)||' MB' else to_char(value)
       end "value", substr(unit, 0,4) "Type"
  from V$PGASTAT

-----

Вкладка "PGA Advice"

->Запрос для извлечения данных<-

SELECT ROUND(pga_target_for_estimate/1024/1024) target_mb,
       estd_pga_cache_hit_percentage cache_hit_perc
FROM   v$pga_target_advice    

-----

Вкладка "Cache advice"

->Запрос для извлечения данных<-

SELECT size_for_estimate,
       estd_physical_read_factor,
       estd_physical_reads
FROM   v$db_cache_advice
WHERE  name= 'DEFAULT'
AND    block_size    = (SELECT value
                        FROM   v$parameter
                        WHERE  name = 'db_block_size')
AND    advice_status = 'ON'   

-----

Вкладка "Memory advice"

->Запрос для извлечения данных<-

SELECT memory_size, memory_size_factor, estd_db_time, estd_db_time_factor
  FROM v$memory_target_advice
ORDER BY memory_size

-----

Oracle ASM storage

Подробную информацию смотрите в соответствующем разделе

Oracle alert.log view

Просмотр системного журнала alert.log

Alert.jpg

->Запрос для извлечения данных<-

select component_id, host_address,originating_timestamp,message_text
  from v$diag_alert_ext
where component_id not like '%tnslsnr%'
order by originating_timestamp

-----

Переключатель "Type filter"

  • Full data - загрузить все данные из "v$diag_alert_ext"

  • Ora only - выбрать только строки содержащие текст ошибок

  • Select the last - выбрать последние N (значение указывается в поле  "The number of lines (last)") строк

  • Date between - выбрать данные за интервал времени

Oracle AWR generator

Формирование и просмотр AWR отчетов

 

Формирование отчета

  • Из выпадающего списка "Start_id" выбрать snap_id начиная с которого формировать отчет

  • Из выпадающего списка "End_id" выбрать snap_id заканчивая которым формировать отчет

  • Нажать кнопку "Show"

  • В блоке "Report" появится AWR отчет в HTML формате

Программа сформирует AWR отчет и сохранит его в локальной базе и на диске в директории .\tmp\awr\

Имя отчета добавится в список "AWR save list"

Просмотр ранее сформированных отчетов

  • Установить галку "Show reports for all databases" если необходимо просмотреть AWR отчет по другой базе

  • При необходимости список сохраненных отчетов можно отсортировать выбрав нужную БД из выпадающего списка "Select the name of the database"

  • выбрать нужный отчет в списке "AWR save list"

CerebroSQL - Oracle AWR-report generator

Номер снимка данных и время его создания

->Запрос для извлечения данных<-

select a.* from (select snap_id||' {'||to_char(end_interval_time,'dd:mm:yyyy hh24:mi')||'}' as "ID"
      from DBA_HIST_SNAPSHOT order by snap_id desc) a 

-----

Формирование AWR

->Запрос для извлечения данных<-

select * from table(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML((select dbid from v$database),1,'$$START_SNAP','$$END_SNAP')) 

-----

 

Registry

Список "зарегистрированных" компонентов БД, их статус и версия

 
CerebroSQL - Oracle registry
CerebroSQL - Oracle registry history

Registry

->Запрос для извлечения данных<-

select dr.COMP_NAME, dr.VERSION, dr.STATUS, dr.SCHEMA, dr.PROCEDURE from DBA_REGISTRY dr

-----

Registry history

->Запрос для извлечения данных<-

select h.ACTION_TIME,
       h.ACTION,
       h.NAMESPACE,
       h.VERSION,
       h.COMMENTS
  from dba_registry_history h

-----

Program SQL

Список запросов (не полный) используемых для сбора данных о состоянии БД

 
CerebroSQL - program query storage.jpg
 

Scripts

Персональное хранилище скриптов для операционных систем. 

Создание новой записи о скрипте

  • Нажать кнопку "Create new script"

  • Заполнить поле "Script name" - имя скрипта

  • Заполнить поле (или выбрать из списка ранее введенных) "Group name" - поле используется для группировки записей в дереве "List script"

  • Из выпадающего списка "Script type" выбрать тип скрипта (для добавления нового типа нажать кнопку "Add type")

  • В поле "Comment" ввести комментарий при необходимости

  • В поле "Run time string [info]"  указать интервал запуска скрипта в ОС (информационно)

  • В поле "Script" ввести тело скрипта

  • Нажать кнопку "Save"

 
CerebroSQL - script catalog.jpg

Oracle feature used

Статистика использования опций в СУБД Oracle

CerebroSQL - Oracle feature usage

->Запрос для извлечения данных<-

SELECT name,
       detected_usages detected,
       total_samples   samples,
       currently_used  used,
       to_char(last_sample_date,'DD-MM-YYYY:HH24:MI') last_sample,
       sample_interval interval
  FROM dba_feature_usage_statistics
where version = (select version from v$instance)
order by currently_used desc, name

-----

 
 

Меню "DB"

 

Reclaimable space

Рекомендации СУБД по оптимизации структуры хранения объектов, освобождения пространства

Oracle reclaimable space

->Запрос для извлечения данных<-

select TABLESPACE_NAME,
       segment_name,
       segment_owner,
       segment_type,
       partition_name,
       Round(allocated_space/1024/1024,2) "allocated_space" ,
       round(used_space/1024/1024,2) "used_space",
       Round(reclaimable_space/1024/1024,2) "reclaimable_space",
       recommendations,
       c1,c2,c3
from
table(dbms_space.asa_recommendations())
order by reclaimable_space desc 

-----

Show "Startup file"

Сформировать и показать команды для пересоздания controlfile базы данных

 
Oracle controlfile text

Аналогичный список команд формируется через sqlplus следующей командой:

> alter database backup controlfile to trace as '<Path>';

Show "SPFile"

Сформировать и показать файл параметров

 
Oracle pfile view
 

Representation

Описание системных представлений каталога СУБД Oracle

 
Вкладка "My view description"

Список описаний представлений поставляемых с программой. Описания можно редактировать через редактор БД программы

Oracle representation view (my)
Вкладка "System view description"

Описание объектов извлекаемое из БД. Содержит информацию как о колонках представлений так и их код

Oracle representation view (system data)
 

Меню "Exec"

Меню служит хранилищем ссылок для быстрого подключения к серверам (подпункт putty) и запуска сторонних программ (подпункт link)

Link

Список сохраненных линков для быстрого запуска сторонних программ

Putty

Список сохраненных соединений для быстрого подключения к серверам через putty

Putty [No connect]

Запустить putty без подключения к серверам

Conf(Putty)

Создание ссылки для быстрого подключения к серверу используя программу putty.exe (программа putty.exe должна располагаться в директории .\config)

 
putty conf - show

Создание соединения

  • Нажать кнопку "New" - не обязательное действие, необходимо для полной очистки всех полей формы

  • В поле "Group name" ввести имя группы - используется для группировки соединений в подменю в меню exec и в дереве соединений

  • Заполнить поле "Connection alias" - выводится в меню

  • Заполнить поле "Server IP"

  • Заполнить поле "DNS name server"

  • Заполнить поле "User connect"

  • Заполнить поле "User password" или "Key privat file" если нужно подключатся по закрытому ключу

  • Сохранить соединение нажатием кнопки "Save"

Нажатие кнопки "Connect" - подключится через putty немедленно с введенными параметрами

putty conf - saved connect

Запись в меню состоит из DNS имени сервера и имени пользователя в скобках под кем осуществляется подключение 

 
CerebroSQL - list connect using putty.jp

Conf[Link]

Создание линков для быстрого запуска сторонних программ с возможностью передачи им параметров

Порядок действий

  • Нажать кнопку "Create new link"

  • Заполнить поле "Program name" - информационно

  • Указать путь к исполняемому файлу сторонней программы в поле "Exe path"

  • Если необходимо указать параметры, ввести их в поле "Parameter start"

create exec link.jpg
 

Oracle parameter editor

Редактор параметров СУБД Oracle позволяет быстро просматривать параметры БД и менять их при необходимости

Изменение значения параметра

  • В поле "Filter" ввести имя параметра для фильтрации списка "Parameter list"

  • Выбрать параметр в списке "Parameter list"

  • В поле "Value" ввести новое значение

  • В блоке "Scope" выбрать метод изменения параметра

  • Нажать кнопку "Apply"

CerebroSQL - oracle parameter editor.jpg