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/en-us/library/ms187348.aspx)를 확인하십시오! –