マイクロソフトでは、Microsoft SQL Server 2008 の修正を 1 つのダウンロード可能なファイルとして配布しています。 修正プログラムは累積的であるため、新しい各リリースには、すべての修正プログラムと、以前の SQL Server 2008 修正プログラム リリースに含まれていたすべてのセキュリティ修正プログラムが含まれています。Microsoft は、Microsoft SQL Server 2008 または SQL Server 2008 R2 修正プログラムを 1 つのダウンロード可能なファイルとして配布します。 修正プログラムは累積的であるため、新しい各リリースには、以前の SQL Server 2008 または SQL Server 2008 R2 修正プログラム リリースに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。
現象
たとえば次のようなシナリオを考えてみます。
Microsoft SQL Server 2008 または SQL Server 2008 R2 の条件で、CONTAINSTABLE 関数と多くの OR 述語と AND 述語を使用するフルテキスト検索クエリがあります。 たとえば、次の 50 個の AND 操作があります。varchar(4000) = NULL @Keywords 宣言します
N'(((((((((((((((((((((((((((((((((((((((((((((((((((( @Keywords= 設定する
("TOKarchitect" または "アーキテクチャ")
AND ("TOKengineer" または "engineer"))
AND "gineer") AND ("TOKmechanical" OR "Mechanical"))
AND ("TOKengineer" または "Engineering"))
AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineering")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineering")) AND ("TOKcontrol" OR "Control")) AND ("TOKsystem" OR "Systems")) AND ("TOKengineer" OR "Engineer")) AND ("TOKproject" OR "Project")) AND ("TOKmanager" OR "Manager")) AND ("TOKengineer" OR"Engineering")) AND "Scheme") AND ("TOKmanufacture" OR "Manufacturing")) AND ("TOKengineer" OR "Engineer")) AND ("TOKmetallurgist" OR "Faxy")) AND ("TOKmetallurgist" or "Faxist")) AND ("TOKprocess" OR "Process")) AND ("TOKTechnology" OR OR "Technology")) AND ("TOKproduct" OR "Production")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKcontrol" または "Control")) AND ("TOKengineer" OR OR"Engineer")) AND "Mechatronics") AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineer")) AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineering")AND ("TOKdesigner" OR "Engineering")AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "engineering")) AND ("TOKgraduate" OR "Graduate")) AND ") ANDNOT ("TOKRecruitment" OR "Recruitment")) AND ("TOKconsultant" OR "consultant")) AND ("TOKtrainee" OR "trainee")) AND ("TOKRecruitment" OR "リクルート")'CONTAINSTABLE(test_table, *, @keywords, 1000) から * を選択します
クエリを実行します。
このシナリオでは、"非生成スケジューラ" エラーが発生する可能性があります。 さらに、ミニダンプ ファイルは、SQL Server 2008 または SQL Server 2008 R2 アプリケーション ログ フォルダーに生成され、次のエラーが SQL Server エラー ログ ファイルに記録されます。
注
<Time Stamp> 'dbghelp.dll' バージョン '4.0.5' を使用するサーバー
<Time Stamp> Server ***spid 0 のスレッド コンテキストを取得できません
<Time Stamp> Server *
*******************************************************************************
<Time Stamp> Server *
<Time Stamp> Server * BEGIN STACK DUMP:
<Time Stamp> Server * <Time> spid <SPID>
<Time Stamp> Server *
<Time Stamp> Server * 非生成スケジューラ
<Time Stamp> Server *
<Time Stamp> Server *
*******************************************************************************
ダンプの<Time スタンプ>サーバー スタック署名が0x000000000000030D
<Time Stamp> サーバー外部ダンプ プロセスのリターン コード 0x20000001。 外部ダンプ プロセスはエラーを返さなかった。
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0 は Scheduler 0 では生成されていないようです。 スレッドの作成時間: 12925321224306。 使用される約スレッド CPU: カーネル 62 ミリ秒、ユーザー 75187 ミリ秒。 プロセス使用率 98% システム アイドル 0% 間隔: 76403 ミリ秒。
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0 は Scheduler 0 では生成されていないようです。 スレッドの作成時間: 12925321224306。 使用されるスレッド CPU の程度: カーネル 125 ミリ秒、ユーザー 145250 ミリ秒。 プロセス使用率 98% システム アイドル 0% 間隔: 148417 ms。
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0 は Scheduler 0 では生成されていないようです。 スレッドの作成時間: 12925321224306。 使用される約スレッド CPU: カーネル 171 ミリ秒、ユーザー 205515 ms。 プロセス使用率 98% システム アイドル 0% 間隔: 209729 ms。
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0 は Scheduler 0 では生成されていないようです。 スレッドの作成時間: 12925321224306。 使用される約スレッド CPU: カーネル 218 ミリ秒、ユーザー 266343 ms。 プロセス使用率 98% システム アイドル 0% 間隔: 271588 ms。
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0 は Scheduler 0 では生成されていないようです。 スレッドの作成時間: 12925321224306。 使用される約スレッド CPU: カーネル 234 ミリ秒、ユーザー 325156 ms。 プロセス使用率 97% システム アイドル 0% 間隔: 333671 ms。
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0 は Scheduler 0 では生成されていないようです。 スレッドの作成時間: 12925321224306。 使用される約スレッド CPU: カーネル 296 ミリ秒、ユーザー 386000 ミリ秒。 プロセス使用率 97% システム アイドル 0% 間隔: 396370 ミリ秒。
原因
この問題は、SQL Server 2008 または SQL Server 2008 R2 がスケジューラを正しく解放しないために発生します。
解決策
累積的な更新プログラムの情報
SQL Server 2008 R2
この問題の修正プログラムは、累積的な更新プログラム 5 で最初にリリースされました。 SQL Server 2008 R2 のこの累積的な更新プログラム パッケージを取得する方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示します。
2438347 累積的な更新プログラム パッケージ 5 for SQL Server 2008 R2 注意 ビルドは累積的であるため、新しい修正プログラムの各リリースには、以前の SQL Server 2008 R2 修正プログラム リリースに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
981356 SQL Server 2008 R2 のリリース以降にリリースされた SQL Server 2008 R2 のビルド
SQL Server 2008 Service Pack 1
この問題の修正プログラムは、SQL Server 2008 Service Pack 1 用の累積的な更新プログラム 10 で最初にリリースされました。 この累積的な更新プログラム パッケージの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2279604 SQL Server 2008 Service Pack 1Note 用の累積的な更新プログラム パッケージ 10 ビルドは累積的であるため、新しい修正プログラムの各リリースには、以前の SQL Server 2008 修正プログラム リリースに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 Microsoft では、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
970365 2008 Service Pack 1 SQL Serverリリース後にリリースされた SQL Server 2008 ビルドは、特定のSQL Server サービス パックに対して Microsoft SQL Server 2008 修正プログラムが作成されました。 SQL Server 2008 Service Pack 1 修正プログラムを、SQL Server 2008 Service Pack 1 のインストールに適用する必要があります。 既定では、SQL Server Service Pack で提供されるすべての修正プログラムは、次のSQL Server サービス パックに含まれます。
SQL Server 2008 Service Pack 2
この問題の修正プログラムは、SQL Server 2008 Service Pack 2 の累積的な更新プログラム 1 で最初にリリースされました。 この累積的な更新プログラム パッケージの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2289254 SQL Server 2008 Service Pack 2Note の累積的な更新プログラム 1 ビルドは累積的であるため、各新しい修正プログラム リリースには、以前の SQL Server 2008 修正プログラム リリースに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2402659 2008 Service Pack 2 のリリース後にリリースされた SQL Server 2008 ビルドSQL Server
回避策
この問題を回避するには、フルテキスト検索類義語辞典を使用して述語のシノニムを定義します。
これを行うには、FORMSOF 関数を THESAURUS 値と共に使用し、すべてのキーワードをパラメーターとして追加します。
「現象」セクションで説明されている例については、 サンプル クエリの更新バージョンを次に示します test_table。Contains(*,'FORMSOF (THESAURUS,"architectural","engineer","Mechanical","Engineering","Electronics","Engineer","Electrical","Control","Systems", "Project","Manager","製造","金属学","金属学者","プロセス","設計","技術","生産","品質","制御","Civil","Graduate","リクルート","コンサルタント","研修生","リクルート")')
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
CONTAINSTABLE 関数の詳細については、次の Microsoft Developer Network (MSDN) Web サイトを参照してください。
CONTAINSTABLE 関数に関する一般的な情報SQL Serverの増分サービス モデルの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
935897 報告された問題に対する修正プログラムを提供する SQL Server チームの増分サービス モデル (ISM) について
SQL Server の更新プログラムの命名方式の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。
822499 Microsoft SQL Server ソフトウェア更新プログラム パッケージの新しい名前付けスキーマソフトウェア更新プログラムの用語の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示します。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明