修正: SQL Server 2005 Service Pack 1 でトレース フラグ 2389 および 2390 を有効にするとコンパイル時間の大幅な増加にあります。

Bug #: 984 (SQL 修正プログラム)
Bug #: 441938 (SQLBUDT)
BUG #: 984 (SQL 修正プログラム)バグ #: 441938 (SQL BU 障害)BUG #: 59199 (コンテンツ管理)
マイクロソフトでは、1 つのダウンロード可能なファイルとして Microsoft SQL Server 2005 の修正プログラムを配布します。修正プログラムは累積的であるため、新しいリリースごとにすべての修正プログラムが含まれていて、以前の SQL Server 2005 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。
この資料では、この修正プログラムのリリースに関する次について説明します。
  • この修正プログラム パッケージで修正される問題
  • 修正プログラム パッケージをインストールするための前提条件
  • 修正プログラム パッケージをインストールした後にコンピューターを再起動する必要があるかどうかについての情報
  • 他の修正プログラム パッケージで修正プログラム パッケージを置換するかどうかについての情報
  • レジストリ変更を加える必要があるかどうかについての情報
  • 修正プログラム パッケージに含まれるファイル

現象

以下の事例で説明します。SQL Server 2005 Service Pack 1 (SP1) を実行しています。トレース フラグ 2389 および 2390 昇順キーのクイック統計情報の自動生成を有効にするを有効にするとします。このシナリオでは、次の現象が発生する可能性があります。
  • コンパイル時間の大幅な増加がわかります。
  • 列の正しい最大値を指定できないために、SQL Server では、効率の悪いクエリ プランが生成されません。

原因

この問題は、SQL Server の適切な列のスキャンを実行するために発生します。このスキャンでは、追加のコンパイル時間がかかります。

解決策

サポートされている修正プログラムは、マイクロソフトから入手可能です。ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。この問題が発生しているシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行う場合があります。したがって、この問題の影響が深刻でない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことをお勧めします。

修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。このセクションが表示されていない場合は、マイクロソフト カスタマー サービス サポートにお問い合わせのうえ、修正プログラムを入手してください。

注: さらなる問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストの作成が必要な場合があります。この修正プログラムの対象外の追加の質問および問題については、通常のサポート料金が適用されます。一覧マイクロソフト カスタマー サービス & サポートの電話番号または別のサービス リクエストを作成する、次のマイクロソフト Web サイトを参照してください。注: [修正プログラムのダウンロード] フォームには、修正プログラムが提供されている言語が表示されます。お使いの言語が表示されない場合は、その言語の修正プログラムが利用できないためです。

必要条件

SQL Server 2005 Service Pack 1 (SP1) この修正プログラムを適用するためにインストールする必要があります。

SQL Server 2005 SP1 を入手する方法の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

913089 SQL Server 2005 の最新の service pack の入手方法

再起動に関する情報

この修正プログラムの適用後にコンピュータを再起動する必要はありません。

レジストリ情報

レジストリを変更する必要はありません。

修正プログラム ファイルの情報

この修正プログラムには、この資料に記載されている問題を修正するために必要なファイルのみが含まれています。製品を最新のビルドに更新するために必要なすべてのファイルのこの修正プログラムが含まれていない可能性があります。

修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時間の時差を確認するには、コントロール パネルの [日付と時刻] で、[タイム ゾーン] タブを使用します。
SQL Server 2005 の 32年ビット バージョン
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
Msgprox.dll2005.90.2174.0197,92017-Jul-200620:03x86
Msmdlocal.dll9.0.2174.015,701,79217-Jul-200620:04x86
Msmdredir.dll9.0.2174.03,967,77617-Jul-200620:03x86
Replprov.dll2005.90.2174.0547,61617-Jul-200620:05x86
Replrec.dll2005.90.2174.0782,11217-Jul-200620:02x86
Sqlaccess.dll2005.90.2174.0347,93617-Jul-200620:03x86
Sqlservr.exe2005.90.2174.028,951,89617-Jul-200620:04x86
Xpstar90.dll2005.90.2174.0292,12817-Jul-200620:03x86
SQL Server 2005 の x64 ベース バージョン
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
Msgprox.dll2005.90.2174.0259,36018-Jul-200608:05x64
Msmdlocal.dll9.0.2174.015,701,79217-Jul-200620:04x86
Msmdredir.dll9.0.2174.03,967,77617-Jul-200620:03x86
Replprov.dll2005.90.2174.0745,24818-Jul-200608:06x64
Replrec.dll2005.90.2174.01,008,41618-Jul-200608:04x64
Sqlaccess.dll2005.90.2174.0355,10418-Jul-200608:05x86
Sqlservr.exe2005.90.2174.039,351,07218-Jul-200608:05x64
Xpstar90.dll2005.90.2174.0539,93618-Jul-200608:05x64
SQL Server 2005 の Itanium アーキテクチャのバージョン
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
Msgprox.dll2005.90.2174.0542,49617-Jul-200622:38IA-64
Msmdlocal.dll9.0.2174.048,828,70417-Jul-200622:39IA-64
Msmdredir.dll9.0.2174.06,154,01617-Jul-200622:39IA-64
Replprov.dll2005.90.2174.01,617,18417-Jul-200622:39IA-64
Replrec.dll2005.90.2174.02,141,47217-Jul-200622:39IA-64
Sqlaccess.dll2005.90.2174.0349,47217-Jul-200622:38x86
Sqlservr.exe2005.90.2174.072,235,29617-Jul-200622:40IA-64
Xpstar90.dll2005.90.2174.0950,04817-Jul-200622:36IA-64

状況

マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。

詳細

昇順キー列と、頻繁に挿入操作が設定されたテーブルの不正確な統計情報が発生する可能性がします。これらのキー列には、ID 列または実際のタイムスタンプを表すdatetime列があります。SQL Server アプリケーションをいくつかの一般的な問題は、データの通常の上昇する場合です。たとえば、 datetime列を含むテーブルがあり、列が現在の日付を表します。SQL Server は、データはことをほとんどの場合のような将来的に前提としている統計情報を作成します。ただし、データは通常上昇、ときにほとんどの新しい挿入は、以前の検索の範囲外です。この動作を作成するパフォーマンスの低いプランがあります。最新のデータを選択するフィルターは、多数の行が含まれている場合でも、全体の関係を除外することができます。

トレース フラグ 2389 および 2390 を両方の SQL Server 2005 SP1 で新たに追加します。これらのトレース フラグは、この問題に対処できます。SQL Server 2005 SP1 では、それ以降の統計情報の更新プログラムによって列の性質を追跡します。SQL Server 統計値が 3 回に増加すると判断した場合、列は昇順でブランドです。統計情報は、次の条件に該当する場合クエリのコンパイル時に自動的に更新されます。
  • トレース フラグ 2389 が設定されています。
  • 列は、昇順でブランドです。
  • カバリング インデックスは、列を昇順で業界をリードするキーとして存在しています。
最大の値を確認するステートメントがコンパイルされ、新しいステップが追加された最新のデータをモデル化する既存のヒストグラムの末尾に追加します。

2390 のトレース フラグは、列の昇順の性質が不明な場合でも、トレース フラグ 2389 と同じ動作を使用できます。列にインデックスの先頭列がある限り、オプティマイザーはクエリのコンパイル時に最大値を持つ統計を更新します。列の昇順の性質がわかっているとすぐに、このロジックは無効にするためには、トレース フラグだけで 2390 を使用しないでください。

自動的に有効にするのには次のステートメントを実行する、既知の昇順キーのクイックの統計情報が生成されます。
DBCC TRACEON ( 2389, -1 )
昇順キーを既知または未知の昇順キーを含むすべての列に対して自動的に生成されたクイックの統計情報を有効にするには、次のステートメントを実行します。
DBCC TRACEON ( 2389, 2390, -1 )
サーバーのこれらの 2 つのトレース フラグを有効にするのに Sqlservr.exe の-tコマンド ライン スイッチを使用することもできます。詳細については、次の Microsoft Developer Network (MSDN) Web サイトを参照してください。Microsoft SQL Server の更新プログラムの名前付けスキーマの詳細については、マイクロソフト サポート技術情報の資料を参照するのには次の資料番号をクリックします。

更新プログラム パッケージの新しい名前付けスキーマを Microsoft SQL Server ソフトウェアの822499

ソフトウェア更新プログラムの用語の詳細については、次の文書番号をクリックして、マイクロソフト サポート技術情報の資料を参照してください。

824684マイクロソフトのソフトウェア更新プログラムを記述するために使用される一般的な用語説明

プロパティ

文書番号:922063 - 最終更新日: 2017/02/02 - リビジョン: 1

フィードバック