我正在与一个刚从SQL 2000升级到SQL 2008的客户端一起工作,他们的视图查询时间已经增加了很多。
我查看了这些视图,看不出它们有多大错。当我直接在服务器上运行视图时,一切正常。当我通过Management Studio远程运行时,时间从2秒变为大约30秒。
因此,我通过将ARITHABORT设置为ON(基于某些文章)尝试了对测试副本的实验,并且时间也减少了。
因此,设置ARITHABORT似乎是答案,但是在申请实时DB之前,我想了解原因。我知道这与零分的严重程度有关,但是为什么它可以帮助查看查询时间呢?
蒂姆
我认为在SQL Server 2000中,如果将ARITHABORT设置为OFF,则查询优化器在制定查询执行计划时将不考虑索引视图索引。因此,如果最佳计划使用视图索引,那将很重要。我不知道情况是否仍然如此,但是当您查看查询计划时,您可以专门查看更快的计划是否提及视图索引。
我不知道ARITHABORT与索引视图有关的特定原因,但是SET选项会影响很多事情,并且ARITHABORT的情况很难保持稳定。
兼容性级别会影响某些行为,这也不是毫无疑问的。如果将任何升级的数据库设置为级别80或90,您可能会看到是否确实需要这样做。