분기 별 테이블로 분할 된 5 년 데이터 세트가 있습니다. 나는 또한 그들 모두를 합친 마스터 뷰를 가지고있다. 사용자가 4 분의 1 이상의 데이터를 필요로하는 경우 여러 분기에 함께 참여하는 대신 마스터보기를 사용하는 경우가 많습니다.SQL Server 테이블 값 함수 성능
내 질문은 날짜 범위를 받아들이고 필요한 파티션의 레코드 만 반환하는 테이블 값 함수가 전체 마스터보기를 쿼리하는 것보다 빠르다는 것입니다.
이 내 현재 뷰의 정의입니다 :
ALTER VIEW [dbo].[loandetails_test]
AS
SELECT *
FROM loandetails05
where year(date) = 2005
UNION
SELECT *
FROM loandetails06
where year(date) = 2006
UNION
SELECT *
FROM loandetails07
where year(date) = 2007
UNION
SELECT *
FROM loandetails08
where year(date) = 2008
UNION
SELECT *
FROM loandetails1q09
where date >= '1/1/2009' and date < '4/1/2009'
UNION
SELECT *
FROM loandetails2q09
where date >= '4/1/2009' and date < '7/1/2009'
UNION
SELECT *
FROM loandetails3q09
where date >= '7/1/2009' and date < '10/1/2009'
UNION
SELECT *
FROM loandetails4q09
where date >= '10/1/2009' and date < '1/1/2010'
UNION
SELECT *
FROM loandetails1q10
where date >= '1/1/2010' and date < '4/1/2010'
UNION
SELECT *
FROM loandetails2q10
where date >= '4/1/2010' and date < '7/1/2010'
UNION
SELECT *
FROM loandetails3q10
where date >= '7/1/2010' and date < '10/1/2010'
UNION
SELECT *
FROM loandetails4q10
where date >= '10/1/2010' and date < '1/1/2011'
union
SELECT *
FROM loandetails_CURRENT
where date >= '1/1/2011' and date < '4/1/2011'
GO
로 아마 씁니다. 물론 테이블 값 함수가 작성된 방법에 크게 의존 할 것입니다. 그러나 알 수있는 유일한 방법은 마스터보기를 사용하고 테이블 반환 함수를 사용하여 성능을 측정하는 것입니다. – HLGEM