Thomas Güttler guettli@thomas-guettler.de wrote:
Am 09.05.2011 12:04, schrieb Marcus Obst: ....
Ein anschließendes
delete from measurements where session_id = 77;
dauert wie schon beschrieben ewig.
Hallo Marcus,
wenn die Tabelle vorher leer war, kann der Query-Planer kräftig daneben liegen. Bei kleinen Tabellen wählt er lieber sequentiellen-Scan als Index-Scan. Wenn nach dem Bulk-Insert die Statistik nicht stimmt, rammelt der Query durch zig-tausend Zeilen, obwohl es einen Index gibt.....
Hier lohnt es sich einmal ANALYZE per Hand aufzurufen.
Jein.
Wenn der Anteil an zu löschenden Zeilen groß gegenüber der Gesamtgröße der Tabelle ist, dann ist ein Seq-Scan okay, weil ein Index-Scan nix bringen würde. (höhere Kosten) Kommt natürlich auch auf das Storage an, bei SSD's z.B. würde man die Kosten anders ansetzen und Index-Scan's bevorzugen.
Aber prinzipiell stimmt die Aussage, daß ein (manuelles) ANALYSE nach gröberen Änderungen sinnvoll ist.
Andreas