Sql server 2005 SQL Server 2005-对内部或外部查询进行筛选
以SQL Server 2005存储过程为例,该存储过程具有从子查询中选择的外部查询。如果将参数筛选器应用于内部查询,查询是否可能更快地返回,或者仅应用外部查询并让SQL查询引擎制定最佳执行计划,是否有人可以建议我 我不能提出实际的查询,因为它包含业务表/视图名称和列,以及相当多的连接,但本质上,一般的体系结构是 Psuedo SqlSql server 2005 SQL Server 2005-对内部或外部查询进行筛选,sql-server-2005,join,filter,subquery,Sql Server 2005,Join,Filter,Subquery,以SQL Server 2005存储过程为例,该存储过程具有从子查询中选择的外部查询。如果将参数筛选器应用于内部查询,查询是否可能更快地返回,或者仅应用外部查询并让SQL查询引擎制定最佳执行计划,是否有人可以建议我 我不能提出实际的查询,因为它包含业务表/视图名称和列,以及相当多的连接,但本质上,一般的体系结构是 Psuedo Sql CREATE PROCEDURE usp_Blah_GetForDateRange ( @DateFrom smalldatetime , @Da
CREATE PROCEDURE usp_Blah_GetForDateRange
(
@DateFrom smalldatetime
, @DateTo smalldatetime
)
AS
BEGIN
SELECT
InnerQuery.MyField
FROM
(
SELECT
MyField
FROM
MyView
JOIN SomeTableLargeTable ON ....
JOIN AReferenceTable ON ...
/* Apply date restriction here on the inner query? */
WHERE
EffectiveDate BETWEEN @DateFrom AND @DateTo
) InnerQuery
JOIN
YetAnotherLargeTable ON ....
JOIN SomeMoreRefTables ON ....
/* Or here on the outer? */
WHERE
EffectiveDate BETWEEN @DateFrom AND @DateTo;
END
MyView、SomeTableLargeTable和YetAnotherLargeTable都有大约五六百万行
谢谢。经验法则是越早从查询中排除数据越好。因此,如果不实际运行查询,我会说内部联接不是很容易测试吗?我可以,但可能需要半天时间才能获得具有正确参数值的代表性数据,因为实际查询很长,带有加载参数和加载联接上的联接!我只是想知道是否值得花时间去尝试!