Database Reference
In-Depth Information
L.: „ Ganz ausschließen können wir das aber nicht. Nehmen wir ein Beispiel, das praxisnä-
her ist. Wie würdest Du den Statistikstand vor dem Umbau des ersten Indexes wiederherstel-
len? Dafür muss man wieder nach einem passenden Zeitstempel suchen. Die einzige Quelle
für den jeweiligen Zeitstempel ist die View DBA_TAB_STATS_HISTORY. Die Daten dort
sind aber tabellenbezogen und aus diesem Grund können sie nicht alle Bedürfnisse abdecken.
Zeigen wir das an einem Beispiel ( s. das Skript test_case_restore_tab_stats.sql ) . Mit diesem
Skript kann man einige Kombinationen der Optimizer-Statistiken produzieren, die mit den
Zeitstempeln aus der View DBA_TAB_STATS_HISTORY nicht mehr zu restaurieren sind.
15:31:37 SQL> -- This combination cannot be restored in the conventional way
15:31:37 SQL>
15:31:37 SQL> select last_analyzed from user_tables where table_name='T1';
LAST_ANALYZED
-------------------
08.06.2013 15:31:06
15:31:37 SQL> select index_name,last_analyzed from user_indexes where table_name='T1';
INDEX_NAME LAST_ANALYZED
------------------------------ -------------------
I1_T1 08.06.2013 15:31:27
I2_T1 08.06.2013 15:31:06
15:31:37 SQL>
15:31:37 SQL> exec dbms_stats.gather_index_stats(user,'I2_T1')
PL/SQL procedure successfully completed.
15:31:37 SQL>
L.: „ Merken wir uns die Uhrzeit 15:31:37 des Erstellens der Optimizer-Statistiken. Diese Zeit
wird uns später helfen, den passenden Zeitstempel zu finden. Am Ende versucht das Skript
test_case_restore_tab_stats.sql mit allen Zeitstempeln aus der View DBA_TAB_STATS_HIS-
TORY, die Optimizer-Statistiken der Tabelle  T1 zurückzuspielen. In der unteren Ausgabe
findet man aber die gewünschte Kombination der Analysezeitpunkte nicht.
Search WWH ::




Custom Search