SQL-Optimierung

Hallo zusammen,

ich benutze ein Tool welches über ODBC auf einen Datenbank Server (SQL) übers Netz zugreift und SQL-Abfragen absetzt.
Wenn ich die Abfragen lokal über eine lokale mysql-Datenbank durchführe daueren sie im Schnitt 7 sec übers Netz mit SQL-Server 2 min. Gibt es Parameter um den Durchsatz zu erhöhen und die Abfragegeschwindigkeit zu steigern?

Danke

Gruss Salvo

Hallo Salvo,

Frage: Hast Du lokal und auf dem SQL-Server dieselbe Datenmenge?

Ich finde 7 Sek für eine lokale Abfrage sind sehr viel.
Und 2 Minuten würden dann bedeuten, dass Du eine langsame Abfrage stellst die dann noch eine Menge Daten zurückliefert.

Gruss, Simon

Hallo Simon,

ja es ist dieselbe Datenmenge. Die relativ hohe lokale Abfragezeit von 7 sec. kommt durch die Komplexität der Abfragen zustande und geht i.O…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

  1. Wieviele Daten bekommst Du von der DB zurück?
  2. Wie schnell ist die Leitung?
  3. Sind die DBs wirklich identisch (Indeces etc)?

Hallo, nein, 7 Sekunden sind zu lange. Du solltest die DB optimieren. Das erste ist, dass Du dem Optimizer helfen musst. Ich kenne mich eher mit Oracle aus, aber die anderen gehen alle ähnlich. Damit Du vom regelbasierten Optimizer los kommst musst du mal ein analyze table machen - das wird so ähnlich heissen. Wenn das noch nichts bringt, solltest Du dir mal dieStruktur Deines SELECTS anschauen. Sind die Attribute in der WHERE Bedingung in der richtigen Reihenfolge, zeigen sie auf die richtigen Tabellen. Schließlich hast Du da ab 3 Tabellen bereits Freiheitsgrade.

Als nächstes solltest Du dir überlegen, welche Indexe Du anlegen kannst, damit die Abfrage schneller geht. Erstaunlich gut funktioniert folgendes: mach einen Index über jedes Element einzeln in der WHERE Bedingung. Das sollte auf jeden Fall etwas bringen.

Manchmal sitzt man Tage daran und das Ergebnis sind 3 Zeilen - und ein Faktor 100 in der Performance.

Viele Grüße

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

  1. Wieviele Daten bekommst Du von der DB zurück?
  2. Wie schnell ist die Leitung?
  3. Sind die DBs wirklich identisch (Indeces etc)?
  1. Es laufen ca 70 Abfrageeinheiten, d.h. 70 verschiedene Abfrageerebnisse, jeweils dargestellt in einer Excel-Zelle
  2. Die Leitung ist ne 100Mbs-leitung Ethernet.
  3. Die SQl-Indizes sind dieselben.

Nochmal meine Frage…welche Parameter sind beim SQL 2000 Server relevant, um die Gesamtperformance von Abfragen zu erhöhen.