![]() |
Datenbank: MS SQL Server • Version: 2000/2005 • Zugriff über: ADO
SQL 2000 vs. SQL 2005 - Änderungen in Ausführungsplänen
Hallo,
ich habe ein Programm, welches schon seit einigen Jahren stabil läuft - bisher immer mit einem SQL-Server 2000. Nun wurde auf SQL 2005 umgestellt und auf einmal verhält sich eine SQL-Abfrage in diesem Programm völlig anders als früher. Sie ist jetzt mindestens 10x so langsam !!! Ich habe mir mal den Ausführungsplan dieses Abfrage angeschaut und feststellen müssen, daß der Server sie anscheinend völlig anders optimiert. Noch mehr staunte ich aber, als ich die Abfrage ein wenig umformulierte, in dem ich eine Unterabfrage in der WHERE-Klausel durch eine Variable ersetzte und auf einmal alles wieder wie vorher lief. Kann mir einer von Euch das unterschiedliche Verhalten des SQL-Servers bei folgenden Abfragen (eigentlich 2x die selbe - oder?) erklären. Bitte aber keine Diskussion über den Sinn bzw. Unsinn dieser Abfrage ... 1. Langsame Abfrage:
SQL-Code:
2. Schnelle Abfrage:
SELECT A.*,B.*
FROM INHALTE A FULL OUTER JOIN ZUSATZ B ON A.ADRESSEN_ID=B.ADRESSEN_ID WHERE B.ADRESSEN_ID = 4403 OR A.ZUSATZID = (SELECT MAX(ZUSATZID) FROM INHALTE WHERE ADRESSEN_ID=4403)
SQL-Code:
Gruß
DECLARE @ZID int
SET @ZID = (SELECT MAX(ZUSATZID) FROM INHALTE WHERE ADRESSEN_ID=4403) SELECT A.*,B.* FROM INHALTE A FULL OUTER JOIN ZUSATZ B ON A.ADRESSEN_ID=B.ADRESSEN_ID WHERE B.ADRESSEN_ID = 4403 OR A.ZUSATZID = @ZID Micha |
Re: SQL 2000 vs. SQL 2005 - Änderungen in Ausführungsplänen
Es scheint als ob er das Maximum mehrmals ermittelt
|
Re: SQL 2000 vs. SQL 2005 - Änderungen in Ausführungsplänen
Sollte des Rätsels Lösung wirklich so einfach sein? Auf jedenfall klingt das logisch für mich - vielen Dank.
Gruß Micha |
Re: SQL 2000 vs. SQL 2005 - Änderungen in Ausführungsplänen
Zitat:
|
Re: SQL 2000 vs. SQL 2005 - Änderungen in Ausführungsplänen
Wäre dann nur noch schön zu wissen, warum es der SQL Server 2000 nicht so macht. Beim dem ist das Verhalten ja bei beiden Versionen der Abfrage identisch ...
|
Re: SQL 2000 vs. SQL 2005 - Änderungen in Ausführungsplänen
Der scheint die Abfrage besser zu optimieren
|
Re: SQL 2000 vs. SQL 2005 - Änderungen in Ausführungsplänen
Alles klar. Danke nochmal.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr. |
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