0

我正在编写一个基本上从多个视图中提取多个列的查询。索引每个视图以获得更快的性能更好吗?

查询即 A 到 G 是视图

SELECT A.C1, B.C1
FROM A INNER JOIN B on A.C3=B.C3 
Inner join C on C.C2 = B.C2
inner join D on D.C4 = C.C4
...
Inner join H ON H.C5 = G.C5
where <some condition>

每个视图(A 到 H)都从不同的表中提取数据。没有视图被索引(当我在视图树中展开 INDEX 文件夹时,我什么也看不到)。我应该在每个视图中添加索引以获得更快的性能吗?如果是这样,我应该在我用于 ON JOIN 子句的列上添加索引吗?

谢谢

4

1 回答 1

1

首先,启用“包括实际执行计划”并运行查询以查看性能影响在哪里。寻找“表扫描”作为可能的罪魁祸首。

如果没有发现任何明显的问题,请尝试 Query -> "Analyze query in database engine tune advisor"。SQL 服务器会建议添加一些索引。不要只应用它们,而是与现有查询进行比较,以确保您没有添加太多重叠。

正如 nkj 所说,在索引视图之前优化表上的查询。

于 2013-01-18T13:57:24.583 回答