改进使用视图的查询

时间:2012-09-15 19:22:44

标签: sql-server

除了使用INNER JOIN或索引来优化使用VIEW的查询

之外,还有一种有效的方法吗?
CREATE VIEW tableView AS 
SELECT A1, A2, B1 as Price, C1 as ItemNumber
FROM A, B, C 
WHERE A.A1 = B.B1
AND A.A2 = C.C1;

查询示例

 SELECT * FROM TableView WHERE Price = ‘100’ AND ItemNumber = 'R34';

2 个答案:

答案 0 :(得分:4)

有效的方法是在基础表上使用适当的索引并对SQL Server进行一般调整。

没有特定于可以优化的视图(除了常规查询的相同一般问题 - 不使用导致表读取/索引扫描的函数与索引搜索等...)。

答案 1 :(得分:0)

如果你想避免表索引,因为数据存在于两个不同的表中,那么你可以创建一个schema bound view,它允许你在composite index子句的两列上创建sql where (价格,ItemNumber)。