Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

次のような状況を考えます。

  • Microsoft SQL Server でのsqlos.wait_infoイベントをあるXEventセッションを作成するとします。

  • このセッションでは、次のパターンでは、フィルター (述語) を定義します。

    [sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text],N'%<Query Text>')

このシナリオでは、以下の問題のいずれかが発生する可能性があります。

  • SQL Server は、アクセス違反やスタック オーバーフローのメモリ ダンプ ファイルを生成します。

  • SQL Server には、解放されていないスケジューラ メモリ ダンプ ファイルが生成されます。

  • クエリは、結果を戻すことはしませんか、キャンセルまたはクエリを強制終了することはできません。

  • SQL Server には、例外を参照し、 SQL Server エラー ログにスタック オーバーフローのメモリ ダンプのファイルが生成される、次のメッセージのいずれかのようなエラー メッセージが生成されます。

    < 時刻スタンプ > spid52 *
    < 時刻スタンプ > spid52 * 開始スタック ダンプ。
    < 時刻スタンプ > spid52 * < 時刻スタンプ > spid 52
    < 時刻スタンプ > spid52 *
    < 時刻スタンプ > spid52 *
    < 時刻スタンプ > spid52 * 例外アドレス = 00007FFA414ED763 Module(sqlmin+000000000000D763)
    < 時刻スタンプ > spid52 * 例外コード = c0000005 参照
    < 時刻スタンプ > spid52 * アクセス違反が発生した書き込みアドレス 0000000000000008

    スタックが不足しているのため、スタック ダンプ ファイルを作成するのには、< 時刻スタンプ > spid55 できません (場所: scheduler.cpp:2090
    式:! -> WorkerQueueElem::IsInList () の pWorker
    SPID: 55
    プロセス ID: 8548)
    spid55 の < 時刻スタンプ > スタック署名ダンプは、0x0000000000000000 です。
    spid55 の < 時刻スタンプ > < 時刻スタンプ > スタック オーバーフローをダンプ不可能 - 0x00007FFA4EF85F35 での例外 c00000fd EXCEPTION_STACK_OVERFLOW
    < 時刻スタンプ > spid55 SqlDumpExceptionHandler: アドレス = 0x00007FFA4EF85F35 例外コード = c00000fd
    spid55 Rax の < 時刻スタンプ > = 000000000000044 c Rbx 0000000002612320 Rcx を = = 0000000002612050 Rdx = 00000000662baf59
    < 時刻スタンプ > spid55 Rsi Rdi の 000000004b04f848 の = = 000000004b000270 Rip 000000004ef85f35 Rsp を = = 0000000002611fd0
    < 時刻スタンプ > spid55 Rbp 0000000000000000 立てるの = = 0000000000010202
    < 時刻スタンプ > spid55 cs = 0000000000000033 の 000000000000002b ds を = = 000000000000002b
    es=000000000000002b fs=0000000000000053 gs=000000000000002b
    < 時刻スタンプ > spid55 1: フレーム 0000000000000000 リターン アドレス 00007FFA4EF85F35

回避策

この問題を回避するには、 wait_infoイベントとの複雑なフィルター条件を使用しないようにします。Wait_infoイベントはリソース集中型であり、大幅にクエリの速度が低下するためです。

このような状況で <テキスト> を追跡する場合は、フィルター述語のパターンを次のように変更します。

([sqlserver].[equal_i_sql_unicode_string]([sqlserver].[sql_text],N'<Query Text>').

ヘルプを表示

スキルを磨く

トレーニングの探索 >

新機能を最初に入手

Microsoft 365 Insider に参加する >

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

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

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

×