내 응용 프로그램에 다른 뷰와 테이블이있는 INNER JOIN이있는 뷰가 있습니다.SQL Server의 IN 절에 저장 프로 시저 출력을 사용하는 방법
view ViewName
select * from AnotherView inner join TableName ON conditions
이보기는 INNER JOIN 문과 함께 실행하는 데 너무 많은 시간이 걸립니다. 그래서 SP를 사용하여 성능을 향상 시키려고합니다. 나는 실제 테이블에서 INNER JOIN을 제거하려고합니다.
내 SP는 추가 절에 필요한 데이터를 가져옵니다.
그래서 코드는view ViewName
select * from AnotherView where columnName in (result of SP)
는 내가보기에서보기를 호출, 테이블 변수를했는데, 다음과 같이 표시됩니다. 그러나 실행 시간은 매번 약간의 차이점과 동일하게 보인다.
아무도 이해할 수 있습니까? 가능할 수 있습니까? 이것을 달성하는 다른 더 좋은 방법이 있습니까? 나는 openrowset을 사용하고 싶지 않습니다. 사전에
감사합니다,
비제이
는 소리 - 당신이 원하는 경우 결과 세트를 사용합니다. –
저장 프로 시저가 성능을 향상시킬 것이라고 생각하는 이유는 무엇입니까? - 쿼리가 현재 성능이 좋지 않은 경우 인덱스를 검사해야합니다. 옵티마이 저가 * less *로 수행 할 수있는 새롭고 불투명 한 코드를 도입하지 않아야합니다. –
문제의 원인을 확인 했습니까? 조인은 쿼리를 느리게 만들지 만 실제로 관심을 가져야합니까? 'AnotherView'는 어떻게 생겼습니까? –