0
我有這樣的子查詢需要一點點長。有沒有人有任何想法,我怎麼可以修改它,以便更快?優化一個SQL Server查詢的短邊部
ISNULL(ISNULL(
(select top 1 CONVERT(VARCHAR(11), qq.startdate , 111)
from (select a.startdate, a.ownerid
from wfassignment a
where a.ownertable='PM' /*order by a.startdate*/)qq
where qq.ownerid=pm.pmuid),
(select min(w.reportdate)
from workorder w where w.pmnum=pm.pmnum
and w.siteid=pm.siteid
and w.orgid= pm.orgid)
),CONVERT(DATETIME,'01-02-2015 00:00:00'))
在oracle中它比在SQL Server中快得多。我也很想知道top 1是否與oracle的rownum = 1相等。 謝謝:)
問題尋求幫助的表現,應該包括像執行計劃細節,涉及表的架構和瑞普測試:HTTPS://support.microsoft.com/en-us/help/914288/how-to-generate-a-腳本的最必要的數據庫,元數據,以創建-A-統計,僅數據庫功能於SQL服務器 – TheGameiswar
多種需求,最終可能具有相同的結構產生疑問 - 而不是期望是*直覺*的意圖背後的這個查詢,你可能*解釋它*。樣本數據和預期結果將有很大幫助。 –
這在Oracle中並不是更快。這是一個完全不同的查詢,在完全不同的數據庫上,使用不同的索引。如果索引不同,查詢的文本形狀無關緊要。 –