2016-09-21 36 views
0

我有一個視圖在SSMS(MS Sql Server)中工作得非常快,但在我的Web應用程序中工作非常慢。數據庫中的ARITHABORT設置已設置爲ON,但我不確定這是否繼續到Web應用程序。如何在視圖中使用ARITHABORT?

有什麼辦法可以在視圖本身中設置它?我知道SSMS和網絡應用程序之間的速度差異還有其他可能的問題,但只是想讓這個問題去解決(因爲許多其他人都有同樣的問題說這解決了它)。

順便說一句,我不是一個數據庫管理員,並沒有真正的訪問權限。我所擁有的是這個視圖和我正在開發的網絡應用程序的代碼。

回答

0

是絕對配對。

下面是我們數據倉庫中的一個視圖示例。

您可以設置任何你想要的頂部

SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 


CREATE view [dbo].[vw_Dim_Date] 
as 

-- select * from dbo.vw_Dim_Date 

SELECT [Date_key] 
, Format([Full_date],'MMMMM yyyy')as Date_label1 
     ,[Full_date] 
     ,[Calendar_year] 
     ,[Calendar_quarter] 
     ,[Calendar_month] 
     ,[Year_of_contract]] 
    FROM [dbo].[Dim_Date] 
GO 

所以你的情況,你可以只使用

SET ARITHABORT ON 

Create View [dbo].[view_Name] 
as ..... 

只需設置它,當你創建視圖,這樣只是做了刪除並創建要 並補充說,行,你會好到哪裏去:d

enter image description here

+0

'ANSI_NULLS'和'QUOTED_IDENTIFIER'是在創建對象時專門捕獲的兩個設置。我不相信任何其他環境都會得到同樣的待遇。這是令人驚訝的記錄不佳。我只能在[QUOTED_IDENTIFIER'文檔](https://msdn.microsoft.com/en-gb/library/ms174393.aspx)中找到提示,它在存儲過程的上下文中討論它們,但我相信它是同樣適用於意見和功能。 –

+0

儘管如此,如果您查看[sys.sql_modules](https://msdn.microsoft.com/zh-cn/library/ms175081.aspx),您會發現有兩個提示與'ANSI_NULLS'和'QUOTED_IDENTIFIER'相關的特定列以及其他'SET'選項。 –

+0

有趣的是,我可能不得不問我們的DBA在帳戶上,因爲它是我在ssms中的一個選項。他們可能在某處調整了一些設置。他們做了一些非常奇怪的事情 – Merenix

相關問題