簡體   English   中英

我應該在SQL Server 2014中設置ARITHABORT

[英]Should I set ARITHABORT in SQL Server 2014

我正在查看一段時間之前編寫的一些代碼,在調用存儲過程之前,在數據庫幫助器中將它們設置為ARITHABORT ON

根據我的理解,如果ANSI_Warnings為ON,那么對於晚於2005的SQL Server版本,則不需要這樣做。

我還需要設置嗎? 它是否提供了性能優勢?

編輯1:根據這篇文章我不需要設置它,但我找不到另一個明確的答案。

如果查看SET ARITHABORT ,將ANSI_WARNINGS設置為ON將自動將ARITHABORT設置為ON,兼容級別為90或更高(SQL Server 2005或更高版本):

當數據庫兼容級別設置為90或更高時,將ANSI_WARNINGS設置為ON會將ARITHABORT隱式設置為ON。 如果數據庫兼容級別設置為80或更早,則必須將ARITHABORT選項顯式設置為ON。

兼容級別80,您必須手動設置它。

這也可能是您的軟件在打開連接時將其設置為關閉,唯一的解決方案是將其添加到過程中。

升級到兼容級別90或更高級別后,您應該運行:

DBCC FREEPROCCACHE

如果將刪除執行計划並重新編譯過程。

在創建新計划之前,還可以運行這兩個命令:

DBCC UPDATEUSAGE(db_name);
EXEC sp_updatestats;

我假設這個數據庫可能是舊的(SQL Server 2000或更早版本),也可以運行它:

DBCC CHECKDB WITH DATA_PURITY;

DBCC CHECKDB將檢查數據庫及其使用的數據(類型),並確保新版本和兼容級別一切正常。

在我們的數據庫中,我們有一些SP運行更快,即使在后來的SQL Server上也是如此。

如果您的數據庫較舊並且使用升級腳本推遲了數據,則會發生這種情況。 在過去,默認設置不是“開啟”,因此較舊的數據庫可能仍然使用錯誤的默認值。

暫無
暫無

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

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