Translation not up to date
Podczas tworzenia tabel wirtualnych niektóre statystyki tabel nie są gromadzone poprawnie.
Objawy
Statystyki tabel czasami nie są gromadzone podczas tworzenia tabel wirtualnych. Brak statystyk tabel może mieć poważny wpływ na wydajność zapytań.
Rozwiązanie problemu
- Określ, czy brakuje statystyk tabeli, uruchamiając następującą komendę.
select cast(TABNAME as varchar(25)), TYPE, COLCOUNT, STATS_TIME from SYSCAT.TABLES where TABSCHEMA='<schema>' and CARD = -1;
Zastąp symbol < schema> nazwą schematu tabeli wirtualnej. Komenda wyświetla listę wszystkich obiektów w schemacie, które mają CARD z -1, co wskazuje, że statystyki nie zostały zgromadzone.
- Dla każdej tabeli o liczności -1 należy uruchomić następującą komendę, zastępując < schemat> i < nazwa_tabeli> nazwą obiektu zwirtualizowanego.
call SYSPROC.NNSTAT(NULL, '<schema>', '<table_name>', '<list_of_columns_commonly_used_in_predicates>', '', 2, '/tmp/<table_name>.log', ?, 1);
To wywołanie gromadzi statystyki na poziomie tabeli i statystyki na poziomie kolumn dla podanych kolumn w pliku < lista_kolumny_z_commonly_used_in_predicates>. Jeśli tabela zawiera kilka kolumn, można gromadzić statystyki dla wszystkich kolumn w tabeli, przekazując wartość
NULL
dla argumentu listy kolumn. W wywołaniu używana jest metoda gromadzenia danych statystycznych oparta na danych, która może być kosztowna do uruchomienia. Statystyki można gromadzić w czasach nieszczytowych. Więcej informacji na ten temat zawiera sekcja SYSPROC.NNSTAT procedura składowana. - Powtórz krok 1, aby upewnić się, że wszystkie statystyki tabel są gromadzone.
Więcej informacji na ten temat zawiera sekcja Poprawianie wydajności zapytań w programie Watson Query.