AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Benötigte Zeit für einen Abfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Benötigte Zeit für einen Abfrage

Ein Thema von Dumpfbacke · begonnen am 27. Dez 2013 · letzter Beitrag vom 28. Dez 2013
Antwort Antwort
jobo

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

AW: Benötigte Zeit für einen Abfrage

  Alt 28. Dez 2013, 08:21
Das ist zu pauschal und stimmt wegen dem 'immer' schon mal nicht immer .
Furtbichler, danke für Deine Korrektur, zumal Du selbst zuvor von Bug und Schlamperei geschrieben hast.

Sobald ein "intelligenter" Optimizer unter Berücksichtigung von Statistiken arbeitet, ist das Verhalten aus der Ferne schwer zu beurteilen, bzw. vorherzusagen. Ich hab pauschal mal das grundsätzliche Verhalten beschrieben.
Erfahrungsgemäß interessiert es doch keine Sau, wie so etwas im Detail funktioniert, solange es funktioniert. Die Standardlösung ist immer , den fehlenden Index einzubauen und fertig.
Gruß, Jo
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Benötigte Zeit für einen Abfrage

  Alt 28. Dez 2013, 10:38
Erfahrungsgemäß interessiert es doch keine Sau, wie so etwas im Detail funktioniert, solange es funktioniert. Die Standardlösung ist immer , den fehlenden Index einzubauen und fertig.
Rischtisch. Es interessiert die meisten Säue nicht. Mich als Klugscheißersau schon. Dank deiner Erklärung habe ich mir mal das Verhalten vom SQL-Server genauer angeschaut und mal wieder dazugelernt, wie unterschiedlich MSSQL und FB sind (und zwar nur, was den Optimizer anbelangt).
  Mit Zitat antworten Zitat
jobo

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

AW: Benötigte Zeit für einen Abfrage

  Alt 28. Dez 2013, 15:35
Dank deiner Erklärung habe ich mir mal das Verhalten vom SQL-Server genauer angeschaut und mal wieder dazugelernt, wie unterschiedlich MSSQL und FB sind (und zwar nur, was den Optimizer anbelangt).
Ich würde bei einem kommerziellen Produkt eines Marktführers auch ganz andere Maßstäbe anlegen, als bei einem kostenlosen OpenSource Produkt. Selbst oder gerade bei guten Optimizern bleibt es dank ihrer Komplexität, mangelnder Kenntnis des Statistik Zustandes und der Grenzwert Gewichtungen im Extremfall immer wieder eine Überraschung, was der Optimizer macht.

..

So sieht nun mein Select Aus
Delphi-Quellcode:

....
From Tebelle1
Left Outer join Tabelle2 on (Tabelle1.BNummer = Tabelle2.BNummer and
                            Tabelle2.aazaehler = (Select Max(AAZaehler) from Tabelle2 AA where AA.BNummer = Tabelle1.BAnummer and
                            AA.Kriterium = 'IDand AA.AAStatus <> 'Erledigt' ))
Where Tabelle1.Feld1 = '4EEand (Tabelle1.Feld2 = 'Frankfurtor Tabelle1.Feld2 = 'München'
Ich muss leider der Join so machen auf jeden Fall aus meiner Sicht. Eventuell kann es ja jemand besser und gibt mir einen Tip.
Ich habe in meiner ersten Antwort etwas von Selektivität geschrieben- kannste ja mal nachschlagen. Du kannst versuchen, Dir das hier zu nutze zu machen und dem Optimizer etwas auf die Sprünge zu helfen. Wenn es also tatsächlich 200k Sätze sind- nicht viel, aber auch nicht zu vernachlässigen-, die Dank der Where Bedingung 4EE+Frankfurt|München auf 19 zusammenschmilzen, ist das eine sehr brauchbare Reduktion, mit der ich experimentieren würde.
Z.B.:
Das oben zitierte Statement so umbauen, dass Tabelle1 Select mit Where Bedingung ganz allein in einem inneren Selekt liegt und der Join auf Tabelle2 mit Group By "darüber".
Code:
Select * from (Select * from Tabelle1 where 4EE and Franktfurt|München)
Left Outer join Tabelle2 on (siehe oben)
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort


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 04: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