Databáze -11g zavedla novou funkci shromažďování přírůstkových statistik
-Přírůstkové statistiky budou fungovat pouze pro tabulky s oddíly, kde se globální statistiky aktualizují přírůstkově skenováním pouze oddílů, které se změnily od posledního spuštění. Obecně jsou nejnovější oddíly ty, do kterých se vkládají data, a většinou zůstávají starší oddíly nedotčeny. Při povolení přírůstkové statistiky u tabulky se statistiky shromažďují pouze na těch oddílech, na kterých jsou nějaké DML, zbývající se nekontrolují, což by ušetřilo spoustu času.
-Rozdělené tabulky jsou velké a pokud potřebujeme pravidelně shromažďovat statistiky, bylo by to velmi časově náročné a Přírůstkové shromažďování statistik zkracuje čas potřebný ke shromažďování statistik
Příklad funkce inkrementálního shromažďování statistik Oracle 11g v sadě Oracle E-Business Suite.
Vezměme si příklad xla_ae_lines, což je tabulka oddílů a má mnoho záznamů v intenzivně využívané instanci ERP
Testovací případ bez nastavení přírůstkové preference
-Vytvořte tabulku xla_ae_lines_bkp jako tabulku oddílů pro provedení tohoto testovacího případu
– Vložení dat z tabulky xla_ae_lines
vložit do xla.xla_Ae_lines_bkp select * from xla.xla_ae_lines;
Vytvořeno 2119409 řádků. |
-nastavit čas zapnutí
exec fnd_stats.gather_table_stats('XLA','XLA_AE_LINES_BKP'); Procedura PL/SQL byla úspěšně dokončena. Uplynulo:00:00:49.06 |
- První shromáždění statistik po vložení dat trvalo 49,06 s.
- Zkontrolujte statistiky a globální úroveň a úroveň oddílu
vyberte table_name,to_Char(last_analyzed,‘DD-MON-YY HH24:MI:SS’) „last_analyzed“ z dba_Tables, kde název_tabulky jako ‚XLA_AE_LINES_BKP‘;
TABLE_NAME posledně analyzováno ——————————————————— XLA_AE_LINES_BKP 09-SEP-16 10:04:34
vyberte partition_name,to_Char(last_analyzed,‘DD-MON-YY HH24:MI:SS’) „last_analyzed“ z dba_Tab_partitions, kde table_name jako ‚XLA_AE_LINES_BKP‘; PARTITION_NAME posledně analyzováno ——————————————————— AP 09-SEP-16 10:04:15 AR 09-SEP-16 10:04:16 CE 09-SEP-16 10:04:16 CST 09-SEP-16 10:04:23 DPP 09-SEP-16 10:04:23 ZÁBAVA 09-SEP-16 10:04:23 FV 09-SEP-16 10:04:23 GMF 09-SEP-16 10:04:23 IGC 09-SEP-16 10:04:23 IGI 09-SEP-16 10:04:23 LNS 09-SEP-16 10:04:23 OFA 09-SEP-16 10:04:23 OKL 09-SEP-16 10:04:23 OZF 09-SEP-16 10:04:23 PA 09-SEP-16 10:04:24
|
- Smažte data z jednoho oddílu a zkontrolujte, jak se statistiky počítají
smazat z xla.xla_ae_lines_bkp kde application_id=222; |
- Shromažďování statistik usign fnd_Stats
exec fnd_stats.gather_table_stats('XLA','XLA_AE_LINES_BKP');
Procedura PL/SQL byla úspěšně dokončena.
Uplynulo:00:00:25.06 - Po smazání dat bylo spuštěno shromažďování statistik bez nastavení předvolby. Trvalo to 25,06 s
- Kontrola globálních statistik a statistik oddílů
vyberte table_name,to_Char(last_analyzed,‘DD-MON-YY HH24:MI:SS’) „last_analyzed“ z dba_Tables, kde název_tabulky jako ‚XLA_AE_LINES_BKP‘;
TABLE_NAME naposledy analyzováno ——————————————————— XLA_AE_LINES_BKP 09-SEP-16 10:20:26 vyberte partition_name,to_Char(last_analyzed,‘DD-MON-YY HH24:MI:SS’) „last_analyzed“ z dba_Tab_partitions, kde table_name jako ‚XLA_AE_LINES_BKP‘; PARTITION_NAME naposledy analyzováno ——————————————————— AP 09-SEP-16 10:20:14 AR 09-SEP-16 10:20:14 CE 09-SEP-16 10:20:14 CST 09-SEP-16 10:20:15 DPP 09-SEP-16 10:20:15 ZÁBAVA 9-SEP-16 10:20:15 FV 09-SEP-16 10:20:15 GMF 09-SEP-16 10:20:15 IGC 09-SEP-16 10:20:15 IGI 09-SEP-16 10:20:15 LNS 09-SEP-16 10:20:16 OFA 09-SEP-16 10:20:16 OKL 09-SEP-16 10:20:16 OZF 09-SEP-16 10:20:16 PA 09-SEP-16 10:20:17
|
POZNÁMKA:statistiky se shromažďují na všech oddílech, i když jsou odstraněna pouze data oddílu AR, pro všechny oddíly se aktualizuje last_analyzed
Testovací případ s nastavením přírůstkové preference
- K provedení tohoto testovacího případu přetáhněte a znovu vytvořte tabulku xla_ae_lines_bkp jako tabulku oddílů
- Vložte data z tabulky xla_ae_lines
vložit do xla.xla_Ae_lines_bkp select * from xla.xla_ae_lines;
Vytvořeno 2119409 řádků. |
-nastavit čas zapnutí
exec dbms_stats.set_table_prefs(‘XLA‘,‘XLA_AE_LINES_BKP‘,‘INCREMENTAL‘,‘TRUE‘); |
- Zkontrolujte, zda je nastavení nastaveno
vyberte dbms_stats.get_prefs(‘INCREMENTAL‘,‘XLA‘,‘XLA_AE_LINES_BKP‘) z dual;
DBMS_STATS.GET_PREFS(‚INCREMENTAL‘,‘XLA‘,‘XLA_AE_LINES_BKP‘) ————————————————————— PRAVDA |
- Po nastavení předvolby shromážděte statistiky.
exec fnd_stats.gather_table_stats(‘XLA‘,‘XLA_AE_LINES_BKP‘);
Procedura PL/SQL byla úspěšně dokončena. Uplynulo:00:00:25,91 |
- Po nastavení předvolby trvalo první shromáždění statistik po vložení dat 25,91 s
- kontrola statistických informací o načasování
vyberte table_name,to_Char(last_analyzed,‘DD-MON-YY HH24:MI:SS’) „last_analyzed“ z dba_Tables, kde název_tabulky jako ‚XLA_AE_LINES_BKP‘;
TABLE_NAME naposledy analyzováno —————————— ————————— XLA_AE_LINES_BKP 09-SEP-16 10:35:32 vyberte partition_name,to_Char(last_analyzed,‘DD-MON-YY HH24:MI:SS’) „last_analyzed“ z dba_Tab_partitions, kde table_name jako ‚XLA_AE_LINES_BKP‘; 18
PARTITION_NAME naposledy analyzováno ——————————————————— AP 09-SEP-16 10:35:30 AR 09-SEP-16 10:35:12 CE 09-SEP-16 10:35:10 CST 09-SEP-16 10:35:21 DPP 09-SEP-16 10:35:21 ZÁBAVA 9-SEP-16 10:35:12 FV 09-SEP-16 10:35:10 GMF 09-SEP-16 10:35:10 IGC 09-SEP-16 10:35:10 IGI 09-SEP-16 10:35:12 LNS 09-SEP-16 10:35:10 OFA 09-SEP-16 10:35:10 OKL 09-SEP-16 10:35:12 OZF 09-SEP-16 10:35:30 PA 09-SEP-16 10:35:12
|
- Smažte data z jednoho oddílu, abyste viděli, jak pomůže přírůstkové shromažďování statistik při příštím shromažďování statistik.
smazat z xla_ae_lines_bkp kde application_id=222;
Bylo smazáno 100233 řádků |
- Shromážděte statistiky po smazání dat z AR oddílu application_id 222
exec fnd_stats.gather_table_stats(‘XLA‘,‘XLA_AE_LINES_BKP‘);
Procedura PL/SQL byla úspěšně dokončena. Uplynulo:00:00:4.11 |
- Po smazání dat pro jeden oddíl trvalo přírůstkové shromažďování statistik 4,11 s
- Kontrola globálních statistik a statistik oddílů
vyberte table_name,to_Char(last_analyzed,‘DD-MON-YY HH24:MI:SS’) „last_analyzed“ z dba_Tables, kde název_tabulky jako ‚XLA_AE_LINES_BKP‘;
TABLE_NAME naposledy analyzováno ——————————————————— XLA_AE_LINES_BKP 09-SEP-16 10:45:18 vyberte partition_name,to_Char(last_analyzed,’DD-MON-YY HH24:MI:SS’) „last_analyzed“ z dba_Tab_partitions kde ta ble_name jako „XLA_AE_LINES_BKP“; PARTITION_NAME naposledy analyzováno ——————————————————— AP 09-SEP-16 10:35 :30 AR 09-SEP-16 10:45:18 CE 09-SEP-16 10:35 :10 CST 09-SEP-16 10:35 :21 DPP 09-SEP-16 10:35 :21 ZÁBAVA 9-SEP-16 10:35 :12 FV 09-SEP-16 10:35 :10 GMF 09-SEP-16 10:35 :10 IGC 09-SEP-16 10:35 :10 IGI 09-SEP-16 10:35 :12 LNS 09-SEP-16 10:35 :10 OFA 09-SEP-16 10:35 :10 OKL 09-SEP-16 10:35 :12 OZF 09-SEP-16 10:35 :30 PA 09-SEP-16 10:35 :12
|
Důležité věci, které je třeba poznamenat, shromažďují se statistiky, datum last_analyzed se mění pouze pro oddíl AR a načasování se také zkrátilo.
Vidíme tedy, že přírůstkové shromažďování statistik zkracuje načasování shromažďování statistik a může být docela výhodné pro velké tabulky oddílů.