Query über ADODB dauert zu lange

13/02/2008 - 10:51 von Matthias Bunge | Report spam
Hallo NG,

Wir haben da eine gute alte VB6 Anwendung am laufen.
Seit ein Paar Tagen bricht die Geschwindigkeit einer 'komplexen' Abfragen
massiv ein.
Ist es normal das eine SQL-Abfrage über ADODB die ein Recordset
als Ergebnis liefert 3 mal solange benötigt als wenn ich sie
im Query Analyzer des SQL-Servers ausführe?
Die Abfrage ist relativ Komplex: einige Sub-Selects, ein Dutzend Joins +
einem Full Outer Join.
Über ADO braucht sie ca 50 Sekunden, über den QA ca. 10 Sekunden.

Die Datenbank habe ich via DBCC CHECKDB geprüft,
konnte aber keine Unstimmigkeiten finden.

Hab die gleiche Abfrage mal mit C#/ADO.Net (via LINQ to SQL) laufen lassen.
Erstaunlicherweise lag die Geschwindingkeit in etwa gleich auf mit der des
QA.


Umgebung

- VB6/SP6
- ADO 2.8
- Windows XP SP2
- SQL Server 2000


Schon mal Danke für einen Tip


Gruß Matthias
 

Lesen sie die antworten

#1 Ingo Moch
17/02/2008 - 22:27 | Warnen spam
Hallo Matthias,

"Matthias Bunge" schrieb:

Seit ein Paar Tagen bricht die Geschwindigkeit
einer 'komplexen' Abfragen massiv ein.



Wurde etwas am der Datenbank oder der Anwendung
geaendet? Oder haben sich im typischen
Datenaufkommen Veraenderungen ergeben? Wurde
dem Treiber ein Update gegoennt?

Ist es normal das eine SQL-Abfrage über ADODB
die ein Recordset als Ergebnis liefert 3 mal
solange benötigt als wenn ich sie im Query
Analyzer des SQL-Servers ausführe?



SQL-Statemets werden von manchen Providern
"optimiert", was nich unbedingt immer dem
gewuenschten Ergebnis entspricht. SQL-Server
kenne ich gar nicht, aber man kann sich dort
sicher auch ansehen, wie das empfangene
Statement und der Ablaufplan dazu aussieht.
Ggf. auch mal die Performance zwischen ODBC
und nativem OLEDB-Provider vergleichen.

Die Abfrage ist relativ Komplex: [...]



Ohne die ABfrage zu sehen, bringt diese
Information recht wenig ...

HTH
Ingo

Ähnliche fragen