AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Index wird teilweise nicht benutzt

Index wird teilweise nicht benutzt

Ein Thema von Dumpfbacke · begonnen am 10. Aug 2016 · letzter Beitrag vom 11. Aug 2016
Antwort Antwort
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: Index wird teilweise nicht benutzt

  Alt 11. Aug 2016, 08:24
Das kannst Du auch nicht "verstehen", der Optimizeralgorithmus basiert auf (hoffentlich) komplexen Entscheidungen, den Statistiken* und irgendwelchen genialen oder doofen Ideen der Entwickler.
Das bedeutet konkret, die Änderung eines einzigen (!) Feldinhaltes kann den Optimizer dazu bringen, einen anderen Ausführungsplan zu verwenden.

Dein "großer" Index muss demzufolge nicht alle Felder enthalten, nur die wichtigsten. Kleinkram geht auch ohne Index. Es sollte - wie schon oben gesagt- Felder mit hoher Varianz, wenig/kein NULL sein.

*Statistiken: Mengenverhältnisse der Werte in den Feldern der Tabellen.
Gruß, Jo
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Index wird teilweise nicht benutzt

  Alt 11. Aug 2016, 08:44
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz