16 марта 2011 г.

oracle: statspack

oracle: манипуляции с PERFSTAT

Актуально для Oracle 9i, версии выше используют AWR.

Вся статистика лежит в схеме PERFSTAT

-- список снепшотов
select * from stats$snapshot;
-- посмотреть начальный snap_id
select * from perfstat.stats$snapshot order by snap_id;



Сформировать отчёт spreport

SQL>  @?/rdbms/admin/spreport
В процессе выполнения нужно указать следующие переменные:
BEGIN_SNAP: Specifies the begin snapshot ID
END_SNAP: Specifies the end snapshot ID
REPORT_NAME: Specifies the report output name



Сформировать отчёт sprepsql (отчёт по конкретному sql запросу)

SQL>  @?/rdbms/admin/sprepsql
В процессе выполнения нужно указать следующие переменные:
BEGIN_SNAP: specifies the begin snapshot ID
END_SNAP: specifies the end snapshot ID
HASH_VALUE: specifies the hash value (hash запроса смотрим из spreport)
REPORT_NAME: specifies the report output name

Собрать статистику.

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

EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME=>'PERFSTAT',CASCADE=>TRUE);
или
EXECUTE DBMS_UTILITY.ANALYZE_SCHEMA('PERFSTAT','COMPUTE');


Удалить ненужные снепшоты
SQL>  CONNECT perfstat/my_perfstat_password
SQL>  @?/rdbms/admin/sppurge
спросит начальный и конечный snap_id для удаления
После этого нужно сделать commit