簡體   English   中英

SQL Server ARITHABORT

[英]SQL Server ARITHABORT

我正在與一個剛剛從SQL 2000升級到SQL 2008的客戶端工作,他們的查看查詢時間已經增加了很多。

我看了一下這些觀點,看不出它們有多大的錯誤。 當我直接在服務器上運行視圖時,時間還可以。 當我通過Management Studio遠程運行時,時間從2秒到大約30秒。

所以,我已經嘗試通過將ARITHABORT設置為ON(基於一些文章)對測試副本進行實驗,並且時間也會遠程下降。

因此,設置ARITHABORT似乎是答案,但在應用於實時DB之前,我想了解原因。 我認為它與零鴻溝的嚴重程度有關,但為什么它應該有助於查看查詢時間?

蒂姆

我認為在SQL Server 2000中,如果您已將ARITHABORT設置為OFF,則查詢優化器在開發查詢執行計划時不會考慮索引視圖索引。 因此,如果最佳計划使用視圖索引,那就很重要了。 我不知道是否仍然如此,但是當你查看查詢計划時,你可以專門看看更快的計划是否提到了一個視圖索引。

我不知道ARITHABORT與索引視圖有關的具體原因,但SET選項會影響很多事情,ARITHABORT的情況幾乎不穩定。 你可以查看這個鏈接

這種行為中的某些行為受兼容性級別的影響也不是不可能的。 如果任何已升級的數據庫設置為80或90級,您可能會看到是否真的需要這樣做。

我傾向於認為ARITHABORT設置是紅鯡魚。 您的查詢計划在測試和生產系統之間是否有所不同? 您的表在它們包含的數據中是否為IDENTICAL,並且您的統計數據是否在兩台服務器上都是最新的,具有相同的索引? 我先檢查一下。

出於性能原因,您應始終在登錄會話中打開ArithAbort。 我剛剛在2008 R2數據庫上遇到多個proc的問題,並發現Microsoft更新了2012年的SQL服務器文檔,並說明了這一點。

http://msdn.microsoft.com/en-us/library/ms190306.aspx

始終在登錄會話中將ARITHABORT設置為ON。 將ARITHABORT設置為OFF會對查詢優化產生負面影響,從而導致性能問題。

⚠️ 警告

SQL Server Management Studio的默認ARITHABORT設置為ON。 將ARITHABORT設置為OFF的客戶端應用程序可能會收到不同的查詢計划,因此很難對性能較差的查詢進行故障排除。 也就是說,相同的查詢可能在管理工作室中快速執行但在應用程序中速度較慢。 使用Management Studio對查詢進行故障排除時,始終匹配客戶端ARITHABORT設置。

[這不是一個很好的答案。]我也遇到過這個問題,但更奇怪的是,我現在無法再現以前糟糕的表現! 即使將該選項設置為OFF,相關SQL現在也會像以前一樣快速運行。 [我懷疑緩存現在已經避免了所設置的任何差異。]

ARITHABORTOFF不使用 (持久)計算列上的索引。 一般情況下,Microsoft建議始終將其 ON 默認情況下(在某些情況下) OFF的唯一原因是向后兼容性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM