niedziela, 9 października 2011

Tuning generowania statystyk

Zapewne często spotykacie się z koniecznością odtwarzania statystyk dla obiektów. Powstaje pytanie - dla ktorych tabel i których indeksów odświeżać statystyki? Dla wszystkich może okazac się zbyt kosztowne.
Mamy możliwość włączenia specjalnego monitoringu dla kilku tabel i odtwarzać statystyki tylko dla tych obiektów które tego wymagają. To czy tego wymagają czy nie określamy my, poprzez wskazanie wartości procentowej danych w obiekcie które zostały zmienione. Określamy np. że jeżeli zmieniło się 14% danych w tabeli employees to dla tej tabeli mają zostać wygenerowane statystyki.
Pierwsze co czynimy to ustawienia dla tabel:


alter table employees monitoring;

Następnie co jakiś czas otwarzamy statystyki dla schematu, ale w sposób  nieco zmieniony:

execute dbms_stats.gather_schema_stats(ownname=>'hr',estimate_percent=>14,options=>'GATHER STALE');

Powyżej wywołałem odtwarzanie statystyk w schemacie hr dla tabel które zmieniły sie w 14 lub więcej procentach. Objęte tym będą tylko tabele dla których włączyliśmy monitoring.
Teraz wystarczy to wrzucić w jakiegoś joba, by statystyki odtwarzały nam się cyklicznie.

Brak komentarzy:

Prześlij komentarz