Abe*_*ler 9 sql-server performance join left-join
我有一个视图,使用11个外连接和两个内连接来创建数据.这导致超过800万行.当我在桌子上进行计数(*)时,运行大约需要5分钟.我不知道如何提高这个表的性能.有没有人对从哪里开始有任何建议?在所有正在加入的列上似乎都有索引(虽然有些是复合,但不确定是否会产生影响...)
任何帮助赞赏.
这是一项困难的任务,对于复杂的视图,您还可能与视图的查询进行交互,因此保证合理的性能将非常困难。视图中的外连接(尤其是复杂的视图)也容易给查询优化器带来麻烦。
一种选择是具体化视图(在 SQL Server 上称为“索引视图”)。但是,您可能需要监视更新性能以检查它是否不会造成太多开销。此外,物化视图中的外部联接可能会妨碍实时刷新;如果您需要这个,那么您可能必须将视图重新实现为非规范化表并使用触发器维护数据。
另一种可能性是检查视图是否可以分为两个或三个更简单的视图,可能会具体化部分视图,但不是全部视图。以这种方式实现某些视图并从系统中获得性能可能会更容易。