インデックス付きビューについて
及び索引付けまたは計算カラムを持続以下SET OPTIONS
are all prescribed
SET options Required value
--------------------- -------------
ANSI_NULLS ON
ANSI_PADDING ON
ANSI_WARNINGS* ON
ARITHABORT ON
CONCAT_NULL_YIELDS_NULL ON
NUMERIC_ROUNDABORT OFF
QUOTED_IDENTIFIER ON
ON
からANSI_WARNINGS
設定データベースの互換性レベルが80またはそれ以前に設定されていない暗黙場合(ON
にARITHABORT
を設定します明示的に設定する必要があります)。
これにもかかわらず、ARITHABORT
の設定で一貫していることは意味があります。これは、プランキャッシュキーとして使用され、不一致が重複したプランキャッシュスペースを浪費する可能性があるためです。あなたは以下のクエリからこれを見ることができます。
SET ARITHABORT OFF
GO
SELECT * FROM master..spt_values WHERE number= -10 /*plan_cache_test*/
GO
SET ARITHABORT ON
GO
SELECT * FROM master..spt_values WHERE number= -10 /*plan_cache_test*/
GO
SELECT *
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_plan_attributes(plan_handle) AS epa
CROSS APPLY sys.dm_exec_query_plan(plan_handle)
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
WHERE attribute = 'set_options' AND text LIKE '%plan_cache_test%'
AND text NOT LIKE '%this_query%'
でもインデックス付きビューなし/ OFF
設定は、次のオプションANSI_PADDING
、ANSI_NULLS
で廃止CONCAT_NULL_YIELDS_NULL
とXQueryおよびXMLデータ変更文がQUOTED_IDENTIFIER
がON
であることを要求されている列の要件を持続しました。
次の3つはすべて「オン」です。 'OFF'設定は推奨されていません。 'ANSI_Padding'、' ANSI_NULLS'、 'Concat_NULL_YELDS_NULL'です。インデックス付きビューの場合、 'ANSI_WARNINGS'は' ON'でなければなりません。 'ANSI_WARNINGS'がこれに優先するように、ARITHABORTはこれ以上重要ではありません(プランキャッシュに重複したプランを避けるために一貫してください)。 –
マーティン、これは答えでなければならないので、それ!!!!!! –
私はそのクイックコメントを投稿する時間がありました。今より完全な答えが与えられます。 –