Do generowania statystyk dla optymalizatora kosztowego wykorzystuje się procedury pakietu DBMS_STATS. Optymalizator kosztowy na podstawie bieżących statystyk generuje plan wykonania zapytań SQL. Ważne jest, aby nie zaniedbać generowania tych statystyk,aby danie w nich się znajdujące odzwierciedlały aktualna charakterystykę obiektów bazy danych. Ogólnie pakiet DBMS_STATS służy do zarządzania tymi statystykami. Można powiedzieć, że jest to swego rodzaju alternatywa dla polecenia ANALYZE. Do utworzenia tabeli na potrzeby statystyk można użyć procedury CREATE_STAT_TABLE.
Parametry tej procedury, to:
ownname : nazwa schematu, w którym będą tworzone statystyki stattab : nazwa tabeli tblspace : nazwa przestrzeni tabel. Jeśli parametr ten nie zostanie podany przyjmuje się tu nazwę domyślnej przestrzeni tabel użytkownika. Przykład:
DBMS_STATS.CREATE_STAT_TABLE('scott','stats_table');
Do zbierania statystyk należy użyć procedury GATHER_TABLE_STATS pakietu DBMS_STATS.
Parametrami tej funkcji są:
ownname : nazwa właściciela obiektu tabname : nazwa analizowanego obiektu partname : nazwa partycji analizowanego obiektu estimate_percent : procent rekordów, które maja być odczytane podczas oceniania statystyk block_sample : opcja określająca, czy pobieramy cale bloki zamiast pojedynczych rekordów method_opt : dodatkowe opcje zbierania statystyk degree : stopień zrównoleglenia granularity : stopień dokładności podczas zbierania statystyk cascade : parametr określający, czy zostaną zebrane statystyki indeksów stattab : nazwa tabeli, w której zbierane są statystyki statid : identyfikator statystyk statown : nazwa schematu, w którym są przechowywane statystyki. Przykład:
DBMS_STATS.GATHER_TABLE_STATS ('scott','tab1',1, stattab=>'stats_table');
Powrót
|