30 апреля 2011 г.

oracle: dbms_stats

9i DBMS_STATS
9i Gathering Optimizer Statistics

10g DBMS_STATS
Managing Optimizer Statistics


Установить статистику
-- Установить произольную статистику кол-во строк
exec DBMS_STATS.set_table_stats (ownname=>'ARBOR',tabname=>'ORD_ORDER',numrows => 4452760 );

-- Установить произольную статистику кол-во строк и кол-во блоков
exec dbms_stats.set_table_stats( ownname=>'ARBOR',tabname=>'ORD_ORDER, numrows => 10000, numblks => 1000 );


Удалить статистику
-- Удалить статистику для таблицы
exec DBMS_STATS.delete_table_stats (ownname=>'ARBOR',tabname=>'ORD_ORDER');

-- Удалить статистику для индекса
EXEC DBMS_STATS.delete_index_stats('SCOTT', 'EMPLOYEES_PK');

--
-- Export/Import статистики
--



-- собрать статистику
exec dbms_stats.gather_table_stats(ownname=>'ARBOR',tabname=>'CDR_UNBILLED',cascade=>true,estimate_percent=>10);

-- создать таблицу для хранения статистики
exec DBMS_STATS.CREATE_STAT_TABLE (ownname=>'GUPPI', stattab=>'STAT_TAB_CDR_UNBILLED');

-- экспорт статистики для таблицы ARBOR.CDR_UNBILLED в таблицу GUPPI.STAT_TAB_CDR_UNBILLED
exec DBMS_STATS.EXPORT_TABLE_STATS(ownname=>'ARBOR',tabname=>'CDR_UNBILLED', stattab=>'STAT_TAB_CDR_UNBILLED', cascade=>true, statown=>'GUPPI');

-- импорт статистики для таблицы ARBOR.CDR_UNBILLED из таблицы статистики GUPPI.STAT_TAB_CDR_UNBILLED
exec DBMS_STATS.IMPORT_TABLE_STATS(ownname=>'ARBOR',tabname=>'CDR_UNBILLED', stattab=>'STAT_TAB_CDR_UNBILLED', cascade=>true, statown=>'GUPPI');

-- удалить таблицу для хранения статистики
exec DBMS_STATS.DROP_STAT_TABLE(ownname=>'GUPPI', stattab=>'STAT_TAB_CUSTOMER_ID');


Посмотреть статистику

-- гистограммы
select * from DBA_HISTOGRAMS
WHERE owner = 'ARBOR' and table_name = 'CUSTOMER_ID_EQUIP_MAP_VIEW';

-- столбцов
SELECT * FROM DBA_TAB_COL_STATISTICS
 WHERE owner = 'ARBOR' and table_name = 'CUSTOMER_ID_EQUIP_MAP_VIEW';


-- таблицы
select * from dba_tables
 WHERE owner = 'ARBOR' and table_name = 'CUSTOMER_ID_EQUIP_MAP_VIEW';

-- индекса

select * from DBA_INDEXES
 WHERE owner = 'ARBOR' and table_name = 'CUSTOMER_ID_EQUIP_MAP_VIEW';