Oracle-Abfrage löscht zu viel Zeit

Ich habe eine Frage, wie

DELETE from tablename where colname = value;

dauert schrecklich lange Zeit zu führen.
Was könnte der Grund sein? Ich habe einen index auf colname.

Kommentar zu dem Problem
Könnte Sie veröffentlichen, erklären Sie planen Ihre Abfrage (in SQL*Plus ausführen von "SET AUTOTRACE ON EXPLAIN" dann ist deine Abfrage) ? Kommentarautor: Vincent Malgrat
SQL - > set autotrace on explain SQL> delete from tablename where nid = 1250626; 1 Zeile gelöscht. Ausführungsplan ---------------------------------------------------------- 0 LÖSCHEN STATEMENT Optimizer=ALL_ROWS (Cost=2 Card=1 Byte=48) 1 0 LÖSCHEN VON 'tablename' 2 1 INDEX (UNIQUE SCAN) OF 'PK_tablename' (INDEX (UNIQUE)) (Cost=1 Card=1 Byte=48) Dies ist für die Löschung von 1 Zeile . Die ursprüngliche Abfrage hat ein " >=' - Bedingung, die ich nicht sehen konnte, eine Fertigstellung bis etwa 20 Minuten. Auch mit '=', es dauert mehr als eine minute Kommentarautor: Ajay
Was über die Leistung von SELECT * FROM tablename WHERE nid = 1250626; ? Kommentarautor: Christian13467
Seine schnelle! nur Millisekunden zur Ausführung.! Das problem war in der Tat nicht indizierten Fremdschlüssel wie erwähnt von Vincent Kommentarautor: Ajay

InformationsquelleAutor der Frage Ajay | 2009-08-25

Schreibe einen Kommentar