索引视图与临时表,以提高很少执行的查询的性能

时间:2017-05-16 13:51:45

标签: performance temp-tables indexed-views

我有一个慢查询,其结构是

select
  fields
from 
  table
join
  manytables
join (select fields from tables) as V1 on V1 on V1.field = ....
join (select fields1 from othertables) as V2
join (select fields2 from moretables) as V3 

最后3个连接中的选择子查询相对简单,但再次加入,需要时间。如果它们是物理表,那就更好了。

所以我发现我可以将子查询转换为索引视图或临时表。

通过临时表我不是指每小时写一次的表,如解释here,  但是在查询执行之前创建的临时表

现在我怀疑的是,索引视图在数据仓库中是可以的,因为它们会影响性能。此数据库不是数据仓库,而是非数据密集型应用程序的生产数据库。

但在我的情况下,上面的查询不经常执行,即使更频繁地使用底层表(其数据将成为索引视图的一部分的表)。

在这种情况下可以使用索引视图吗?或者我支持临时表?

另外,带有primary key关键字的表格变量是另一种选择。

0 个答案:

没有答案