ov3r
Goto Top

MSSQL 2005 Skalarwertfunktionen - extrem langsam

In einem SQL mit 6 Joins werden auch 6 Skalarwertfunktionen aufgerufen.

Hallo Zusammen,

ich musste meine Software von einem Sybase Server auf einen MSSQL Server umstellen. Und jetzt habe ich erschreckend festgestellt, dass der MSSQL Server für die u.g. Abfrage 1,5 Minuten braucht und der Sybase Server hat seine 6 Sekunden dafür benötigt.

Der Aufbau des SQL's ist wie folgt:

SELECT
funktion1(tabelle1.spalte1),
funktion1(tabelle2.spalte2),
funktion2(tabelle1.spalte3),
funktion2(tabelle2.spalte4),
funktion3(tabelle3.spalte5),
funktion3(tabelle3.spalte6)
FROM
tabelle11
LEFT JOIN tabelle2 ON tabelle1.spalte1 = tabelle2.spalte1
LEFT JOIN tabelle3 ON tabelle2.spalte1 = tabelle3.spalte1
LEFT JOIN tabelle4 ON tabelle3.spalte1 = tabelle4.spalte1
LEFT JOIN tabelle5 ON tabelle4.spalte1 = tabelle5.spalte1
LEFT JOIN tabelle6 ON tabelle5.spalte1 = tabelle6.spalte1
WHERE tabelle6.spalte1 = 'wert'

Meine Vermutung ist das der MSSQL Server zuerst alle Datensätze sammelt, anschließend die Funktionen über alle Datensätze jagt und dann erst nach der WHERE Bedingung filtert.

Gibt es dort einen Trick oder ein besseres Vorgehen?

Vielen Dank im Vorraus

Mit freundlichen Grüßen
Jorg

Content-ID: 99138

Url: https://administrator.de/contentid/99138

Ausgedruckt am: 26.11.2024 um 03:11 Uhr