Delphi-PRAXiS
Seite 2 von 2     12

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Index wird teilweise nicht benutzt (https://www.delphipraxis.net/189943-index-wird-teilweise-nicht-benutzt.html)

jobo 11. Aug 2016 09:44

AW: Index wird teilweise nicht benutzt
 
Nachtrag
Die beiden Ausführungspläne zeigen jedenfalls, dass der 2. Plan viel besser ist.
Also wie kann man den Optimizer dazu bringen, dem 2. Plan zu folgen ohne die Bedingung wegzulssen?

Den (Ausführungs)Plan angeben
http://www.firebirdfaq.org/faq224/

Unbehilfliche Indizes löschen (Feld1)

oder wenn der Index an anderer Stelle gebraucht wird, die Abfrage so formulieren, dass der Index nicht greifen kann:
http://www.firebirdfaq.org/faq158/

Außerdem:
Warum verwendest Du "Group by", ohne eine Aggregatfunktion?
Falls es um die Unterdrückung doppelter Ergebnisssätze geht, überprüfe Dein Join Kriterium.
Wenn eine Bedingung fehlt, kann es zu Permutationen führen, die mehrfachen Datensätze wären ein Indiz dafür.
Das zieht natürlich auch die Performance runter und "verwirrt" ggF. den Optimizer.

Bambini 11. Aug 2016 09:47

AW: Index wird teilweise nicht benutzt
 
Zitat:

Zitat von Dumpfbacke (Beitrag 1344635)
Ich habe nun mal einen Index über alle Felder angelegt. Leider benutz er diesen Index nicht. Es benutzt den Index des ersten Feldes. Wenn ich das erset Feld rausnehme bei der Where benutzt er die Index.
Ich verstehe langsam nicht mehr was das Teil da machet ???? :evil:

Die Einzelfeld Indices würde ich löschen. Anhand deines Statements würde ich den Index mit diesen Felder bestücken:
Code:
Tabelle 1:
Feld2,Feld3,Feld4

Tabelle2:
die JOIN Felder und das Feld9


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.
Seite 2 von 2     12

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf