매우 느리게 실행되는 저장 프로 시저가 있습니다. 따라서 별도의보기에서 일부 쿼리를 추출하고 싶습니다. - 즉 ◎ 인증서테이블 변수 대 조인보기
DECLARE @tmpTable TABLE(..)
INSERT INTO @tmpTable (..) *query* (returns 3000 rows)
Select ... from table1
inner join table2
inner join table3
inner join @tmpTable
...
그때 추출 (복사 - 붙여 넣기)를 * 쿼리 * 및 뷰에 넣어 :
내 코드는 다음과 같이 보입니다.
이렇게하면 다음 날 다른 결과를 줄 것이다 :
Select ... from table1
inner join table2
inner join table3
inner join vView
...
왜? vView와 @tmpTable 모두 3000 행을 반환하므로 일치해야합니다 (확인을 위해 제외 쿼리도 수행함). 나는이 꽤 붙어 느낌으로
대한 의견이 훨씬 appriciated 될 것이다 ..
편집 :
이것은 (@tmpTable 결과를 얻기를위한 전체 쿼리를 사용하거나 ◎ 인증서 나에게 다른 결과를 제공하지만, 동일하게 나타남) :
select dep.sid as depsid, dep.[name], COUNT(b.sid) as possiblelogins, count(ls.clientsid) as logins
from department dep
inner join relationship r on dep.sid=r.primarysid and r.relationshiptypeid=27 and r.validto is null
inner join [user] u on r.secondarysid=u.sid
inner join relationship r2 on u.sid=r2.secondarysid and r2.validto is null and r2.relationshiptypeid in (1,37)
inner join client c on r2.primarysid=c.sid
inner join ***@tmpTable or vView*** b on b.sid = c.sid
left outer join (select distinct clientsid from logonstatistics) as ls on b.sid=ls.clientsid
GROUP BY dep.sid, dep.[name],dep.isdepartment
HAVING dep.isdepartment=1
더 많은 코드와 정보를 제공해 주실 수 있습니까? @tmpTable 쿼리에 WHERE가 있습니까? JOIN이 다른가요? 그것은 "더 많은 행"또는 "duplilcates"입니까? – gbn
Ive는 select 자체를 추가했지만 @tmpTable 및 vView를 빌드하는 쿼리는 내부 조인, 유니온 등을 모두 포함하는 무거운 것이지만 결과 집합은 고유합니다. – femseks
INSERT INTO @tmpTable 코드를 정의하십시오. – gbn