2016-09-21 10 views
0

私はSSMS(MS SQL Server)で非常に高速に動作しているビューを持っていますが、私のWebアプリケーションでは非常に遅いです。データベースの私のARITHABORT設定はONに設定されていますが、これがWebアプリまで続くかどうかはわかりません。ビューにARITHABORTを使用するには?

ビュー自体にこれを設定する方法はありますか?私は、SSMSとWebアプリケーションの間のスピードの不一致には他にも問題がある可能性があることを知っていますが、これを実行したいだけです(同じ問題を抱えている他の多くの人がこれを解決すると言っています)。

ところで、私はデータベース管理者ではなく、実際にアクセス権を持っていません。私が持っているのは、このビューと私が取り組んでいるWebアプリケーションのビット用のコードです。

答えて

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'は、オブジェクト作成時点で具体的に取り込まれる2つの設定です。私は他の設定に同じ扱いが与えられているとは思わない。これは驚くほど文書化されていません。 ['QUOTED_IDENTIFIER'のドキュメント](https://msdn.microsoft.com/en-gb/library/ms174393.aspx)でヒントを見つけることができます。ここではストアドプロシージャのコンテキストでそのヒントについて説明していますが、ビューと関数にも同様に適用できます。 –

+0

しかし、[sys.sql_modules](https://msdn.microsoft.com/en-us/library/ms175081.aspx)を参照すると、これにはさらに2つのヒントがあります'ANSI_NULLS'や' QUOTED_IDENTIFIER'に関連する他の 'SET'オプションはありません。 –

+0

興味深いことに、私のDBAのアカウントに質問する必要があるかもしれません。なぜなら、それはssmsのオプションであったからです。彼らはどこかの設定を微調整したかもしれない。彼らはいくつかの非常に奇妙なことをやった – Merenix

関連する問題