2016-09-21 35 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

相关问题