0

我有一个 SSRS 报告使用的存储过程。此存储过程使用视图获取数据并根据输入参数应用过滤器。例如考虑这个视图:

CREATE VIEW myview as
select a,b,c,d
from t
join u on t.id=u.id
join v on v.id=t.id

在存储过程中,它将像这样使用:

select * from myview where a='value' and b='value'

当数据量很大时,这种方法会导致性能下降吗?视图会先执行以获取所有数据,然后再进行过滤吗?如果我在存储过程中直接使用如下所示的查询,它会对性能产生什么影响吗?

select a,b,c,d
from t
join u on t.id=u.id
join v on v.id=t.id
where a='value' and b='value'

我采用第一种方法的主要原因是可维护性,因为查询非常大,并且我在存储过程中使用动态查询。

4

0 回答 0