Ich habe eine leere Tabelle, die zuvor eine große Anzahl von Zeilen hatte.Löschen von leeren Tabelle unter Forver
Die Tabelle hat etwa 10 Spalten und Indizes auf viele von ihnen, sowie Indizes für mehrere Spalten.
DELETE FROM item WHERE 1=1
Dieser Vorgang dauert etwa 40 Sekunden
SELECT * FROM item
dies dauert 4 Sekunden.
den Ausführungsplan SELECT * FROM ITEM zeigt folgendes;
SQL> select * from midas_item;
no rows selected
Elapsed: 00:00:04.29
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=19 Card=123 Bytes=73
80)
1 0 TABLE ACCESS (FULL) OF 'MIDAS_ITEM' (Cost=19 Card=123 Byte
s=7380)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
5263 consistent gets
5252 physical reads
0 redo size
1030 bytes sent via SQL*Net to client
372 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
jede Idee, warum diese so lange dauern würde und wie man es beheben würde sehr geschätzt werden !!
Können Sie mir sagen, wie viele Daten (Zeilen) ist diese Tabelle haben? – bragboy
Gibt es andere leere Tabellen, die durch Fremdschlüssel auf diese Tabelle verweisen? – dpbradley
Die Tabelle hatte ungefähr 200k Zeilen, als ich das letzte Mal gelöscht habe. Es hat viel mehr als das in der Vergangenheit obwohl (wahrscheinlich 2mil Diff-Zeilen über seine Lebensdauer) – Will