使用OpenQuery查看vs呼叫者WHERE

时间:2018-07-17 11:52:13

标签: sql-server performance tsql view openquery

我们正在管理报告工具读取的某些视图。事务表非常大,因此我们将事务划分为最近(约10天)的事务,因此很有可能被更新,而很少更新的“旧”事务(其余)。我们每2个小时加载一次最近的数据,每天每天加载“旧数据”,因此会牺牲一点点精度,从而在性能上有很大的提高。

我们当前设计的方式是,我们有2个视图,一个是最近的视图,一个是旧的视图,除了WHERE insdate between明显不同之外,它们基本上是相同的代码。

由于该工具具有自由运行任何SQL查询的能力,因此我正在考虑将视图统一为一个没有WHERE子句的视图,然后在访问视图时在报表工具的查询中添加WHERE。 (我正在考虑这样做,以便具有“一处真相”的结构)。这会造成性能问题吗?

我实际上在SE / DB管理员中发现了this answer,简而言之,它说不存在性能差异。

但是,视图实际上包含一个openquery。包括

的视图
SELECT * from OPENQUERY(....)

称呼为

SELECT * FROM myview WHERE insdate between A and B

让openquery应用过滤器而不先引入所有未过滤的数据(或做其他会影响性能的事情)?

0 个答案:

没有答案