我已經創建了SQL Server 2008上運行,出於某種原因,需要很長的時間,超時不完整的SQL查詢。SQL Server查詢超時
這是我爲了測試目的而修改的查詢。列FileData
是varbinary(max)
,主鍵是ContentFileId
。正如你所看到的,我只是試圖選擇一個特定的記錄。
SELECT *,
CASE
WHEN [CMS_tbContentFile].[FileData] IS NULL
THEN (
SELECT [CMS_tbContentFile2].[FileData]
FROM [CMS_tbContentFile] AS [CMS_tbContentFile2]
WHERE [CMS_tbContentFile2].[ContentFileId] = 2152
)
ELSE [CMS_tbContentFile].[FileData]
END AS [Test]
FROM [CMS_tbContentFile]
WHERE [CMS_tbContentFile].[ContentFileId] = 3054
在CASE (SELECT [CMS_tbContentFile2].[FileData] FROM [CMS_tbContentFile] AS [CMS_tbContentFile2] WHERE [CMS_tbContentFile2].[ContentFileId] = 2152)
運行在它自己罰款的子查詢,如果我取下主查詢部分主查詢運行正常。它只是CASE
和導致問題的子查詢的組合。
希望通過看上面的人會看到這個問題,可能還有一些問題,這種類型的查詢這是不可能在T-SQL?
你有沒有看執行計劃?它說什麼?另外:您最近是否更新了餐桌,例如插入大量數據?在這種情況下,請確保在該表上[更新統計信息](http://msdn.microsoft.com/zh-cn/library/ms187348.aspx)! –