2016-09-21 2 views
0

SSMS (MS SQL Server)에서 매우 빠르게 작동하지만 내 웹 응용 프로그램에서 느린 작업을하는 뷰가 있습니다. 데이터베이스의 ARITHABORT 설정이 ON으로 설정되어 있지만 웹 응용 프로그램에 계속 연결되는지 여부는 확실하지 않습니다.보기에서 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/en-us/library/ms175081.aspx)를 보면 두 가지가 있다는 것을 알 수 있습니다. 'ANSI_NULLS' 및'QUOTED_IDENTIFIER' 및 다른'SET' 옵션과 관련된 특정 열을 사용합니다. –

+0

흥미로운 점은 ssms에서 나를위한 옵션 이었기 때문에 계정에 DBA에게 문의해야 할 수도 있습니다. 그들은 어딘가에 약간의 설정을 조정할 수도 있습니다. 그들은 꽤 이상한 일들을했습니다. – Merenix

관련 문제