AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Statement vereinfachen

Ein Thema von Angel4585 · begonnen am 9. Jun 2008 · letzter Beitrag vom 11. Jun 2008
Antwort Antwort
Seite 2 von 2     12   
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#11

Re: SQL-Statement vereinfachen

  Alt 11. Jun 2008, 07:41
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.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: SQL-Statement vereinfachen

  Alt 11. Jun 2008, 07:47
Vieeleicht sind auch nur die Indizes nicht optimal
Markus Kinzler
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#13

Re: SQL-Statement vereinfachen

  Alt 11. Jun 2008, 07:56
Zitat von mkinzler:
Vieeleicht sind auch nur die Indizes nicht optimal
Tatsache auf der Emailspalte war kein Index
Was so ein Index ausmachen kann, aus 10 Minuten werden 5 Sekunden
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: SQL-Statement vereinfachen

  Alt 11. Jun 2008, 08:05
Zitat von Angel4585:
Was so ein Index ausmachen kann, aus 10 Minuten werden 5 Sekunden
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#15

Re: SQL-Statement vereinfachen

  Alt 11. Jun 2008, 08:07
Was ist denn ein compound index?
Bzw wie sieht der aus?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: SQL-Statement vereinfachen

  Alt 11. Jun 2008, 08:12
"Rüsselmops", aber nicht wissen, was ein 'compound index' ist. Sowas haben wir gerne .
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz