Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve uma linha para cada sessão de análise de registo na base de dados atual. A última linha devolvida representa a sessão atual. Pode usar esta vista para devolver informações de estado sobre a sessão atual de varrimento do log, ou informações agregadas sobre todas as sessões desde que a instância do SQL Server foi iniciada pela última vez.
Os registos são sys.dm_cdc_log_scan_sessions reiniciados sempre que a instância do SQL Server é reiniciada ou após ocorrer um failover. Além disso, se a base de dados consultada estiver no papel secundário de um grupo de disponibilidade Always On, então não são devolvidos registos.
Para mais informações, consulte O que é a captura de dados de alterações (CDC)?
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
session_id |
int | ID da sessão. 0 = os dados devolvidos nesta linha são um agregado de todas as sessões desde que a instância do SQL Server foi iniciada pela última vez. |
| start_time | datetime | Hora em que a sessão começou. Quando session_id = 0, começava a recolha de dados agregados no tempo. |
| end_time | datetime | Hora em que a sessão terminou. NULL = sessão está ativa. Quando session_id = 0, a hora em que a última sessão terminou. |
| Duração | int | A duração (em segundos) da sessão. 0 = a sessão não contém transações de captura de dados de alteração. Quando session_id = 0, a soma da duração (em segundos) de todas as sessões com transações de captura de dados alterados. |
| scan_phase | Nvarchar(200) | A fase atual da sessão. Seguem-se os valores possíveis e as suas descrições: 1: Configuração de leitura 2: Primeira varredura, construção da tabela de hash 3: Segunda varredura 4: Segunda varredura 5: Segunda varredura 6: Versionamento do esquema 7: Última varredura 8: Feito Quando session_id = 0, este valor é sempre "Agregado". |
| error_count | int | Número de erros encontrados. Quando session_id = 0, o número total de erros em todas as sessões. |
| start_lsn | nvarchar(23) | A iniciar LSN para a sessão. Quando session_id = 0, o LSN inicial da última sessão. |
| current_lsn | nvarchar(23) | LSN atual a ser digitalizado. Quando session_id = 0, o LSN atual é 0. |
| end_lsn | nvarchar(23) | Fim do LSN para a sessão. NULL = sessão está ativa. Quando session_id = 0, o LSN final da última sessão. |
| tran_count | bigint | Número de transações de captura de dados de alteração processadas. Este contador é preenchido na fase 2. Quando session_id = 0, o número de transações processadas em todas as sessões. |
| last_commit_lsn | nvarchar(23) | LSN do último registo de registo de commit processado. Quando session_id = 0, o último registo log de commit LSN para qualquer sessão. |
| last_commit_time | datetime | Hora em que o último registo de registo de commit foi processado. Quando session_id = 0, é o tempo do último registo log de commit para qualquer sessão. |
| log_record_count | bigint | Número de registos de registo digitalizados. Quando session_id = 0, número de registos digitalizados em todas as sessões. |
| schema_change_count | int | Número de operações de linguagem de definição de dados (DDL) detetadas. Este contador é povoado na fase 6. Quando session_id = 0, o número de operações DDL processadas em todas as sessões. |
| command_count | bigint | Número de comandos processados. Quando session_id = 0, o número de comandos processados em todas as sessões. |
| first_begin_cdc_lsn | nvarchar(23) | Primeiro LSN que continha transações de captura de dados de alteração. Quando session_id = 0, o primeiro LSN que continha transações de captura de dados altera. |
| last_commit_cdc_lsn | nvarchar(23) | LSN do último registo de registo de commit que continha transações de captura de dados de alteração. Quando session_id = 0, o último registo de registo de commit LSN para qualquer sessão que contenha transações de captura de dados de alteração |
| last_commit_cdc_time | datetime | O momento em que o último registo de registo de commit foi processado que continha transações de captura de dados de alteração. Quando session_id = 0, o momento em que o último registo de registo de commit para qualquer sessão contenha transações de captura de dados de alteração. |
| Latência | int | A diferença, em segundos, entre end_time e last_commit_cdc_time durante a sessão. Este contador é ocupado no final da fase 7.Quando session_id = 0, o último valor de latência não nula registado por uma sessão. |
| empty_scan_count | int | Número de sessões consecutivas que não contiveram transações de captura de dados alteradas. |
| failed_sessions_count | int | Número de sessões que falharam. |
Observações
O sys.dm_cdc_log_scan_sessions DMV contém até 32 sessões de digitalização e um agregado de todas as sessões de digitalização com session_id= 0. Assim, em qualquer momento, esta vista de gestão dinâmica pode conter um máximo de 33 linhas.
Permissions
Requer permissão VIEW DATABASE STATE para consultar a sys.dm_cdc_log_scan_sessions vista de gestão dinâmica. Para mais informações sobre permissões em vistas de gestão dinâmica, consulte Vistas e Funções de Gestão Dinâmica (Transact-SQL).
Permissões para SQL Server 2022 e posterior
Requer a permissão VIEW DATABASE PERFORMANCE STATE no banco de dados.
Examples
O exemplo seguinte retorna informação para a sessão mais recente.
USE AdventureWorks2022;
GO
SELECT session_id, start_time, end_time, duration, scan_phase,
error_count, start_lsn, current_lsn, end_lsn, tran_count,
last_commit_lsn, last_commit_time, log_record_count, schema_change_count,
command_count, first_begin_cdc_lsn, last_commit_cdc_lsn,
last_commit_cdc_time, latency, empty_scan_count, failed_sessions_count
FROM sys.dm_cdc_log_scan_sessions
WHERE session_id = (SELECT MAX(b.session_id) FROM sys.dm_cdc_log_scan_sessions AS b);
GO