core.sp_create_snapshot (Transact-SQL)
適用対象: SQL Server
管理データ ウェアハウスの core.snapshots
ビューに行を挿入します。 この手順は、アップロード パッケージが管理データ ウェアハウスへのデータのアップロードを開始するたびに呼び出されます。
構文
core.sp_create_snapshot [ @collection_set_uid = ] 'collection_set_uid'
, [ @collector_type_uid = ] 'collector_type_uid'
, [ @machine_name = ] 'machine_name'
, [ @named_instance = ] 'named_instance'
, [ @log_id = ] log_id
, [ @snapshot_id = ] snapshot_id OUTPUT
[ ; ]
引数
[ @collection_set_uid = ] 'collection_set_uid'
コレクション セットの GUID を指定します。 @collection_set_uid は既定値のない uniqueidentifier です。 GUID を取得するには、 msdb
データベースのdbo.syscollector_collection_sets ビューに対してクエリを実行します。
[ @collector_type_uid = ] 'collector_type_uid'
コレクター型の GUID。 @collector_type_uid は既定値のない uniqueidentifier です。 GUID を取得するには、 msdb
データベースのdbo.syscollector_collector_types ビューに対してクエリを実行します。
[ @machine_name = ] 'machine_name'
コレクション セットが存在するサーバーの名前を指定します。 @machine_name は sysname で、既定値はありません。
[ @named_instance = ] 'named_instance'
コレクション セットのインスタンスの名前。 @named_instance は sysname で、既定値はありません。
[ @log_id = ] log_id
データを収集したサーバー上のコレクション セット イベント ログにマップされる一意の識別子。 @log_id は既定値のない bigint です。 log_idの値を取得するには、msdb
データベースのdbo.syscollector_execution_log ビューに対してクエリを実行します。
[ @snapshot_id = ] snapshot_id
core.snapshots
ビューに挿入される行の一意識別子。 @snapshot_id は int 出力として返されます。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
アップロード パッケージが管理データ ウェアハウスへのデータのアップロードを開始するたびに、データ コレクターのランタイム コンポーネントは core.sp_create_snapshot
を呼び出します。
このプロシージャでは、次の条件がチェックされます。
collection_set_uidは、
core.source_info_internal
テーブル内の既存のエントリと一致します。collector_type_uidは、
core.supported_collector_types
ビュー内の既存のエントリと一致します。
上記のチェックのいずれかが失敗した場合、プロシージャは失敗し、エラーを返します。
アクセス許可
(EXECUTE 権限を持つ) mdw_writer 固定データベース ロールのメンバーシップが必要です。
例
次の例では、ディスク使用量コレクション セットのスナップショットを作成し、それを管理データ ウェアハウスに追加して、スナップショット識別子を返します。 この例では、既定のインスタンスが使用されています。
USE <management_data_warehouse>;
DECLARE @snapshot_id int;
EXEC core.sp_create_snapshot
@collection_set_uid = '7B191952-8ECF-4E12-AEB2-EF646EF79FEF',
@collector_type_uid = '302E93D1-3424-4BE7-AA8E-84813ECF2419',
@machine_name = '<computername>',
@named_instance = 'MSSQLSERVER',
@log_id = 11, -- ID of the log for the collection set
@snapshot_id = @snapshot_id OUTPUT;