Temat: Defragmentacja tabeli
Temat: | Defragmentacja tabeli |
Data: | 2013-09-22 |
Treść: |
Konieczność przebowy tablic przy dużej ilość operacji DML jest oczywista.
Na początek odświerz statystyki tabeli:
begin dbms_stats.gather_table_stats('SW','T_TABLE'); end;Uwaga: to polecenie może zająć bardzo dużo czasu, aby go skrócić można użyć parametru estimate_percent. Teraz można już sprawdzić rozmiar tablicy: select table_name,round((blocks*8),2)||'kb' "size" from user_tables where table_name = 'T_TABLE'A także ile miejsca zajmują dane w tej tablicy: select table_name,round((num_rows*avg_row_len/1024),2)||'kb' "size" from user_tables where table_name = 'T_TABLE'Jeśli różnica pomiędzy rozmiarem tablicy a rozmiarem danych w niej zawartych jest spora o co walczyć.Pamietaj jednak że nie zejdzie się poniżej wartości Pctfree, która standartowo wynosi 10%. Aby przebudować tablice, można skorzystać z jednej z 4 opcji: 1. alter table ... move + rebuild indexes 2. export / truncate / import 3. create table as select ( CTAS) 4. dbms_redefinition Ja użyłem opcji alter table t_table move;Jeśli różnica pomiędzy rozmiarem tablicy a rozmiarem danych w niej zawartych jest spora o co walczyć.Pamietaj jednak że nie zejdzie się poniżej wartości Pctfree, która standartowo wynosi 10% Aby przebudować tablice, można skorzystać z jednej z 4 opcji: 1. alter table ... move + rebuild indexes 2. export / truncate / import 3. create table as select ( CTAS) 4. dbms_redefinition Ja użyłem opcji alter table t_table move; |
<< Powrót << |
powered by sw