Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Web - duplicate (do not use)

概要

この更新プログラムにより、新しいクエリ ヒント引数である 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 固定サーバー ロールのメンバーシップが必要になります(プラン ガイドまたはストアド プロシージャを使用するとこのような設定を回避できますが、資格の昇格は必要です)。トレース フラグは、特定サーバーの特性に関する一時設定や特定の動作のスイッチ オフに使用されますが、その設定の管理や理解が難しい場合もあります。トレース フラグの詳細については、Microsoft Developer Network (MSDN) の Trace Flags (Transact-SQL) (英語情報) を参照してください。

関連情報

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。

ヘルプを表示

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

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

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