Analise o desempenho da base de dados com eventos alargados

Esta página descreve como usar os eventos alargados (XEvents) nas suas instâncias.

O Cloud SQL suporta a utilização de XEvents para monitorizar, identificar e resolver problemas de desempenho da sua base de dados. Para o fazer, cria sessões XEvent e lê ficheiros de saída XEvent. Pode ler os ficheiros de saída XEvent na instância ou transferindo os ficheiros XEvent de um contentor do Cloud Storage.

Antes de começar

Se quiser carregar os seus ficheiros XEvent para um contentor do Cloud Storage, crie um contentor na sua Google Cloud conta.

Práticas recomendadas

  • Para evitar a transferência de ficheiros grandes entre regiões, recomendamos que faça uma das seguintes ações:
    • Crie contentores do Cloud Storage multirregionais
    • Configure o contentor de destino do Cloud Storage na mesma região que a instância
  • Antes de usar os XEvents, ative os aumentos automáticos de armazenamento. Os ficheiros de saída XEvent, consoante o respetivo tamanho total e intervalos de retenção, podem precisar de um espaço em disco significativo.
  • Para evitar reter demasiados ficheiros XEvent durante muito tempo, configure uma política de retenção de dados para o seu contentor do Cloud Storage.
  • Se criar uma sessão XEvent através da IU do SSMS, mas algumas caixas para valores de entrada não aparecerem, redimensione a janela Criar sessão XEvent.

Como criar sessões de XEvent

O XEvents é ativado automaticamente nas suas instâncias.

Use o comando CREATE EVENT SESSION para definir novas sessões XEvent. Também pode usar a interface do utilizador do SQL Server Management Studio (SSMS) para criar sessões XEvent.

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

Parâmetro Descrição Valores permitidos
FILENAME Especifica o nome do ficheiro 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 ficheiro de saída antes de ser criado um novo ficheiro. Um mínimo de 10 MB
Um máximo de 1 GB
MAX_MEMORY Especifica a quantidade máxima de memória a atribuir à sessão para o armazenamento em buffer de eventos. Um mínimo de 4 MB
Um máximo de 8 MB
MAX_DISPATCH_LATENCY Especifica o tempo máximo (em segundos) que os eventos podem permanecer na fila de envio de eventos antes de serem enviados para o destino. Um mínimo de 1 segundo
Um máximo de 30 segundos
MAX_EVENT_SIZE Define o tamanho máximo de cada evento, em bytes. Um mínimo de 4 MB
Um máximo de 8 MB

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

Pode configurar sessões XEvent usando os seguintes parâmetros como flags personalizadas:

Parâmetro Descrição
cloud sql xe bucket name Especifique o contentor do Cloud Storage para o qual quer carregar o resultado da sessão XEvent. Se não for especificado, o Cloud SQL não carrega os dados de 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 reservar para a saída de todas as sessões XEvent. Se não for especificado, o Cloud SQL usa um espaço em disco predefinido de 512 MB. Se os ficheiros de saída XEvent usarem mais espaço no disco do que o valor de cloud sql xe output total disk size (mb), o Cloud SQL remove estes ficheiros do disco.
cloud sql xe file retention (mins) Especifique o tempo de retenção na instância em minutos para ficheiros gerados pelos destinos de ficheiros de sessões XEvent. Se não for especificado, o Cloud SQL usa um valor predefinido de 7 dias.
cloud sql xe upload interval (mins) Especifique o intervalo de carregamento dos ficheiros XEvent que estão a ser carregados para o Cloud Storage. Se não for especificado, o Cloud SQL usa um valor predefinido de 10 minutos.

Para mais informações sobre a definição destas flags, consulte o artigo Configure flags da base de dados.

Como ler ficheiros de saída de sessões XEvent

Pode ler ficheiros de saída de sessões XEvent a partir de uma instância do Cloud SQL ou de um contentor do Cloud Storage.

Leia ficheiros de saída XEvent de uma instância

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

Segue-se um exemplo:

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

Leia ficheiros de saída XEvent de um contentor

Para ler ficheiros de saída XEvent de um contentor do Cloud Storage, transfira os ficheiros do contentor para uma instância do SQL Server. Pode transferir a partir de uma das seguintes instâncias:

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

Em seguida, transfira os ficheiros de saída XEvent do contentor para uma localização acessível a essa instância, como o respetivo disco local. Em seguida, para devolver informações do ficheiro de saída XEvent, execute a função sys.fn_xe_file_target_read_file com uma conta que tenha a autorização VIEW SERVER STATE no servidor. Para mais informações acerca das autorizações, consulte o artigo Autorizações.

Métricas de monitorização

Pode monitorizar as seguintes operações relacionadas com xevent como parte das métricas do Cloud SQL, disponíveis através do Explorador de métricas:

  • database/sqlserver/xevents_upload_count: indica o total de tentativas de carregamento de ficheiros xevent bem-sucedidas e com falhas. Verifique esta métrica para monitorizar se os carregamentos foram bem-sucedidos.
  • database/sqlserver/xevents_size: indica a quantidade de espaço em disco usado por ficheiros xevent armazenados na instância, em bytes.

Monitorize sessões de XEvent

Pode monitorizar as atividades relacionadas com a sessão XEvent através do ficheiro xevents.log para as seguintes operações:

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

Considerações para réplicas de leitura

Esta secçã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 transmitidos através de flags da base 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 estão disponíveis na réplica de leitura. Tenha em atenção que as sessões XEvent na réplica de leitura têm de ser iniciadas manualmente, a menos que estejam configuradas para serem iniciadas automaticamente. Para mais informações, consulte Como criar sessões XEvent.
  • Se clonar uma instância principal, todas as flags de base de dados apresentadas na instância principal são propagadas para a instância clonada. Além disso, tem de conceder autorizações à conta de serviço da instância clonada para aceder novamente ao contentor do Cloud Storage.

Para réplicas de leitura existentes

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