Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   SQL-Statement vereinfachen (https://www.delphipraxis.net/115258-sql-statement-vereinfachen.html)

Angel4585 11. Jun 2008 06:41

Re: SQL-Statement vereinfachen
 
Also nachdem ich das Ergebnis mal Stichprobenweise geprüft habe, komme ich zu dem Schluss das die ABfrage korrekt ist.

Das Problem - und deswegen wollte ich das ganze vereinfachen - ist, dass der Server sich bei dieser Abfrage in die Knie geht, bzw. 10 Minuten rechnet bis dann irgendwann das Ergebnis kommt..
(Das ist deutlich zu viel!)

Die Tabelle mit den Freischaltungen hat weit über 10.000 Einträge, wodurch das scheinbar extrem viel zu berechnen gibt.

mkinzler 11. Jun 2008 06:47

Re: SQL-Statement vereinfachen
 
Vieeleicht sind auch nur die Indizes nicht optimal

Angel4585 11. Jun 2008 06:56

Re: SQL-Statement vereinfachen
 
Zitat:

Zitat von mkinzler
Vieeleicht sind auch nur die Indizes nicht optimal

Tatsache auf der Emailspalte war kein Index :thumb:
Was so ein Index ausmachen kann, aus 10 Minuten werden 5 Sekunden :shock:

alzaimar 11. Jun 2008 07:05

Re: SQL-Statement vereinfachen
 
Zitat:

Zitat von Angel4585
Was so ein Index ausmachen kann, aus 10 Minuten werden 5 Sekunden :shock:

Bei 10.000 Einträgen immer noch zu lange. Pack das Produkt auch mal in diesen Index ('compound index'). Könnte was bringen, wenn pro Email-Adresse viele Produkte vorhanden sind.

Ohne Index muss der Server alle Datensätze sequentiell durchgehen, um einen passenden Eintrag zu finden. In deinem Fall sind das 10.000 mal eine Schleife à la "For i:=1 to 10000 Do FindProduct(Record[i])".
Mit Index findet der Server den passenden Eintrag eigentlich "sofort". In deinem Fall fällt somit die innere Schleife quasi weg. Dafür muss der Server dann für eine Email-Adresse alle Datensätze widerum sequentiell nach den Produkten durchsuchen.

Angel4585 11. Jun 2008 07:07

Re: SQL-Statement vereinfachen
 
Was ist denn ein compound index? :gruebel:
Bzw wie sieht der aus?

alzaimar 11. Jun 2008 07:12

Re: SQL-Statement vereinfachen
 
"Rüsselmops", aber nicht wissen, was ein 'compound index' ist. Sowas haben wir gerne :zwinker:.
Es handelt sich um einen zusammengesetzten Index, also z.B. 'email+Produkt'. Wenn der Server nach email und Produkt(en) suchen soll, dann kann er diesen Index optimal verwenden, weil er direkt nach z.B. "meier@bla.de"+"P1" suchen kann.


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

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