高パフォーマンス ワークロードの 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 テラバイト以上のメモリを備えています。
Note
SQL Server 2016 以降のバージョンでは、この記事で説明されているトレース フラグの多くは既定の動作であり、これらのバージョンで有効にする必要はありません。
推奨事項は、次の 3 つのテーブルにグループ化されます。
- 表 1 には、ハイエンド システムでのスケーラビリティに関して最も頻繁に推奨される更新プログラムとトレース フラグが含まれています。
- 表 2 には、追加のパフォーマンス チューニングに関する推奨事項とガイダンスが含まれています。
- 表 3 には、累積的な更新プログラムと共に含まれていた追加のスケーラビリティ修正プログラムが含まれています。
表 1. ハイエンド システムの重要な更新プログラムとトレース フラグ
次の表を確認し、SQL Server のインスタンスが Applicable Version and build ranges 列の要件を満たしていることを確認した後、トレース フラグ列でトレース フラグを有効にします。
Note
適用可能なバージョンとビルドは、変更フラグまたはトレース フラグが導入された特定の更新プログラムを示します。 CU が指定されていない場合は、SP 内のすべての CU が含まれます。
適用できないバージョンとビルドは、変更フラグまたはトレース フラグが既定の動作になった特定の更新を示します。 そのため、その更新プログラムを適用するだけでメリットが得られます。
重要
Always On 環境でトレース フラグを使用して修正を有効にする場合は、可用性グループに含まれるすべてのレプリカで修正フラグとトレース フラグを有効にする必要があることに注意してください。
考慮すべきシナリオと症状 | トレース フラグ | 該当するバージョンとビルドの範囲 | 該当しないバージョンとビルド範囲 | 詳細を提供するナレッジ ベースの記事/ブログ リンク |
---|---|---|---|---|
|
T8048 |
|
|
|
|
T8079 | SQL Server 2014 SP2 から現在の SP/CU |
|
|
|
T9024 | SQL Server 2012 Service Pack 1 の累積的な更新プログラム パッケージ 3 SP2 SQL Server 2014 RTM |
|
修正: 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 |
|
|
SQL Server tempdb データベースの割り当て競合を軽減するための推奨事項 |
SOS_CACHESTORE スピンロックの競合が多いか、アドホック クエリ ワークロードでプランが頻繁に削除されています。 |
T174 |
|
なし | |
|
T8032 |
|
なし | |
テーブル内の行数が多いため、既存の統計は頻繁に更新されません。 | T2371 |
|
なし | |
|
T7471 | SQL Server 2014 SP1 CU6 から現在の SP/CU | なし | SQL 2014 と SQL 2016 を使用した Update Statistics のパフォーマンスの向上 |
CHECKDB コマンドは、大規模なデータベースに長い時間がかかります。 |
|
|
なし | |
CHECKDB コマンドは、大規模なデータベースに長い時間がかかります。 | T2566 |
|
なし |
|
コンパイル時間の長い同時実行データ ウェアハウス クエリを実行すると、 RESOURCE_SEMAPHORE_QUERY_COMPILE 待機が発生します。 |
T6498 | SQL Server 2014 の累積的な更新プログラム パッケージ 6 SP1 |
|
|
特定のクエリ パフォーマンスの問題のトラブルシューティングを行っています。オプティマイザーの修正プログラムは既定で無効になっています。 | T4199 |
|
なし | |
空間データ型でクエリ操作を使用すると、パフォーマンスが低下します。 |
|
|
|
|
|
T8075 |
|
|
修正: SQL Server プロセスの仮想アドレス空間が SQL Server で少ない場合にメモリ不足エラーが発生する |
|
T3449 |
|
|
修正: 大量のメモリを持つシステムでの SQL Server データベースの作成に予想以上に時間がかかる |
表 2 SQL Server インスタンスのパフォーマンス向上に関する一般的な考慮事項とベスト プラクティス
サポート技術情報の記事/オンライン ブックのリソース列の内容を確認し、[推奨されるアクション] 列のガイダンスを実装することを検討してください。
ナレッジ ベースの記事/オンライン ブック リソース | 推奨アクション |
---|---|
max degree of parallelism サーバー構成オプションの構成 | sp_configure ストアド プロシージャを使用して、サポート技術情報の記事に従って、SQL Server インスタンスの 並列処理サーバー構成オプションの最大次数を構成する の構成を変更します。 |
SQL Server のエディション別の計算容量制限 | Enterprise Edition with Server + Client Access License (CAL) ライセンスは、SQL Server インスタンスあたり 20 コアに制限されています。 コアベースのサーバー ライセンス モデルでは、制限はありません。 すべてのハードウェア リソースを活用するには、SQL Server のエディションを適切な SKU にアップグレードすることを検討してください。 |
"バランス" 電源プランを使用する場合の Windows Server でのパフォーマンスの低下 | この記事を確認し、Windows 管理者と協力して、記事の「解決策」セクションに示されているいずれかのソリューションを実装してください。 |
NUMA ノードを K グループに手動で割り当てます。 | |
アドホック ワークロードの最適化 FORCED PARAMETERIZATION | プラン キャッシュ内のエントリは、他のキャッシュまたはメモリ クラークの増加により削除されます。 キャッシュがエントリの最大数に達すると、プラン キャッシュの削除が発生する場合もあります。 前述のトレース フラグ 8032 に加えて、アドホック ワークロードの最適化サーバー オプションFORCED PARAMETERIZATION データベース オプションも検討してください。 |
SQL Server でのバッファー プール メモリのページングを減らす方法 SQL Server 2012 以降のバージョンでのメモリ構成とサイズ変更に関する考慮事項 | メモリ内のロック ページを有効にするオプション (Windows) SQL サービスのスタートアップ アカウントにユーザー権限を割り当てます。 SQL Server 2012 で "ロックされたページ" 機能を有効にする方法を参照してください。 最大サーバー メモリを合計物理メモリの約 90% に設定します。 Server メモリ構成オプション設定が、アフィニティ マスク設定を使用するように構成されているノードからのみメモリを考慮していることを確認します。 |
SQL Server と Large Pages の説明...高パフォーマンス ワークロードで実行する場合の SQL Server のチューニング オプション | 特に分析ワークロードまたはデータ ウェアハウス ワークロードを使用して、大量のメモリを持つサーバーがある場合は、TF 834 を有効にすることを検討してください。 列ストア インデックスを使用している場合は、 TF 834 は推奨されないことに注意してください。 |
sp_configure ストアド プロシージャで使用できる "アクセス チェック キャッシュ バケット数" オプションと "アクセス チェック キャッシュ クォータ" オプションの説明 | access check cache サーバー構成オプションを使用してサポート技術情報の記事の推奨事項に従ってこれらの値を構成します。 ハイエンド システムの推奨値は次のとおりです。 "アクセス チェック キャッシュ バケット数": 256 "アクセス チェック キャッシュ クォータ": 1024 |
ALTER WORKLOAD GROUP メモリ許可クエリ ヒント | 大量のメモリ許可を使い果たすクエリが多数ある場合は、リソース ガバナー構成の既定のワークロード グループの request_max_memory_grant_percent を既定の 25% から小さい値に減らします。 SQL Server で新しいクエリ メモリ許可オプション (min_grant_percent と max_grant_percent ) を使用できる |
ファイルの瞬時初期化 | Windows 管理者と協力して、オンライン ブックトピックの情報に従って、SQL Server サービス アカウントに "ボリューム メンテナンス タスクの実行" ユーザー権限を付与してください。 |
SQL Server の "自動拡張" および "自動圧縮" 設定に関する考慮事項 | データベースの現在の設定を確認し、サポート技術情報の記事の推奨事項に従って構成されていることを確認します。 |
データベース チェックポイント (SQL Server) | SQL Server 2012 および 2014 で I/O 動作を最適化するために、ユーザー データベースで間接チェックポイントを有効にすることを検討してください。 |
修正: SQL Server AG および Logshipping 環境のプライマリ レプリカとセカンダリ レプリカのログ ファイルに対してディスクのセクター サイズが異なる場合の同期が遅い | プライマリ レプリカのトランザクション ログがセクター サイズが 512 バイトのディスク上にあり、セカンダリ レプリカのトランザクション ログが 4K セクター サイズのドライブ上にある可用性グループがある場合、同期が遅くなる問題が発生する可能性があります。 このような場合は、TF 1800 を有効にすると問題が修正されます。 詳細については、「 Trace フラグ 1800」を参照してください。 |
SQL Server がまだ CPU バインドされておらず、ワークロードに 1.5% から 2% のオーバーヘッドがごくわずかである場合は、TF 7412 をスタートアップ トレース フラグとして有効にすることをお勧めします。 このフラグを使用すると、SQL Server 2014 SP2 以降で軽量プロファイリングが可能になり、運用環境でライブ クエリのトラブルシューティングを実行できます。 |
表 3. 累積的な更新プログラムに含まれるパフォーマンスの修正
[現象] 列の説明を確認し、該当する環境の [必須の更新] 列に必要な更新プログラムを適用します。 それぞれの問題の詳細については、サポート技術情報の記事を参照してください。 これらの推奨事項では、スタートアップ パラメーターとして追加のトレース フラグを有効にする必要はありません。 これらの修正プログラムを含む最新の累積的な更新プログラムまたは Service Pack を適用するだけで、メリットを得ることができます。
Note
更新列の CU 名は、この問題を解決する SQL Server の最初の累積的な更新プログラムを提供します。 累積的な更新プログラムには、すべての修正プログラムと、以前の SQL Server 更新プログラムリリースに含まれていたすべての更新プログラムが含まれています。 したがって、問題を解決するには、 最新の累積的な更新プログラム をインストールすることをお勧めします。
重要
表 1 のすべての条件が適用される場合:
- SQL Server 2014 のガイダンス: SQL Server 2014 の少なくとも Cumulative Update 1 for SQL Server 2014 for RTM を適用し、SQL Server のスタートアップ パラメーター リストに "-T8048 -T9024 -T1236 -T1117 -T1118" を追加します。
- SQL Server 2012 のガイダンス: SP2 を適用し SQL Server のスタートアップ パラメーター リストに "-T8048 -T9024 -T1236 -T1117 -T1118" を追加します。
トレース フラグの使用方法に関する一般的な情報については、SQL Server オンライン ブック DBCC TRACEON - トレース フラグ (Transact-SQL) トピックを参照してください。
プロセッサの数や 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 Business Intelligence
- SQL Server 2012 Developer
- SQL Server 2012 Enterprise
- SQL Server 2012 Standard
- SQL Server 2012 Web
- SQL Server 2012 Enterprise Core