두 번째는 아니지만 처음에는 OPTION (해시 그룹)을 사용할 수 있습니다. 어떻게 두 번째에 OPTION (해시 그룹)을 포함시킬 수 있습니까? 현실에서OPTION (해시 그룹) 파생 테이블에서 허용되지 않음
SELECT
count(*) as 'match'
FROM [docSVenum1] with (nolock)
INNER LOOP JOIN [FTSindexWordOnce] as w1 with (NOLOCK, FORCESEEK)
ON [docSVenum1].sID = w1.[sID] and [docSVenum1].[enumID] = '142'
INNER HASH JOIN [FTSindexWordOnce] as w2 with (NOLOCK)
ON w1.wordID = w2.wordID and w2.[sID] = '2'
GROUP BY W1.[sID]
OPTION (HASH GROUP)
select max(list.match) as 'max'
from
(
SELECT
count(*) as 'match'
FROM [docSVenum1] with (nolock)
INNER LOOP JOIN [FTSindexWordOnce] as w1 with (NOLOCK, FORCESEEK)
ON [docSVenum1].sID = w1.[sID] and [docSVenum1].[enumID] = '142'
INNER HASH JOIN [FTSindexWordOnce] as w2 with (NOLOCK)
ON w1.wordID = w2.wordID and w2.[sID] = '2'
GROUP BY W1.[sID]
-- OPTION (HASH GROUP)
) as list;
전체 쿼리는 더
select max(list.match) as 'max'
from
(
SELECT 200*count(*)/([d1].[textSize] + [d2].[textSize]) as 'match'
FROM [docSVenum1] with (nolock)
INNER LOOP JOIN [FTSindexWordOnce] as w1 with (NOLOCK, FORCESEEK)
ON [docSVenum1].sID = w1.[sID] and [docSVenum1].[enumID] = '142'
INNER HASH JOIN [FTSindexWordOnce] as w2 with (NOLOCK)
ON w1.wordID = w2.wordID and w2.[sID] = '2'
JOIN docSVsys as d1 with (nolock)
on d1.sID = w1.sID
JOIN docSVsys as d2 with (nolock)
on d2.sID = w1.sID
GROUP BY W1.[sID], [d1].[textSize], [d2].[textSize]
-- OPTION (HASH GROUP)
) as list;
SQL Server 2008의 빌드는 무엇입니까? [SQL Server 2012 베타 중이 버그를 발견했습니다.] (https://connect.microsoft.com/SQLServer/feedback/details/615767/denali-engine-regression-in-query-hint-behavior) 문제가있을 수 있습니다. 2008/2008 R2의 초기 빌드에도 존재했습니다. 'as list '다음에 옵션을 추가하면 힌트가 올바르게 적용됩니까? –
마이크로 소프트 SQL 서버 2008 R2 (RTM) - 10.50.1617.0 (X64) Windows에서 \t 2011년 4월 22일 19시 23분 43초 \t 저작권 (c) Microsoft의 \t 스탠다드 에디션 (64 비트) NT 6.0 (빌드 6002 : Service Pack 2) –
Paparazzi
@AaronBertrand 그리고 목록 뒤에 넣으면 구문 오류가 발생합니다. – Paparazzi