sp_posttracertoken (Transact-SQL)

適用対象:SQL Server

このプロシージャは、パブリッシャー側のトランザクション ログにトレーサー トークンを送信し、待機時間の統計を追跡する処理を開始します。 情報が記録されるタイミングは、トレーサー トークンがトランザクション ログに書き込まれたとき、ログ リーダー エージェントに処理されたとき、およびディストリビューション エージェントによって適用されたときです。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。 詳細については、「 トランザクション レプリケーションの待機時間の計測および接続の検証」を参照してください。

Transact-SQL 構文表記規則

構文

  
sp_posttracertoken [ @publication = ] 'publication'   
    [ , [ @tracer_token_id = ] tracer_token_id OUTPUT  
    [ , [ @publisher = ] 'publisher'   

引数

[ @publication = ] 'publication' 待機時間を測定するパブリケーションの名前を指定します。 publicationsysname で、既定値はありません。

[ @tracer_token_id = ] _tracer_token_id OUTPUT 挿入されたトレーサー トークンの ID です。 tracer_token_idは既定値の NULL で int であり、OUTPUT パラメーターです。 この値を使用すると、sp_helptracertokens (Transact-SQL) を最初に実行することなく、sp_helptracertokenhistory (Transact-SQL) またはsp_deletetracertokenhistory (Transact-SQL) を実行できます。

[ @publisher = ] 'publisher' Microsoft SQL Server 以外のパブリッシャーを指定します。 publishersysname で、既定値は NULL であり、SQL Server パブリッシャーには指定しないでください。

リターン コードの値

0 (成功) または 1 (失敗)

解説

sp_posttracertokenはトランザクション レプリケーションで使用されます。

DECLARE @publication AS sysname;
DECLARE @tokenID AS int;
SET @publication = N'AdvWorksProductTran'; 

USE [AdventureWorks2022]

-- Insert a new tracer token in the publication database.
EXEC sys.sp_posttracertoken 
  @publication = @publication,
  @tracer_token_id = @tokenID OUTPUT;
SELECT 'The ID of the new tracer token is ''' + 
    CONVERT(varchar,@tokenID) + '''.'
GO

-- Wait 10 seconds for the token to make it to the Subscriber.
WAITFOR DELAY '00:00:10';
GO

-- Get latency information for the last inserted token.
DECLARE @publication AS sysname;
DECLARE @tokenID AS int;
SET @publication = N'AdvWorksProductTran'; 

CREATE TABLE #tokens (tracer_id int, publisher_commit datetime)

-- Return tracer token information to a temp table.
INSERT #tokens (tracer_id, publisher_commit)
EXEC sys.sp_helptracertokens @publication = @publication;
SET @tokenID = (SELECT TOP 1 tracer_id FROM #tokens
ORDER BY publisher_commit DESC)
DROP TABLE #tokens

-- Get history for the tracer token.
EXEC sys.sp_helptracertokenhistory 
  @publication = @publication, 
  @tracer_id = @tokenID;
GO

アクセス許可

sysadmin 固定サーバー ロールまたは固定データベース ロールdb_ownerメンバーのみが、sp_posttracertoken実行できます。

参照

待機時間を計測して Connections for Transactional Replication を検証します。