FIX Transact SQL Top n 句を使用して、SQL Server 2005 でパーティション テーブルでクエリを実行すると、パーティション テーブル、効率の悪いクエリ プラン生成可能性があります。 文書番号: 924601
# をバグ: 1253 (SQL 修正プログラム)
Microsoft Microsoft SQL Server 2005年修正プログラム 1 つのダウンロード ファイルとして配布しています。修正プログラムは累積的であるため、各新しいリリースすべての修正プログラムが含まれているし、以前の SQL Server 2005 に含まれていたすべてのセキュリティ修正プログラム リリースを修正します。
次のこの修正プログラムについて説明しますリリース:
この修正プログラム パッケージで修正される問題 この修正プログラムを適用するための必要条件パッケージ 適用後、コンピューターを再起動する必要があるかどうか、修正プログラム パッケージ この修正プログラム パッケージが他の修正プログラムによって置き換えられますかどうかパッケージ かどうかの適用後、レジストリを変更する必要があります、修正プログラム パッケージ この修正プログラムに含まれているファイルパッケージ Microsoft SQL Server 2005年でパーティション テーブルで Top n 句を使用する Transact SQL クエリを実行すると、パーティション テーブル、効率の悪いクエリ プランが生成されます。計画より効率的な非クラスター化インデックスのシークを実行するのではなく、クラスター化インデックスのスキャンを実行できます。たとえば、次の条件に該当する場合この問題が発生します。
に対してクエリを実行します。 tblTest テーブルです。クエリ、次のように可能性があります。SELECT top 1 * FROM tblTest WHERE OrderID = 'ABCDXYZ' ORDER BY OrderDateTime DESC は、 tblTest テーブルの分割には、 OrderDateTime 列です。 クラスター化インデックスの作成、 OrderDateTime 列です。 非クラスター化インデックスを作成、 [受注コード] 列です。 メモ クラスター化インデックス スキャンは、ORDER BY 句を使用しない場合は実行されます。 テーブルとインデックスをパーティション分割しない場合は、非クラスター化インデックスのシーク プランが生成されます。 クエリ オプティマイザーは、インデックスを使用してのコストを overestimates ために発生パーティション テーブルにシークします。
修正プログラムの情報 サポートされている修正プログラムがマイクロソフトから入手可能です。ただし、この修正プログラムはこの資料に記載されている問題のみを修正するものです。この修正プログラムはこの問題が発生しているシステムにのみ適用されます。この修正プログラムは、今後さらにテストを受け取ることがあります。したがって、この問題で深刻な影響をされていない場合は、この修正プログラムを含む次のソフトウェア更新プログラムのリリースを待つことをお勧めします。
この修正プログラムがダウンロードできないか場合は、この記事の上部に「修正プログラムのダウンロード」セクションです。このセクションが表示されない場合は、マイクロソフト カスタマー サービス & サポート修正プログラムを入手するに問い合わせてください。
メモ その他の問題が発生した場合、またはトラブルシューティングが必要な場合は、別のサービス リクエストを作成する必要があります。追加の質問およびこの特定の修正プログラムの対象とならない問題については、通常のサポート料金が適用されます。一覧マイクロソフト カスタマー サービス & サポートの電話番号のまたは別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。
メモ 「修正プログラムのダウンロード」フォームに修正プログラムが提供されている言語を表示します。お使いの言語が表示されない場合は、修正プログラムがその言語の利用できないためにです。
前提条件 この修正プログラムを適用するには、SQL Server 2005 Service Pack がコンピューターにインストールされている 1 (SP1) する必要があります。 SQL Server 2005 Service Pack 1 の入手方法の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
913089
(http://support.microsoft.com/kb/913089/
)
SQL Server 2005 の最新の service pack を入手する方法
情報を再起動します。 この修正プログラムを適用した後コンピューターを再起動するはありません。
レジストリ情報 レジストリを変更するはありません。
修正プログラムのファイル情報 この修正プログラムにはこの資料に記載されている問題を修正するために必要なファイルのみが含まれています。この修正プログラムは、製品を最新のビルドに更新するために必要なすべてのファイルの含めることはできません。
この修正プログラムの英語版がファイル属性 (またはそれ以降のファイル属性) が、次のとおり。日付および時刻これらのファイルを世界協定時刻 (UTC) が表示されます。ファイル情報を表示すると、ローカル時刻に変換します。UTC とローカル時刻との時差を確認するを使用して、
タイム ゾーン コントロール パネルの日付と時刻の項目に含まれる ◇
SQL Server 2005 は、32 ビット x 86 バージョン 元に戻す 全体を表示する
ファイル名 ファイルのバージョン ファイルのサイズ 日付 時間 プラットフォーム Logread.exe 2005.90.2187.0 398,112 2006 年 8 月 31 日 19: 40 x 86 Microsoft.analysisservices.adomdclient.dll 9.0.2187.0 543,520 2006 年 8 月 31 日 19: 41 x 86 Microsoft.analysisservices.deploymentengine.dll 9.0.2187.0 138,016 2006 年 8 月 31 日 19: 38 x 86 Microsoft.analysisservices.dll 9.0.2187.0 1,215,264 2006 年 8 月 31 日 19: 39 x 86 Microsoft.sqlserver.mgdsqldumper.dll 2005.90.2187.0 75,552 2006 年 8 月 31 日 19: 37 x 86 Microsoft.sqlserver.sqlenum.dll 9.0.2187.0 908,064 2006 年 8 月 31 日 19: 39 x 86 Msgprox.dll 2005.90.2187.0 197,920 2006 年 8 月 31 日 19: 40 x 86 Msmdlocal.dll 9.0.2187.0 15,610,144 2006 年 8 月 31 日 19: 39 x 86 Msmdredir.dll 9.0.2187.0 3,990,304 2006 年 8 月 31 日 19: 40 x 86 Replprov.dll 2005.90.2187.0 547,616 2006 年 8 月 31 日 19: 41 x 86 Replrec.dll 2005.90.2187.0 782,112 2006 年 8 月 31 日 19: 39 x 86 Sqlaccess.dll 2005.90.2187.0 347,936 2006 年 8 月 31 日 19: 40 x 86 Sqlagent90.exe 2005.90.2187.0 319,264 2006 年 8 月 31 日 19: 39 x 86 Sqlservr.exe 2005.90.2187.0 28,961,112 2006 年 8 月 31 日 19: 39 x 86 Xpstar90.dll 2005.90.2187.0 292,640 2006 年 8 月 31 日 19: 42 x 86 Xpstar90.rll 2005.90.2187.0 152,864 2006 年 8 月 31 日 19: 39 x 86
SQL Server 2005 を 64 ビット版 元に戻す 全体を表示する
ファイル名 ファイルのバージョン ファイルのサイズ 日付 時間 プラットフォーム Logread.exe 2005.90.2187.0 522,528 2006 年 9 月 01 日 00: 06 x64 Microsoft.analysisservices.adomdclient.dll 9.0.2187.0 543,520 2006 年 8 月 31 日 19: 41 x 86 Microsoft.analysisservices.adomdclient.dll 9.0.2187.0 543,520 2006 年 9 月 01 日 00: 02 x 86 Microsoft.analysisservices.deploymentengine.dll 9.0.2187.0 138,016 2006 年 8 月 31 日 19: 38 x 86 Microsoft.analysisservices.dll 9.0.2187.0 1,215,264 2006 年 8 月 31 日 19: 39 x 86 Microsoft.sqlserver.mgdsqldumper.dll 2005.90.2187.0 75,552 2006 年 8 月 31 日 19: 37 x 86 Microsoft.sqlserver.mgdsqldumper.dll 2005.90.2187.0 91,424 2006 年 9 月 01 日 00: 03 x64 Microsoft.sqlserver.sqlenum.dll 9.0.2187.0 875,296 2006 年 9 月 01 日 00: 04 x 86 Msgprox.dll 2005.90.2187.0 259,360 2006 年 9 月 01 日 00: 05 x64 Msmdlocal.dll 9.0.2187.0 15,610,144 2006 年 8 月 31 日 19: 39 x 86 Msmdredir.dll 9.0.2187.0 3,990,304 2006 年 8 月 31 日 19: 40 x 86 Replprov.dll 2005.90.2187.0 745,248 2006 年 9 月 01 日 00: 03 x64 Replrec.dll 2005.90.2187.0 1,008,416 2006 年 9 月 01 日 00: 04 x64 Sqlaccess.dll 2005.90.2187.0 355,104 2006 年 9 月 01 日 00: 06 x 86 Sqlagent90.exe 2005.90.2187.0 390,944 2006 年 9 月 01 日 00: 06 x64 Sqlservr.exe 2005.90.2187.0 39,341,856 2006 年 9 月 01 日 00: 03 x64 Xpstar90.dll 2005.90.2187.0 540,960 2006 年 9 月 01 日 00: 06 x64 Xpstar90.rll 2005.90.2187.0 153,376 2006 年 9 月 01 日 00: 04 x64
SQL Server 2005 を Itanium アーキテクチャ バージョン 元に戻す 全体を表示する
ファイル名 ファイルのバージョン ファイルのサイズ 日付 時間 プラットフォーム Logread.exe 2005.90.2187.0 1,095,456 2006 年 8 月 31 日 23: 02 IA-64 Microsoft.analysisservices.adomdclient.dll 9.0.2187.0 543,520 2006 年 8 月 31 日 19: 41 x 86 Microsoft.analysisservices.adomdclient.dll 9.0.2187.0 543,520 2006 年 8 月 31 日 23: 01 x 86 Microsoft.analysisservices.deploymentengine.dll 9.0.2187.0 138,016 2006 年 8 月 31 日 19: 38 x 86 Microsoft.analysisservices.dll 9.0.2187.0 1,215,264 2006 年 8 月 31 日 19: 39 x 86 Microsoft.sqlserver.mgdsqldumper.dll 2005.90.2187.0 75,552 2006 年 8 月 31 日 19: 37 x 86 Microsoft.sqlserver.mgdsqldumper.dll 2005.90.2187.0 163,104 2006 年 8 月 31 日 23: 00 IA-64 Microsoft.sqlserver.sqlenum.dll 9.0.2187.0 875,296 2006 年 8 月 31 日 23: 02 x 86 Msgprox.dll 2005.90.2187.0 542,496 2006 年 8 月 31 日 23: 01 IA-64 Msmdlocal.dll 9.0.2187.0 48,587,040 2006 年 8 月 31 日 23: 01 IA-64 Msmdredir.dll 9.0.2187.0 6,237,472 2006 年 8 月 31 日 23: 02 IA-64 Replprov.dll 2005.90.2187.0 1,617,184 2006 年 8 月 31 日 23: 02 IA-64 Replrec.dll 2005.90.2187.0 2,141,472 2006 年 8 月 31 日 23: 02 IA-64 Sqlaccess.dll 2005.90.2187.0 349,472 2006 年 8 月 31 日 23: 01 IA-64 Sqlagent90.exe 2005.90.2187.0 1,143,584 2006 年 8 月 31 日 23: 02 IA-64 Sqlservr.exe 2005.90.2187.0 72,216,864 2006 年 8 月 31 日 23: 01 IA-64 Xpstar90.dll 2005.90.2187.0 951,072 2006 年 8 月 31 日 23: 04 IA-64 Xpstar90.rll 2005.90.2187.0 152,352 2006 年 8 月 31 日 23: 02 IA-64
マイクロソフトでは、この「対象」に記載されているマイクロソフト製品の問題として認識しています。
「現象」のセクションのクエリをパーティション テーブルを使用するクエリ プラン、次のように可能性があります。
SELECT top 1 * FROM tblTest WHERE ORDERID = 'AE5PL-14' ORDER BY OrderDateTime DESC
|--Top(TOP EXPRESSION:((1)))
|--Nested Loops(Inner Join, OUTER REFERENCES:([PtnIds1004]) PARTITION ID:([PtnIds1004]))
|--Constant Scan(VALUES:(((32)),((31)),((30)),((29)),((28)),((27)),((26)),((25)),((24)),((23)),((22)),((21)),((20)),((19)),((18)),((17)),((16)),
((15)),((14)),((13)),((12)),((11)),((10)),((9)),((8)),((7)),((6)),((5)),((4)),((3)),((2)),((1))))
|--Clustered Index Scan(OBJECT:([part2].[dbo].[tblTest].[IX_tblTest_RT]), WHERE:([part2].[dbo].[tblTest].[OrderID]='AE5PL-14')
ORDERED BACKWARD PARTITION ID:([PtnIds1004]))
分割されていないテーブルを使用するクエリ プランは次のように可能性があります。
SELECT top 1 * FROM tblTest WHERE ORDERID = 'AE5PL-14' ORDER BY OrderDateTime DESC
|--Top(TOP EXPRESSION:((1)))
|--Nested Loops(Inner Join, OUTER REFERENCES:([Uniq1002], [nonpart2].[dbo].[tblTest].[OrderDateTime], [Expr1004]) WITH
ORDERED PREFETCH)
|--Index Seek(OBJECT:([nonpart2].[dbo].[tblTest].[IX_tblTest]), SEEK:([nonpart2].[dbo].[tblTest].[OrderID]='AE5PL-14') ORDERED
BACKWARD)
|--Clustered Index Seek(OBJECT:([nonpart2].[dbo].[tblTest].[IX_tblTest_RT]), SEEK:([nonpart2].[dbo].[tblTest].[OrderDateTime]=
[nonpart2].[dbo].[tblTest].[OrderDateTime] AND [Uniq1002]=[Uniq1002]) LOOKUP ORDERED FORWARD)
詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
824684
(http://support.microsoft.com/kb/824684/
)
マイクロソフトのソフトウェア更新プログラムの説明に使用される一般的な用語の説明
関連する案件の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
923849
(http://support.microsoft.com/kb/923849/
)
FIX SQL Server 2005 でパーティション テーブルを参照するクエリを実行すると、クエリのパフォーマンスが低下可能性があります。
文書番号: 924601 - 最終更新日: 2011年7月19日 - リビジョン: 3.0
kbfix kbqfe kbpubtypekc kbexpertiseadvanced kbhotfixserver kbsql2005tsql kbautohotfix kbmt KB924601 KbMtja
機械翻訳の免責 重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:
924601
(http://support.microsoft.com/kb/924601/en-us/
)
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。
ご協力ありがとうございました。お客様のご意見は、サポート情報をより良くするために利用させていただきます。この他のサポート情報をお探しの場合は、引き続きサポート オンラインをご利用ください。