メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

Microsoft SQL Server 2012 Service Pack 2 (SP2) がコンピューターに適用されていることを前提としています。 Sp_executesqlストアドプロシージャでcdc.fn_cdc_get_net_changes_<Capture_instance> Change Data capture (cdc) クエリを呼び出します。これは、SQL server Management STUDIO Server (SSMS)、Cdc 自体、sql server Integration Services (SSIS) パッケージなどのアプリケーションソースから入手できます。 この状況では、SQL Server 2012 のパフォーマンスが低下します。注:パフォーマンスが低下する可能性があります。 たとえば、SQL Server 2012 SP1 では数秒後にクエリを終了することができます。 ただし、SQL Server 2012 SP2 では、同じクエリを実行するには数時間かかることがあります。 さらに、統計情報の更新によっても問題が解決されません。

原因

この問題は、 cdc.fn_cdc_get_net_changes_<capture_instance>クエリのパフォーマンスに重大な影響を与える基数の見積に関する問題が原因で発生します。

SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。

回避策

この問題を回避するには、クエリで オプション (Recompile) クエリヒントを使用します。 SSIS CDC コンポーネントからクエリがトリガーされた場合は、次の例のように、plan guide を作成することによって オプション (Recompile) のヒントが強制されることがあります。Exec sp_create_plan_guide @name = N'CDC_Query1_PlanGuide', @stmt = N'select [__$start_lsn],[__$operation],[__$update_mask],[Column1],[Column2],[Column3] from [cdc].[fn_cdc_get_net_changes_dbo_Table1](CONVERT(binary(10), @cs, 1), CONVERT(binary(10), @ce, 1), @mode)',@type = N'SQL',@module_or_batch = NULL, @params = N'@ce nvarchar(22),@mode nvarchar(14),@cs nvarchar(22)', @hints = N'OPTION (RECOMPILE)'; 注:この例のクエリを、直面しているクエリに置き換える必要があります。 これは プロファイラー トレースから利用できるため、余分な文字が誤って追加されることはありません。 さらに、プランガイドが正常に動作するように、選択 クエリが1行に配置されていることを確認します (たとえば、キャリッジリターンや改行がないようにしてください)。 また、 DBCC FREE・キャッシュ を使用して、キャッシュから古いプランを抜き合わせすることが必要になる場合もあります。

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×