我有一个5年的数据集分为季度表。我也有一个主视图,将它们连接在一起。当用户需要超过四分之一的数据时,他们经常使用主视图,而不是将多个小区连接在一起。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 2011-02-10 18:47:40