Dafür kann es viele Gründe geben:
- Serverlast (unwahrscheinlich, da die
SELECT
ist schnell) - Trigger (siehe hier wie man sie für eine Tabelle auflistet ). ).
- Fremdschlüssel (Liste von Fremdschlüsseln und den Tabellen, auf die sie verweisen )
- Viele Daten in jeder Zeile (
LOB
s, viele Spalten). - Jemand sperrt Zeilen in der Tabelle, die Sie löschen möchten (oder die ganze Tabelle). Siehe dies Blog-Beitrag zum Auflisten von Sperren . Diese Diskussion könnte auch helfen.
Wenn die Fremdschlüssel das Problem sind, besteht die übliche Lösung darin, Indizes auf der Fremdspalte hinzuzufügen:Oracle muss bei jedem Löschen prüfen, ob dies eine Fremdschlüsselbeziehung verletzen würde.