2016-03-22 7 views
-1

Ich möchte meine T-SQL-Abfrage zu optimieren, indem Sie DATEDIFF aus WHERE Klausel entfernen. Meine Frage hat diese WHERE Klausel:So vermeiden Sie DATEDIFF in Where-Klausel T-SQL-Optimierung

WHERE DATEDIFF(hh, DATE1, DATE2) > HOUR 

DATE1 und DATE2 beide aus verschiedenen Tabellen kommen, kann ich optimieren, wenn ich DATEDIFF mit GETDATE() gegen jede Spalte vergleichen will, aber hier, ich habe beiden Spalten von Tabellen.

Gibt es eine Möglichkeit, diese oder eine andere Alternative für DATEDIFF hier zu optimieren?

+1

DATEDIFF eine sehr schnelle Operation ist, was Ihre tatsächlichen Ausführungsplans ist es, Ihnen zeigt? Vielleicht sehen Sie sich den falschen Ort zur Optimierung an. –

+0

Ja, ich stimme Ihnen zu. DATEDIFF ist schnell - ich habe auch einige andere Blogs hier überprüft, aber nur zur Optimierung, möchte ich Funktionen in Where-Klausel vermeiden. Meine Abfrage funktioniert gut. –

+0

Sie könnten es als eine berechnete Spalte in Ihrer Tabelle haben. Aber manche Leute mögen keine berechneten Spalten. Es wird Ihnen keine bessere Leistung geben, aber es ist nicht in Ihrer WHERE-Klausel, wenn das für Sie wichtig ist. –

Antwort

0

können Sie

versuchen
WHERE DATE2 - DATE1 > HOUR/24