Select the product you need help with
[FIX] Sysprocesses システム テーブルのハンドルに対する SQL テキストを返す fn_get_sql 関数文書番号: 325607 - 対象製品 目次概要
この資料では、以下の変更を実装する、SQL Server 2000 の機能上の修正プログラムについて説明します。
解決方法
この問題を解決するには、Microsoft SQL Server 2000 の最新の Service Pack を入手します。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
290211 注 : 次の修正プログラムは Microsoft SQL Server 2000 Service Pack 3 がリリースされる前に作成されました。
(http://support.microsoft.com/kb/290211/
)
最新の SQL Server 2000 Service Pack の入手方法
修正プログラム ファイルfn_get_sql 関数を実装する、SQL Server 2000 の修正プログラムがあります。Microsoft Product Support Services にお問い合わせのうえ、修正プログラムを入手してください。 修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。 日付 時刻 バージョン サイズ ファイル名 ----------------------------------------------------------------- 07/01/2002 4:50 PM 8.00.652 7,285 kilobytes Sqlservr.exe 重要 : この修正プログラムの機能が必要な場合は、Sqlservr.exe のビルド 8.00.652 以降を適用し、この修正プログラムに含まれている Sp2_qfe_serv_uni.sql ファイルを実行する必要があります。詳細については、修正プログラム ファイルに含まれている Readme.txt ファイルを参照してください。 状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。
この問題は、Microsoft SQL Server 2000 Service Pack 3 で最初に修正されました。
詳細
fn_get_sql システム テーブル値関数の定義と構文は以下のとおりです。
fn_get_sql指定したハンドルで参照される SQL テキストを返します。構文fn_get_sql ([@SqlHandle = ]SqlHandle)引数[@SqlHandle = ] SqlHandleバイナリのハンドル値です。SqlHandle は、デフォルト値を持たない binary(20) です。 戻りテーブル元に戻す
解説fn_get_sql は、指定した SQLHANDLE の SQL テキストを返すシステム テーブル値関数です。有効な SQLHANDLE は、sysprocesses システム テーブルの sql_handle 列から取得できます。既にキャッシュに存在しないハンドルを渡した場合、fn_get_sql は空の結果セットを返します。無効なハンドルを渡した場合、バッチが中断され、次のエラー メッセージが表示されます。 サーバー : メッセージ 569、レベル 16、状態 1、プロシージャ fn_get_sql、行 12fn_get_sql に渡されたハンドルが無効でした。 text 列では、パスワードを含む可能性があるテキストがフィルタ処理されます。監視されないセキュリティ関連のストアド プロシージャの詳細については、SQL Server Books Online の「トレースの制限」を参照してください。 権限fn_get_sql 関数を実行できるのは、sysadmin 固定サーバー ロールのメンバのみです。例fn_get_sql 関数が返す情報は、DBCC INPUTBUFFER コマンドで返される情報に似ています。次のように DBCC INPUTBUFFER が制限されている場合には、fn_get_sql 関数を使用します。
トレース フラグ 2861トレース フラグ 2861 は、SQL Server がキャッシュにコスト 0 のプランを保持するように指示します。SQL Server は、通常、単純なアドホック クエリ、Set ステートメント、コミット トランザクションなどをキャッシュしません。
解説トレース フラグ 2861 を有効にすると、プロシージャ キャッシュ内のオブジェクト数が増加します。しかし、追加されるオブジェクトは非常に小さいため、プロシージャ キャッシュのメモリ使用量の増加はわずかです。SQL Server 2000 には、指定した任意の SQL ステートメントのための既存の実行プランを検索するための効率的なアルゴリズムがあります。ただし、プロシージャ キャッシュに格納されるオブジェクト数が増加するため、リレーショナル エンジンが既存のプランを検索する際にかかる時間が増加し、システムのパフォーマンスに悪影響を与える可能性があります。 通常、データベース サイズがメモリ サイズよりも非常に大きいシステムでは、メモリ不足になることが予想されます。他のオブジェクトのためにメモリが必要であるような状況でメモリが不足する場合、lazywriter プロセスはプロシージャ キャッシュ内のオブジェクトの割り当てを解除します。これによって、プロシージャ キャッシュのサイズが適正に保たれ、この変更によって発生する可能性のある悪影響が最小限に抑えられます。 ただし、メモリ サイズがデータベース サイズより大きいシステムでは、通常、メモリ不足になりません。その結果、メモリ不足のためにオブジェクトの割り当てがプロシージャ キャッシュから解除されることはありません。そのため、プロシージャ キャッシュのサイズが、パフォーマンスに悪影響を与える程度まで大きくなることがあります。 システム パフォーマンスに悪影響が出た場合には、以下の手順を実行します。
プロパティ文書番号: 325607 - 最終更新日: 2006年1月24日 - リビジョン: 5.2
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。" | サポート技術情報の翻訳 |










