概要
この更新プログラムにより、新しいクエリ ヒント引数である USE HINT が導入され、資格の昇格や sysadmin サーバー ロールのメンバーシップなしにクエリ オプティマイザーが使用可能になります。この新しいクエリ ヒントの構文は以下のようになります。
<query_hint > ::=
{ USE HINT(N'key' [ [, ]...n ]) }
この更新プログラムでは、USE HINT 引数とともに使用可能な以下のヒント オプションも導入されます。
オプション |
同等のトレース フラグ |
説明 |
---|---|---|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
データベースの互換性レベルに関係なく、SQL Server 2012 以前のバージョンに対して、クエリ オプティマイザーの基数推定モデルを設定可能にします |
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
SQL Server の累積的な更新プログラムと Service Pack でリリースされたクエリ オプティマイザーの変更を制御します |
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
OPTION(RECOMPILE)、WITH RECOMPILE、および OPTIMIZE FOR で設定中の場合を除き、パラメーター スニッフィングを無効化します |
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
SQL Server 2012 以前のバージョンでのクエリ オプティマイザー の基数推定モデルにおいて、相関関係を特定するためにフィルターで AND 述語を推定する際に最小の選択度を使用することにより、SQL Server にプランを生成させます |
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
SQL Server において、TOP、OPTION (FAST N)、IN、および EXISTS のキーワードを含むクエリによる行の目標調整を実行せずにプランを生成させます |
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
キー列の状態に関係なく、簡易統計 (ヒストグラムの修正) の自動生成を有効化します。このオプションを使用した場合、キー統計列の状態 (昇順、降順、固定) に関係なく、基数推定に使用したヒストグラムがクエリのコンパイル時に調整されます。 |
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
SQL Server の 2014 から 2016 までのバージョンのクエリ オプティマイザーの基数推定モデルにおいて、既定のベース コンテインメント前提の代わりにシンプル コンテインメント前提を使用し、SQL Server にプランを生成させます |
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
SQL Server で、プランの生成時に、最適化済みの入れ子になったループ結合に並べ替え操作 (バッチの並び替え) が使用されないようにします |
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 2312 |
データベースの互換性レベルに応じて、SQL Server の 2014 から 2016 までのバージョンに対して、クエリ オプティマイザーの基数推定モデルを設定可能にします |
詳細
この更新プログラムは、SQL Server 2016 の Service Pack 1 に含まれています。
SQL Server 2016 の新しいビルドには、以前のビルドに含まれていたすべての修正プログラムおよびセキュリティ修正プログラムが含まれています。SQL Server 2016 の最新ビルドをインストールすることをお勧めします。
SQL Server のクエリ オプティマイザー (QO) の動作を手がかりにする必要があるシナリオはよく見られますが、従来は (登録済みと未登録の) トレース フラグをいくつか参照してこのようなシナリオを解決していました。ただし、トレース フラグをグローバルに設定すると、他の処理に悪影響を及ぼすことがあります。さらに、セッションごとに有効化するのは既存のアプリケーションにとって実用的ではなく、OPTION QUERYTRACEON でクエリごとに有効化する場合にも sysadmin 固定サーバー ロールのメンバーシップが必要になります(プラン ガイドまたはストアド プロシージャを使用するとこのような設定を回避できますが、資格の昇格は必要です)。Trace Flags (Transact-SQL) (英語情報) を参照してください。
トレース フラグは、特定サーバーの特性に関する一時設定や特定の動作のスイッチ オフに使用されますが、その設定の管理や理解が難しい場合もあります。 トレース フラグの詳細については、Microsoft Developer Network (MSDN) の関連情報
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。