Oracle-Datenbank automatisch optimieren

Row Chaining beseitigen

4. Kopieren Sie sie im nächsten Schritt in eine temporäre Tabelle.

SQL> CREATE TABLE accounts_temp
2 AS SELECT * FROM accounts
3 WHERE rowid IN
4 SELECT head_rowid FROM chained_rows);
Tabelle wurde angelegt.

5. Jetzt können Sie die Sätze aus der Tabelle löschen und aus der temporären Tabelle wieder einfügen.

SQL> DELETE FROM accounts
2 WHERE rowid IN
3 (SELECT head_rowid FROM chained_rows);
9 Zeilen wurden gelöscht.
SQL> INSERT INTO accounts
2 SELECT * FROM accounts_temp;
9 Zeilen wurden erstellt.
SQL> COMMIT;
Transaktion mit COMMIT abgeschlossen.

6. Zum Schluss können Sie überprüfen, ob der Vorgang erfolgreich war.

SQL> ANALYZE TABLE accounts COMPUTE STATISTICS;
Tabelle wurde analysiert.
SQL> SELECT table_name, chain_cnt
2 FROM dba_tables
3 WHERE table_name = 'ACCOUNTS';
TABLE_NAME CHAIN_CNT
------------ ----------
ACCOUNTS 0