高パフォーマンスワークロードの SQL Server に対する推奨される更新と構成オプション
この記事には、SQL Server 2012 以降のバージョンで使用できるパフォーマンスの向上と構成オプションの一覧が含まれています。
元の製品バージョン: SQL Server 2014、SQL Server 2012
元の KB 番号: 2964518
推奨される更新プログラムを適用し、SQL Server 2014 および SQL Server 2012 のパフォーマンスを向上させる
この記事では、さまざまな製品更新プログラムと構成オプションを使用して、SQL Server 2014 および SQL Server 2012 バージョンで使用できるパフォーマンスの向上と変更について説明します。 これらの更新プログラムを適用して、SQL Serverのインスタンスのパフォーマンスを向上させることができます。 表示される改善の程度は、ワークロード パターン、競合ポイント、プロセッサ レイアウト (プロセッサ グループの数、ソケット、NUMA ノード、NUMA ノード内のコア)、およびシステムに存在するメモリの量など、さまざまな要因によって異なります。 SQL Serverサポート チームは、これらの更新プログラムと構成の変更を使用して、複数の NUMA ノードと多数のプロセッサを持つハードウェア システムを使用したお客様のワークロードに対して適切なパフォーマンス向上を実現しました。 サポート チームは、今後もこの記事を他の更新プログラムと共に更新する予定です。
ハイエンド システム ハイエンド システムは、通常、複数のソケット、ソケットあたり 8 コア以上、5 テラバイト以上のメモリを備えています。
注:
SQL Server 2016 以降のバージョンでは、この記事で説明されているトレース フラグの多くが既定の動作であり、これらのバージョンで有効にする必要はありません。
推奨事項は、次のように 3 つのテーブルにグループ化されます。
- 表 1 に、ハイエンド システムでのスケーラビリティのために最も頻繁に推奨される更新プログラムとトレース フラグを示します。
- 表 2 に、追加のパフォーマンス チューニングに関する推奨事項とガイダンスを示します。
- 表 3 には、累積的な更新プログラムと共に含まれていた追加のスケーラビリティ修正が含まれています。
表 1. ハイエンド システムの重要な更新とトレース フラグ
次の表を確認し、SQL Serverのインスタンスが [該当するバージョンとビルド範囲] 列の要件を満たしていることを確認した後、トレース フラグ列でトレース フラグを有効にします。
注:
該当するバージョンとビルドは、変更またはトレース フラグが導入された特定の更新プログラムを示します。 CU が指定されていない場合は、SP 内のすべての CU が含まれます。
適用できないバージョンとビルドは、変更またはトレース フラグが既定の動作になった特定の更新を示します。 そのため、その更新プログラムを適用するだけでメリットが得られます。
重要
Always On環境でトレース フラグを使用して修正を有効にする場合は、可用性グループの一部であるすべてのレプリカで修正フラグとトレース フラグを有効にする必要があることに注意してください。
考慮するシナリオと症状 | トレース フラグ | 該当するバージョンとビルドの範囲 | 適用されないバージョンとビルド範囲 | 詳細を提供するサポート技術情報の記事/ブログ リンク |
---|---|---|---|---|
|
T8048 |
|
|
|
|
T8079 | SQL Server 2014 SP2 から現在の SP/CU へ |
|
|
|
T9024 | SQL Server 2012 Service Pack 1 から SP2 SQL Server 2014 RTM の累積的な更新プログラム パッケージ 3 |
|
修正: SQL Server 2012 または SQL Server 2014 インスタンスの "ログ書き込み待機" カウンター値が高い |
SQL Serverのインスタンスは、接続プールのために何千もの接続リセットを処理しています。 | T1236 | SQL Server 2012 Service Pack 1 の累積的な更新プログラム パッケージ 9 から SP2 SQL Server 2014 の累積的な更新プログラム 1 |
|
|
|
T1118 |
|
|
tempdb データベースのコンカレンシーの機能強化 メモ トレース フラグを有効にし、tempdb データベースの複数のデータ ファイルを追加します。 |
|
T1117 |
|
|
tempdb データベースでの割り当ての競合を減らすための推奨事項SQL Server |
アドホック クエリ ワークロードでは、スピン SOS_CACHESTORE ロックの競合またはプランが頻繁に削除されています。 |
T174 |
|
なし |
|
|
T8032 |
|
なし |
|
テーブル内の行数が多いため、既存の統計は頻繁に更新されません。 | T2371 |
|
なし | |
|
T7471 | SQL Server 2014 SP1 CU6 から現在の SP/CU へ | なし | SQL 2014 & SQL 2016 を使用した更新統計のパフォーマンスの向上 |
CHECKDB コマンドは、大規模なデータベースに長い時間がかかります。 |
|
|
なし | |
CHECKDB コマンドは、大規模なデータベースに長い時間がかかります。 | T2566 |
|
なし |
|
コンパイル時間の長い同時実行データ ウェアハウス クエリを実行すると、待機が RESOURCE_SEMAPHORE_QUERY_COMPILE 発生します。 |
T6498 | SQL Server 2014 から SP1 の累積的な更新プログラム パッケージ 6 |
|
|
特定のクエリ パフォーマンスの問題のトラブルシューティングを行っています。オプティマイザーの修正は既定で無効になっています。 | T4199 |
|
なし | |
空間データ型を使用したクエリ操作を使用すると、パフォーマンスが低下します。 |
|
|
|
|
|
T8075 |
|
|
修正: SQL ServerでSQL Server プロセスの仮想アドレス空間が低い場合にメモリ不足エラーが発生する |
|
T3449 |
|
|
修正: 大量のメモリを持つシステムでデータベースを作成SQL Server、予想よりも長い時間がかかります |
表 2. SQL Serverのインスタンスのパフォーマンスを向上するための一般的な考慮事項とベスト プラクティス
サポート技術情報の記事/オンライン リソースの書籍列の内容を確認し、[推奨されるアクション] 列のガイダンスの実装を検討してください。
サポート技術情報の記事/オンライン ブック リソース | 推奨処理 |
---|---|
並列処理の最大レベルを構成するサーバー構成オプション | sp_configure ストアド プロシージャを使用して、サポート技術情報の記事に従って、SQL Serverのインスタンスの並列処理サーバー構成オプションの最大レベルを構成する方法に関する構成を変更します。 |
SQL Serverのエディション別のコンピューティング容量制限 | サーバー + クライアント アクセス ライセンス (CAL) ライセンスを使用するEnterprise Editionは、SQL Server インスタンスあたり 20 コアに制限されます。 コア ベースのサーバー ライセンス モデルには制限はありません。 すべてのハードウェア リソースを活用するために、SQL Serverのエディションを適切な SKU にアップグレードすることを検討してください。 |
"バランス" 電源プランを使用する場合の Windows Server でのパフォーマンスの低下 | 記事を確認し、Windows 管理者と協力して、記事の「解決策」セクションに示されているいずれかのソリューションを実装します。 |
K グループに NUMA ノードを手動で割り当てます。 | |
アドホック ワークロードの強制パラメーター化の最適化 | プラン キャッシュ内のエントリは、他のキャッシュまたはメモリ クラークの増加により削除されます。 また、キャッシュがエントリの最大数に達すると、プラン キャッシュの削除が発生する可能性もあります。 上記のトレース フラグ 8032 に加えて、 アドホック ワークロード サーバーの最適化 オプションと 、FORCED PARAMETERIZATION データベース オプションも検討してください。 |
SQL Server 2012 以降のバージョンでのバッファー プール メモリのページングを減らす方法Memory 構成とサイズ変更に関する考慮事項SQL Server | SQL サービスのスタートアップ アカウント に [メモリ内のロック ページを有効にする] オプション (Windows) ユーザー権限を割り当てます。 SQL Server 2012 で "ロックされたページ" 機能を有効にする方法に関するページを参照してください。 最大サーバー メモリを、物理メモリの合計の約 90% に設定します。 [サーバー メモリ構成オプション] 設定で、アフィニティ マスク設定を使用するように構成されているノードからのみメモリが考慮されていることを確認します。 |
SQL Serverページと大きいページについて説明します。...高パフォーマンス ワークロードで実行する場合のSQL Serverのチューニング オプション | 特に分析またはデータ ウェアハウスワークロードを使用して、大量のメモリを持つサーバーがある場合は、TF 834 を有効にすることを検討してください。 列ストア インデックスを使用している場合は、TF 834 は推奨されないことに注意してください。 |
sp_configure ストアド プロシージャで使用できる "アクセス チェック キャッシュ バケット数" および "アクセス チェック キャッシュ クォータ" オプションの説明 | アクセス チェックキャッシュ サーバー構成オプションを使用して、サポート技術情報の記事の推奨事項に従ってこれらの値を構成します。 ハイエンド システムの推奨値は次のとおりです。 "アクセス チェック キャッシュ バケット数": 256 "アクセス チェック キャッシュ クォータ": 1024 |
ALTER WORKLOAD GROUPメモリ許可クエリ ヒント | 大量のメモリ許可を使い果たすクエリが多い場合は、リソース ガバナー構成の既定のワークロード グループを既定の 25% から小さい値に減ら request_max_memory_grant_percent します。 新しいクエリ メモリ許可オプションは、SQL Serverで使用できます (min_grant_percent と max_grant_percent ) |
インスタント ファイルの初期化 | Windows 管理者と協力して、オンライン ブック トピックの情報に従って、SQL Server サービス アカウントに "ボリューム メンテナンス タスクの実行" ユーザー権限を付与します。 |
SQL Serverの "autogrow" および "autoshrink" 設定に関する考慮事項 | データベースの現在の設定を確認し、サポート技術情報の記事の推奨事項に従って構成されていることを確認します。 |
データベース チェックポイント (SQL Server) | ユーザー データベースで間接チェックポイントを有効にして、SQL Server 2012 および 2014 の I/O 動作を最適化することを検討してください。 |
修正: SQL SERVER AG 環境と Logshipping 環境のプライマリ レプリカ とセカンダリ レプリカ のログ ファイルに対してディスクのセクター サイズが異なる場合の同期が遅い | プライマリ レプリカのトランザクション ログが 512 バイトのセクター サイズのディスク上にあり、セカンダリ レプリカのトランザクション ログが 4K セクター サイズのドライブ上にある可用性グループがある場合、同期が遅くなる問題が発生する可能性があります。 このような場合、TF 1800 を有効にすると問題が修正されます。 詳細については、「 トレース フラグ 1800」を参照してください。 |
SQL Serverがまだ CPU バインドされておらず、ワークロードに対して 1.5% から 2% のオーバーヘッドが無視できる場合は、起動トレース フラグとして TF 7412 を有効にすることをお勧めします。 このフラグを使用すると、SQL Server 2014 SP2 以降で軽量プロファイリングが可能になり、運用環境でライブ クエリのトラブルシューティングを実行できます。 |
表 3. 累積的な更新プログラムに含まれるパフォーマンスの修正
[現象] 列の説明を確認し、該当する環境の [必要な更新プログラム] 列に必要な更新プログラムを適用します。 それぞれの問題の詳細については、サポート技術情報の記事を参照してください。 これらの推奨事項では、スタートアップ パラメーターとして追加のトレース フラグを有効にする必要はありません。 これらの修正プログラムを含む最新の累積的な更新プログラムまたは Service Pack を適用するだけで、メリットを得ることができます。
注:
[必須の更新プログラム] 列の CU 名は、この問題を解決するSQL Serverの最初の累積的な更新プログラムを提供します。 累積的な更新プログラムには、以前のSQL Server更新プログラムのリリースに含まれていたすべての修正プログラムとすべての更新プログラムが含まれています。 そのため、問題を解決するために 、最新の累積的な更新プログラム をインストールすることをお勧めします。
重要事項
表 1 のすべての条件が適用される場合:
- SQL Server 2014 のガイダンス: RTM 用の SQL Server 2014 の累積的な更新プログラム 1 以上を適用し、"-T8048 -T9024 -T1236 -T1117 -T1118" を起動パラメーター リストSQL Server追加します。
- SQL Server 2012 のガイダンス: SP2 を適用し、"-T8048 -T9024 -T1236 -T1117 -T1118" を追加して、スタートアップ パラメーター リストSQL Serverします。
トレース フラグの使用方法に関する一般的な情報については、オンライン ブックの DBCC TRACEON - トレース フラグ (Transact-SQL) トピックSQL Serverチェック。
プロセッサの数、NUMA 構成などの詳細については、「SQL Server Management Studio (SSMS) でSQL Serverエラー ログを表示する」を参照してください。
SQL Serverのバージョンを見つけるには、次をチェックします。
関連情報
SQL Serverの重要な更新に関するコミュニティ リソースをSQL Serverする
適用対象
- SQL Server 2014 Enterprise
- SQL Server 2014 Enterprise Core
- SQL Server 2014 Business Intelligence
- SQL Server 2014 Developer
- SQL Server 2014 Standard
- SQL Server 2014 Web
- SQL Server 2014 Express
- SQL Server 2012 ビジネス インテリジェンス
- SQL Server 2012 Developer
- SQL Server 2012 Enterprise
- SQL Server 2012 Standard
- SQL Server 2012 Web
- SQL Server 2012 Enterprise Core
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示