1

SQLプロファイラーは実行時にMSDBに変更を加えると言われています。これは本当ですか?もしそうなら、それはどのような変更を加えますか?

より詳しい情報

私が尋ねる理由は、ライブサーバーでプロファイラーを実行するときに変更要求を範囲指定することを要求するDBAがあるためです。彼女の主張は、変更管理が必要なDBに変更を加えるというものです。

4

4 に答える 4

3

トレースを開始するとに行が追加されmsdb.sys.traces、トレースを停止すると行が削除されます。ただしmsdb.sys.traces、これは内部テーブル値関数のビューであり、物理ストレージによってサポートされていません。これを証明するには、に設定msdbread_only、トレースを開始し、の新しい行を監視し、msdb.sys.tracesトレースを停止し、元にmsdb戻すことを忘れないでくださいread_write読み取り専用の場合、プロファイラーイベントmsdbでトレースを開始できるため、通常、msdbへの書き込みが発生しないことは明らかです。

今、あなたが行ってあなたのdbaにニヤリと笑う前に、彼女は実際に正しいです。プロファイラートレースは、トレースレコードを生成できるようになるまでトレースされたイベントをブロックする必要があるため、稼働中のシステムに大きなストレスを与える可能性があります。稼働中のビジーなシステムでは、、、およびその他のタイプのリソースがブロックされる可能性がありますSQLTRACE_BUFFER_FLUSH。ライブトレース(プロファイラー)は通常より悪く、ファイルトレース(sp_trace_create)はより良いですが、それでも問題を引き起こす可能性があります。したがって、新しいトレースを開始することは、DBaに通知し、非常に慎重に検討する必要があることを明確に示す必要があります。SQLTRACE_LOCKTRACEWRITE

于 2009-10-01T16:56:43.310 に答える
1

私が知っている唯一のことは、定期的な情報を収集するためにトレースをスケジュールするときに発生します-ジョブが追加されます。

于 2009-10-01T15:08:49.043 に答える
0

私の知る限りではそうではありません(他の人が指摘した些細な変更を除いて)。

どのような変更を参照していますか?

于 2009-10-01T15:02:22.303 に答える
0

私がこれまで読んだり、聞いたり、見たりしたことは、SQLプロファイラーまたはそれが実行または使用するものがMSDBデータベースに影響を与えるとは言っていません。(SQL Profilerは、基本的に、トレースルーチンをラップしたGUIです。)もちろん、特定のセットアップ/実装を構成して、何でも実行できます。おそらく、それは誰かが考えていることです。

これは一種の「都市伝説」のように聞こえます。私はあなたがそれに挑戦することをお勧めします-それが真実であると主張する人々に証拠を提供してもらいます。

于 2009-10-01T15:54:37.110 に答える