SQL Server ARITHABORT

Tim*_*ond 12 sql t-sql sql-server sql-server-2008

我正在与刚刚从SQL 2000升级到SQL 2008的客户端一起工作,他们的查看查询时间也增加了很多.

我看了一下这些观点,看不出它们有多大的错误.当我直接在服务器上运行视图时,时间还可以.当我通过Management Studio远程运行时,时间从2秒到大约30秒.

所以,我已经尝试通过将ARITHABORT设置为ON(基于一些文章)对测试副本进行实验,并且时间也会远程下降.

因此,设置ARITHABORT似乎是答案,但在应用于实时DB之前,我想了解原因.我认为它与零鸿沟的严重程度有关,但为什么它应该有助于查看查询时间?

Ste*_*ass 6

蒂姆

我认为在SQL Server 2000中,如果您将ARITHABORT设置为OFF,则查询优化器在开发查询执行计划时不会考虑索引视图索引.因此,如果最佳计划使用视图索引,那就很重要了.我不知道是否仍然如此,但是当您查看查询计划时,您可以专门查看更快的计划是否提到了视图索引.

我不知道ARITHABORT与索引视图有关的具体原因,但SET选项会影响很多事情,ARITHABORT的情况几乎不稳定.你可以查看这个链接.

这种行为中的某些行为受兼容性级别的影响也不是不可能的.如果任何已升级的数据库设置为80或90级,您可能会看到是否真的需要这样做.

  • 此外,尽管兼容级别如此,但默认情况下,.NET SQL Native Client连接似乎将ARITHABORT设置为OFF,而SQL Server Management Studio将其设置为ON,并且在将其打开之前我们遇到性能不佳,就像Tim一样. (5认同)