Share via


Procedura: Misurazione della latenza e convalida delle connessioni per la replica transazionale (programmazione Transact-SQL della replica)

Per la replica transazionale, è necessario essere in grado di verificare che i server siano connessi e misurare latenza. La latenza rappresenta il tempo trascorso prima che le modifiche apportate nel server di pubblicazione siano propagate ai Sottoscrittori. Per ulteriori informazioni, vedere Monitoraggio (replica). È possibile ottenere tali informazioni a livello di programmazione tramite le stored procedure di replica.

[!NOTA]

Le informazioni sul token di traccia vengono mantenute per lo stesso periodo di tempo degli altri dati cronologici, ovvero in base all'impostazione del periodo di memorizzazione della cronologia del database di distribuzione. Per modificare il periodo di memorizzazione, modificare il valore della proprietà history_retention utilizzando sp_changedistributiondb (Transact-SQL).

Per inviare un token di traccia a una pubblicazione transazionale

  1. (Facoltativo) Nel database di pubblicazione del server di pubblicazione, eseguire sp_helppublication (Transact-SQL). Verificare che la pubblicazione esista e che lo stato sia attivo.

  2. (Facoltativo) Nel database di pubblicazione del server di pubblicazione, eseguire sp_helpsubscription (Transact-SQL). Verificare che la sottoscrizione esista e che lo stato sia attivo.

  3. Nel database di pubblicazione del server di pubblicazione, eseguire sp_posttracertoken (Transact-SQL), specificando @publication. Tenere presente il valore del parametro di output @tracer_token_id.

Per determinare la latenza e convalidare le connessioni per una pubblicazione transazionale

  1. Inviare un token di traccia alla pubblicazione utilizzando la procedura precedente.

  2. Nel database di pubblicazione del server di pubblicazione, eseguire sp_helptracertokens (Transact-SQL), specificando @publication. Viene restituito un elenco di tutti i token di traccia inviati alla pubblicazione. Tenere presente il valore di tracer_id desiderato nel set di risultati.

  3. Nel database di pubblicazione del server di pubblicazione, eseguire sp_helptracertokenhistory (Transact-SQL), specificando @publication e l'ID del token di traccia indicato nel passaggio 2 per @tracer_id. Vengono restituite le informazioni sulla latenza per il token di traccia selezionato.

Per rimuovere token di traccia

  1. Nel database di pubblicazione del server di pubblicazione, eseguire sp_helptracertokens (Transact-SQL), specificando @publication. Viene restituito un elenco di tutti i token di traccia inviati alla pubblicazione. Tenere presente il valore di tracer_id del token di traccia da eliminare nel set di risultati.

  2. Nel database di pubblicazione del server di pubblicazione, eseguire sp_deletetracertokenhistory (Transact-SQL), specificando @publication, e l'ID del token di traccia da eliminare indicato nel passaggio 2 per @tracer_id.

Esempio

In questo esempio viene inserito un record di token di traccia e viene utilizzato l'ID restituito del token di traccia inviato per visualizzare le informazioni sulla latenza.

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

USE [AdventureWorks]

-- 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