Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was macht die Abfrageausführung mit dieser Abfrage in SQL Server 2005?

Ihr Code macht ungültige Annahmen. In einer deklarativen mengenorientierten Sprache wie SQL kann die Ausführung frei wählen, welchen Ausführungsplan sie für richtig hält. Was Sie als ineffizient ansehen, ist höchstwahrscheinlich eine gültige Optimierung, bei der der Titel zuerst aus einem Index projiziert wird, der die Prädikate für lastmodified erfüllt oder etwas ähnliches. Sie können keine Annahmen über die Ausführungsreihenfolge treffen und dürfen daher keine Ausdrücke wie SUBSTRING (..,9,..) in der Projektionsliste haben, die bestimmte Zeilen bombardieren.

Ein weiteres Beispiel für Probleme, die sich aus einer ähnlichen ungültigen Annahme ergeben, sind SQL Server boolescher Operator Kurzschluss Bewertungsfehler.