1

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

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 次连接中的选择子查询相对简单,但再次连接需要时间。如果它们是物理表,那就更好了。

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

我所说的临时表并不是指像这里解释的那样每小时写入的表,而是在查询执行之前创建的临时表。

现在我的怀疑来自这样一个事实,即索引视图在数据仓库中是可以的,因为它们会影响性能。该数据库不是数据仓库,而是非数据密集型应用程序的生产数据库。

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

在这种情况下可以使用索引视图吗?或者我应该喜欢临时表?

primary key带有关键字的表变量也是一种选择。

4

0 回答 0