Index-Informationen anzeigen
Sie möchten sich Informationen zu Indizes und indizierte Spalten anzeigen lassen? Das folgende Skript gibt Ihnen alle Indizes samt der indizierten Spalten aus:
SET PAGES 3000 SET LINES 120 SET TRIMSPOOL ON SET TRIMOUT ON COL table_owner FORMAT a20 COL table_name FORMAT a30 COL column_name FORMAT a30 COL column_name FORMAT a20 BREAK ON table_owner SKIP 1 ON table_name ON index_name SKIP 1 SELECT table_owner , table_name , index_name , column_name , COLUMN_POSITION FROM dba_ind_columns WHERE table_owner NOT LIKE '%SYS%' ORDER BY table_owner, table_name, column_position;
Möchten Sie auf Indizes des eigenen Schema-Owners reduzieren, so ersetzen Sie die View dba_ind_columns durch user_ind_column.
Tabellen mit mehr als 5 Indizes
Folgendes Skript zeigt Tabellen mit mehr als 5 Indizes. Eine Überindizierung kann zu Leistungseinbußen bei Insert-, Update- und Delete-Statements führen. Dies macht sich insbesondere bei Massenaktualisierungen bemerkbar.
SET PAGES 3000 SET LINES 120 SET TRIMSPOOL ON SET TRIMOUT ON COL owner FORMAT a20 COL table_name FORMAT a30 BREAK ON table_owner SKIP 1 SELECT owner , table_name , count (*) ind_count FROM dba_indexes WHERE owner LIKE '%SYS%' GROUP BY owner, table_name HAVING COUNT(*) > 5 ORDER BY COUNT(*) desc, OWNER, TABLE_NAME;
Tabellen ohne Index
Das folgende Skript gibt Tabellen aus, die keinen Index haben:
SELECT owner, table_name FROM dba_tables WHERE owner NOT LIKE '%SYS%' MINUS SELECT table_owner, table_name FROM dba_indexes;
Lutz Fröhlich
held-informatik
de
info