1

監視と調査の目的でsp_WhoIsActive、結果を別のサーバーに保存する必要があるため、(特に xml 列であるクエリ プラン) の結果をテーブルに保存したいと考えています。

リンクサーバーを使用してこれを試みると、エラーが表示されます:

Xml データ型は、分散クエリではサポートされていません。リモート オブジェクト 'IROWSET' には xml 列があります

これはどのように達成できますか?

4

3 に答える 3

0

多数の SQL サーバーがあり、すべての結果を 1 つの中央グローバル プロダクション監査サーバーに送信したいと考えているようです。これは私が使用した方法です。これにより、SERVER NAME などの追加の列を追加できます。Linked Servers は単純に XML データ型をサポートしていないため、ソリューションを少し変更する必要があります。

XML 列を に変換しVARCHAR(MAX)、クエリ プランをVARCHAR(MAX)他のサーバーのグローバル テーブルに として保存する必要があります。次の手順を実行します

  1. XML 列を含むスキーマを使用して<table>を作成しますsp_WhoIsActive
  2. 実行INSERT INTO <table>... EXEC sp_WhoIsActiveして、1 つのステートメントでそのテーブルにデータを入力する
  3. XML<table>VARCHAR(MAX)
  4. その変換された XML の結果をVARCHARリンク サーバーのテーブルに挿入します。
  5. SQL エージェント ジョブでこれを行うことも機能します。
于 2014-08-29T19:09:04.420 に答える