メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

Bug: #50003826 (SQL Hotfix)

マイクロソフトでは、Microsoft SQL Server 2008 の修正を 1 つのダウンロード可能なファイルとして配布しています。修正は累積的であるため、新しいリリースの修正には、以前のリリースの SQL Server 2008 の修正に含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれます。

現象

Microsoft SQL Server 2008 で一時テーブルにデータを挿入するクエリを実行します。この INSERT ステートメントには、同じ一時テーブルを参照するサブクエリが含まれています。クエリを実行すると、次のようなエラー メッセージが表示されることがあります。

メッセージ 605、レベル 21、状態 3、行 1

データベース 2 の論理ページ (1:225) のフェッチに失敗しました。この論理ページは、アロケーション ユニット 504403158513025024 ではなく、281474980315136 に所属しています。


クエリを再度実行すると、次のような別のエラー メッセージが表示されます。


メッセージ 824、レベル 24、状態 2、行 1

SQL Server で、一貫性に基づいた論理 I/O エラーが検出されました: 正しくないチェックサム (必要なチェックサム: 0x50758180、実際のチェックサム: 0x15658bfc)。このエラーは、ファイル 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\tempdb.mdf' のオフセット 0x000000002a0000 にあるデータベース ID が 2 のページ (1:336) の read 中に発生しました。SQL Server エラー ログまたはシステム イベント ログ内の別のメッセージで詳細情報が報告されることもあります。このエラー状態は深刻で、データベースの整合性を損なう可能性があるので、すぐに解決する必要があります。完全なデータベース一貫性確認 (DBCC CHECKDB) を実行してください。このエラーは、多くの要因が原因で発生する可能性があります。詳細については、SQL Server Books Online を参照してください。

場合によっては、次のようなエラー メッセージが表示されることもあります。

メッセージ 601、レベル 12、状態 3、プロシージャ procedure name、行 line number
データが移動されたので NOLOCK を使用したスキャンは続行できませんでした。


以下に、上記のエラーを発生させる可能性があるクエリ構成の例を示します。

insert #table1
select s.col1, s.col2
from #table2 s inner loop join #table1 t
on s.col3 = t.col3


解決方法

この問題の修正は、累積的な更新プログラム 3 で初めてリリースされました。SQL Server 2008 の累積的な更新プログラム パッケージの入手方法の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

960484 SQL Server 2008 の累積的な更新プログラム パッケージ 3 について注: ビルドは累積的であるため、新しくリリースされる修正プログラムには、以前にリリースされた SQL Server 2008 の修正プログラムに含まれていたすべての修正プログラムおよびセキュリティ修正プログラムが含まれています。この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

956909 SQL Server 2008 以降にリリースされた SQL Server 2008 のビルドこの累積的な更新プログラム パッケージのインストール後、トレース フラグ 4135 を有効にする必要があります。これを行うには、-T4135 スタートアップ パラメーターを追加するか、個別のセッションで dbcc traceon(4135) ステートメントを使用します。

回避策

この問題を回避するには、クラスター化された主キーと ID プロパティを持つ列を一時テーブルに追加します。たとえば、次のステートメントを実行して一時テーブルを変更します。

ALTER TABLE #TempTable
ADD id integer IDENTITY(1,1) CONSTRAINT id PRIMARY KEY CLUSTERED

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

詳細

エラー メッセージ 824 または 605 が発生した場合であっても、データベースは破損しません。また、これらのエラー メッセージは tempdb データベースからページを参照します。

変更されたファイルの関連情報、およびこのサポート技術情報の資料に記載されている修正プログラムが含まれる累積的な更新プログラム パッケージを適用するための必要条件の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

960484 SQL Server 2008 の累積的な更新プログラム パッケージ 3 について

SQL Server 2008 R2 BPA の情報

SQL Server 2008 R2 ベスト プラクティス アナライザー (SQL Server 2008 R2 BPA) は、累積的な更新プログラムまたトレース フラグが有効ではない状況を検出するルールを提供し、この問題に対処します。SQL Server 2008 R2 BPA は、SQL Server 2008 と SQL Server 2008 R2 の両方をサポートしています。

BPA ツールを実行して "Database Engine - tempdb errors fix or trace flag missing" 警告が表示された場合は、この修正を有効にするように構成されている SQL Server とトレース フラグのバージョンを確認する必要があります。

参照

ルール ソフトウェア

ルール タイトル

ルール識別子

SQL Server 2008 R2 BPA ルール

tempdb errors fix or trace flag missing

RID3808


注: トレース フラグ 4135 またはトレース フラグ 4199 を有効にすると、この修正を有効にすることができます。トレース フラグ 4135 は、SQL Server 2008 の累積的な更新プログラム パッケージ 3 で導入されました。トレース フラグ 4135 は、SQL Server 2008 Service Pack 1、SQL Server 2008 Service Pack 2、および SQL Server 2008 R2 でも使用できます。トレース フラグ 4199 は、SQL Server 2008 の累積的な更新プログラム パッケージ 7、SQL Server 2008 Service Pack 1 の累積的な更新プログラム パッケージ 7、および SQL Server 2008 R2 の累積的な更新プログラム パッケージ 1 で導入されました。トレース フラグ 4199 の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。 

974006 以前は複数のトレース フラグの下で行われた複数のクエリ オプティマイザーの変更を制御するためにトレース フラグ 4199 が追加

この問題に対する修正には、修正を有効にするための特定の修正プログラム ビルドとトレース フラブの組み合わせが含まれているため、さまざまなシナリオと、各シナリオで推奨される対策を示すために、以下の表で説明します。

現在の SQL ビルドの範囲

トレース フラグ 4135 がオンであるかどうか

トレース フラグ 4199 がオンであるかどうか

SQL ビルドの更新プログラムが必要であるかどうか

推奨されるビルド

トレース フラグ 4135 の更新プログラムが必要であるかどうか

推奨されるトレース フラグ

補足

10.00.1600.22 <= ビルド < 10.00.1787.00

ビルド 10.00.1600.22 = SQL Server 2008
ビルド 10.00.1787.00 = SQL Server 2008 の累積的な更新プログラム パッケージ 3

いいえ

いいえ

はい

10.0.1787.00

はい

4135

いいえ

はい

はい

10.0.1818.00

いいえ

はい

いいえ

はい

10.0.1787.00

いいえ

はい

はい

はい

10.0.1787.00

いいえ

10.00.1787.00 <= ビルド < 10.00.1818.00

ビルド 10.00.1787.00 = SQL Server 2008 の累積的な更新プログラム パッケージ 3
ビルド 10.00.1818.00 = SQL Server 2008 の累積的な更新プログラム パッケージ 7

いいえ

いいえ

いいえ

はい

4135

いいえ

はい

はい

10.0.1818.00

はい

4135

一方 (1 つ) の更新プログラムで十分

はい

いいえ

いいえ

いいえ

はい

はい

いいえ

いいえ

10.00.1818.00 <= ビルド < 10.00.2531.00

ビルド 10.00.1818.00 = SQL Server 2008 の累積的な更新プログラム パッケージ 7
ビルド 10.00.2531.00 = SQL Server 2008 Service Pack 1

いいえ

いいえ

いいえ

はい

4199

いいえ

はい

いいえ

いいえ

はい

いいえ

いいえ

いいえ

はい

はい

いいえ

いいえ

10.00.2531.00 <= ビルド < 10.00.2766.00

ビルド 10.00.2531.00 = SQL Server 2008 Service Pack 1
ビルド 10.00.2766.00 = SQL Server 2008 Service Pack 1 の累積的な更新プログラム パッケージ 7

いいえ

いいえ

いいえ

はい

4135

いいえ

はい

はい

10.0.2766.00

はい

4135

一方 (1 つ) の更新プログラムで十分

はい

いいえ

いいえ

いいえ

はい

はい

いいえ

いいえ

10.00.2766.00 <= ビルド < 最新の SQL 2008 のビルド

ビルド 10.00.2766.00 = SQL Server 2008 Service Pack 1 の累積的な更新プログラム パッケージ 7

いいえ

いいえ

いいえ

はい

4199

いいえ

はい

いいえ

いいえ

はい

いいえ

いいえ

いいえ

はい

はい

いいえ

いいえ

10.50.1600.01 <= ビルド < 10.50.1702.00

10.50.1600.01 = SQL Server 2008 R2
10.50.1702.00 = SQL Server 2008 R2 の累積的な更新プログラム パッケージ 1

いいえ

いいえ

いいえ

はい

4135

いいえ

はい

はい

10.50.1702.00

はい

4135

一方 (1 つ) の更新プログラムで十分

はい

いいえ

いいえ

いいえ

はい

はい

いいえ

いいえ

10.50.1702.00 <= ビルド < 最新の SQL 2008 R2 のビルド

10.50.1702.00 = SQL Server 2008 R2 の累積的な更新プログラム パッケージ 1

いいえ

いいえ

いいえ

はい

4199

いいえ

はい

いいえ

いいえ

はい

いいえ

いいえ

いいえ

はい

はい

いいえ

いいえ




関連情報

SQL Server 2008 以降にリリースされたビルドの一覧を参照するには、以下のサポート技術情報番号をクリックしてください。

956909SQL Server 2008 以降にリリースされた SQL Server 2008 のビルド

SQL Server の増分サービス モデルの関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

935897報告された問題に対する修正プログラムを提供する SQL Server チームの増分サービス モデル (ISM) について

SQL Server の更新プログラムの命名方式の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

822499Microsoft SQL Server ソフトウェア更新プログラム パッケージの新しい命名方式ソフトウェア更新プログラムに関する用語の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明

ヘルプを表示

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

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

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

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×