Analisar o desempenho do banco de dados com eventos estendidos

Nesta página, descrevemos como usar eventos estendidos (XEvents). nas instâncias.

O Cloud SQL oferece suporte ao uso de XEvents para monitorar, identificar e solucionar problemas do desempenho do seu banco de dados. Para isso, crie sessões XEvent e leia arquivos de saída XEvent. Você pode ler os arquivos de saída XEvent na instância ou fazendo o download dos arquivos XEvent de um bucket do Cloud Storage.

Antes de começar

Se quiser fazer upload dos arquivos XEvent para um bucket do Cloud Storage, crie um bucket na sua conta do Google Cloud.

Práticas recomendadas

  • Para evitar a transferência de arquivos grandes entre regiões, recomendamos que você siga um destes procedimentos:
    • Criar buckets multirregionais do Cloud Storage
    • Configurar o bucket de destino do Cloud Storage na mesma região da instância
  • Antes de usar os XEvents, ative os aumentos automáticos de armazenamento. Os arquivos de saída XEvent, dependendo do tamanho total e dos intervalos de retenção, podem precisar de um espaço em disco significativo.
  • Para evitar a retenção de muitos arquivos XEvent por muito tempo, configure uma política de retenção de dados no seu bucket do Cloud Storage.
  • Se você criar uma sessão XEvent usando a IU do SSMS, mas algumas caixas de valores de entrada não forem exibidas, redimensione a janela Criar sessão XEvent.

Como criar sessões XEvent

Os XEvents são ativados nas instâncias automaticamente.

Use o CREATE EVENT SESSION para definir novas sessões de XEvent. Você também pode usar a interface do usuário do SQL Server Management Studio (SSMS) para criar sessões XEvent.

O Cloud SQL aplica os seguintes parâmetros em todas as sessões XEvent:

Parâmetro Descrição Valores permitidos
FILENAME Especifica o nome do arquivo e o caminho para armazenar dados da sessão XEvents. Qualquer caminho que comece com /var/opt/mssql/xevents/
MAX_FILE_SIZE Especifica o tamanho máximo de cada arquivo de saída antes da criação de um novo arquivo. Mínimo de 10 MB
Máximo de 1 GB
MAX_MEMORY Especifica a quantidade máxima de memória a ser alocada para a sessão para armazenamento de eventos em buffer. Mínimo de 4 MB
Máximo de 8 MB
MAX_DISPATCH_LATENCY Especifica o tempo máximo (em segundos) que os eventos podem permanecer na fila de despacho de eventos antes de serem enviados ao destino. Mínimo de 1 segundo
Máximo de 30 segundos
MAX_EVENT_SIZE Define o tamanho máximo de cada evento em bytes. Mínimo de 4 MB
Máximo de 8 MB

Parâmetros de configuração da sessão XEvent

Você pode configurar sessões XEvent usando os seguintes parâmetros como sinalizações personalizadas:

Parâmetro Descrição
cloud sql xe bucket name Especifique o bucket do Cloud Storage em que você quer fazer upload da saída da sessão XEvent. Se isso não for especificado, o Cloud SQL não vai fazer upload da saída da sessão XEvent para o Cloud Storage.
cloud sql xe output total disk size (mb) Especifique a quantidade de espaço em disco a ser reservada para a saída de todas as sessões XEvent. Se isso não for especificado, o Cloud SQL usará um espaço em disco padrão de 512 MB. Se os arquivos de saída XEvent usarem espaço em disco mais do que o valor de cloud sql xe output total disk size (mb), o Cloud SQL removerá esses arquivos do disco.
cloud sql xe file retention (mins) Especifique o tempo de retenção na instância em minutos para arquivos gerados pelos destinos de arquivo das sessões XEvent. Se isso não for especificado, o Cloud SQL usará o valor padrão de sete dias.
cloud sql xe upload interval (mins) Especifique o intervalo de upload dos arquivos XEvent que estão sendo enviados para o Cloud Storage. Se isso não for especificado, o Cloud SQL usará o valor padrão de 10 minutos.

Para mais informações sobre essas flags, consulte Configurar flags do banco de dados.

Como ler arquivos de saída da sessão XEvent

É possível ler arquivos de saída da sessão XEvent de uma instância do Cloud SQL ou de um bucket do Cloud Storage.

Ler arquivos de saída XEvent de uma instância

Para recuperar os dados de um arquivo XEvent criado por uma sessão XEvent, use a função sys.fn_xe_file_target_read_file.

Confira um exemplo:

SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);

Ler arquivos de saída XEvent de um bucket

Para ler arquivos de saída XEvent de um bucket do Cloud Storage, faça o download dos arquivos do bucket para uma instância do SQL Server. É possível fazer o download em uma das seguintes instâncias:

  • Uma instância do Windows do Compute Engine
  • Uma instância do Linux no Compute Engine
  • Outro tipo de instância que executa o SQL Server

Em seguida, transfira os arquivos de saída XEvent do bucket para um local acessível ao dessa instância, como o disco local. Em seguida, para retornar informações do evento XEvent arquivo de saída, execute a função sys.fn_xe_file_target_read_file com uma conta que tem o VIEW SERVER STATE no servidor. Para mais informações sobre permissões, consulte Permissões.

Monitorar sessões XEvent

É possível monitorar atividades relacionadas à sessão XEvent pelo arquivo xevents.log para as seguintes operações:

  • Os arquivos de saída XEvent removidos do disco, que não foram enviados ao Cloud Storage e ocupavam espaço em disco maior do que o valor associado a cloud sql xe output total disk size (mb).
  • Os arquivos de saída XEvent removidos do disco, que não foram enviados para o Cloud Storage e são mais antigos que o valor associado a cloud sql xe file retention.

Considerações sobre réplicas de leitura

Esta seção contém informações sobre sessões XEvent para réplicas de leitura novas e existentes.

Para novas réplicas de leitura

  • Todos os parâmetros de configuração da sessão XEvent que são transmitidos por sinalizações do banco de dados na instância original estão disponíveis na réplica de leitura recém-criada.
  • Todas as sessões XEvent presentes na instância original quando as réplicas de leitura são criadas ficam disponíveis na réplica de leitura. Observe que as sessões XEvent na réplica de leitura precisam ser iniciadas manualmente, a menos que estejam configuradas para iniciar automaticamente. Para mais informações, consulte Como criar sessões XEvent.
  • Se você clonar uma instância primária, todas as flags do banco de dados que aparecerem nela serão propagadas para a instância clonada. Além disso, conceda permissões à conta de serviço da instância clonada para acessar o bucket do Cloud Storage novamente.

Para réplicas de leitura atuais

  • Os parâmetros de configuração da sessão XEvent transmitidos pelas flags do banco de dados à instância original não são propagados para as réplicas de leitura.
  • As sessões XEvent criadas na instância original não são propagadas para réplicas de leitura.