Partilhar via


Definir configurações tempdb para a Instância Gerenciada SQL do Azure

Aplica-se a:Azure SQL Managed Instance

Este artigo ensina você a definir suas configurações para a tempdb Instância Gerenciada SQL do Azure.

A Instância Gerenciada SQL do Azure permite configurar o seguinte:

  • Número de tempdb ficheiros
  • O incremento de crescimento de tempdb arquivos
  • Tamanho máximo tempdb

tempdb As configurações persistem depois que sua instância é reiniciada, atualizada ou se houver um failover.

Visão geral

tempdb é um dos bancos de dados padrão do sistema que vem com a Instância Gerenciada SQL do Azure. A estrutura de tempdb é a mesma que qualquer outra estrutura de banco de dados de usuário. A diferença é que, como tempdb é usado para armazenamento não durável, as transações são minimamente registradas.

tempdb não pode ser descartado, desanexado, colocado offline, renomeado ou restaurado. A tentativa de qualquer uma dessas operações retorna um erro. tempdb é regenerado sempre que a instância é iniciada. Os objetos que possam ter sido criados durante tempdb uma sessão anterior não persistem quando o serviço é reiniciado, após uma operação de gerenciamento de atualização de instância ou um failover.

A carga de trabalho difere das cargas de trabalho em tempdb outros bancos de dados de usuários, objetos e dados são frequentemente criados e destruídos e há uma simultaneidade extremamente alta. Há apenas um tempdb para cada instância gerenciada pelo SQL. Mesmo que você tenha vários bancos de dados e aplicativos se conectando à instância, todos eles usam o mesmo tempdb banco de dados. Os serviços podem sofrer contenção quando tentam alocar páginas em um tempdb. Dependendo do grau de contenção, as consultas e solicitações que envolvem tempdb podem tornar-se inativas. É por isso que tempdb é fundamental para o desempenho do serviço.

Número de tempdb ficheiros

Aumentar o número de ficheiros de dados cria uma ou mais páginas GAM e SGAM para cada ficheiro de dados, o que ajuda a melhorar a simultaneidade e reduz a contenção de páginas PFS. No entanto, aumentar o número de arquivos de dados pode ter outras implicações de desempenho, portanto, teste cuidadosamente antes de tempdb implementar na produção.

Por padrão, a Instância Gerenciada SQL do Azure cria 12 tempdb arquivos de dados e um tempdb arquivo de log, mas é possível modificar essa configuração.

Modificar o número de tempdb arquivos tem as seguintes limitações:

  • O nome lógico do novo arquivo não diferencia maiúsculas de minúsculas, com um máximo de 16 caracteres e sem espaços.
  • O número máximo de tempdb ficheiros é 128.

Observação

Não é necessário reiniciar a instância depois de adicionar novos arquivos. No entanto, os ficheiros mais vazios serão preenchidos com maior prioridade e o algoritmo round-robin para alocação de páginas torna-se inativo até que o sistema seja reequilibrado.

Você pode usar o SQL Server Management Studio (SSMS) e o Transact-SQL (T-SQL) para alterar o número de arquivos da tempdb Instância Gerenciada SQL do Azure.

Você pode usar o SQL Server Management Studio (SSMS) para modificar o número de tempdb arquivos. Para fazer isso, execute as seguintes etapas:

  1. Conecte-se à sua instância gerenciada SQL no SSMS.

  2. Expanda Bancos de Dados no Pesquisador de Objetos e, em seguida, expanda Bancos de dados do sistema.

  3. Clique com o botão direito do mouse e tempdbescolha Propriedades.

  4. Selecione Arquivos em Selecione uma página para exibir o número existente de tempdb arquivos.

  5. Para adicionar um arquivo, escolha Adicionar e forneça informações sobre o novo arquivo de dados na linha.

    Captura de tela das Propriedades do Banco de Dados no SSMS, com o novo nome do arquivo de banco de dados realçado.

  6. Para remover um tempdb ficheiro, escolha o ficheiro que pretende remover da lista de ficheiros de base de dados e, em seguida, selecione Remover.

Incremento do crescimento

tempdb O crescimento dos ficheiros pode impactar o desempenho das consultas que utilizam tempdb. Como tal, tempdb incrementos de crescimento de arquivos de dados muito pequenos podem causar fragmentação de extensão, enquanto incrementos muito grandes podem resultar em crescimento lento ou falha de crescimento se não houver espaço suficiente para que o crescimento aconteça. O valor ideal para tempdb incrementos de crescimento de arquivos depende da sua carga de trabalho.

Os incrementos de crescimento padrão para a Instância Gerenciada SQL são 254 MB para tempdb arquivos de dados e 64 MB para tempdb arquivos de log, mas você pode configurar incrementos de crescimento para se adaptar à sua carga de trabalho e ajustar seu desempenho.

Considere o seguinte:

  • O parâmetro de crescimento de arquivo suporta as seguintes unidades para int_growth_increment: KB, MB, GB, TB e %.
  • Os incrementos de crescimento devem ser os mesmos para todos os tempdb arquivos de dados. Caso contrário, o algoritmo round robin que aloca páginas pode ser afetado.

Você pode usar o SQL Server Management Studio (SSMS) e o Transact-SQL (T-SQL) para alterar o incremento de crescimento de seus tempdb arquivos.

Você pode usar o SQL Server Management Studio (SSMS) para modificar o incremento de crescimento de tempdb arquivos. Para fazer isso, execute as seguintes etapas:

  1. Conecte-se à sua instância gerenciada SQL no SSMS.

  2. Expanda Bancos de Dados no Pesquisador de Objetos e, em seguida, expanda Bancos de dados do sistema.

  3. Clique com o botão direito do mouse e tempdbescolha Propriedades.

  4. Selecione Arquivos em Selecione uma página para exibir o número existente de tempdb arquivos.

  5. Escolha os pontos de suspensão (...) ao lado de um arquivo de dados para abrir a caixa de diálogo Alterar as propriedades de crescimento automático.

  6. Marque a caixa ao lado de Habilitar crescimento automático e modifique as configurações de crescimento automático especificando os valores de crescimento do arquivo, em porcentagem ou megabytes.

    Captura de tela da opção de crescimento automático do tempdev no SSMS, com o novo nome de arquivo de banco de dados realçado.

  7. Selecione OK para guardar as definições.

Tamanho máximo

tempdb tamanho é o tamanho da soma de todos os tempdb arquivos. tempdb tamanho do arquivo é um espaço alocado (zerado) para esse tempdb arquivo. O tamanho inicial do arquivo para todos os tempdb arquivos é de 16 MB, que é o tamanho de todos os tempdb arquivos quando a instância é reiniciada ou faz failover. Quando o espaço usado de um tempdb arquivo de dados atinge o tamanho do arquivo, todos os tempdb arquivos de dados crescem automaticamente por seus incrementos de crescimento configurados.

tempdb espaço usado é a soma do espaço usado de todos os tempdb arquivos. tempdb O espaço usado do arquivo é igual à parte do tamanho do tempdb arquivo que está ocupada com informações que não são zero. A soma do tempdb e do espaço livre é igual ao tempdb tamanho.

Você pode usar o T-SQL para determinar o uso atual e o espaço livre para seus tempdb arquivos.

Para obter espaço utilizado, espaço livre e tamanho dos seus tempdb ficheiros de dados, execute este comando:

USE tempdb
SELECT SUM((allocated_extent_page_count)*1.0/128) AS TempDB_used_data_space_inMB,
    SUM((unallocated_extent_page_count)*1.0/128) AS TempDB_free_data_space_inMB,
    SUM(total_page_count*1.0/128) AS TempDB_data_size_inMB
FROM sys.dm_db_file_space_usage

A captura de tela a seguir mostra um exemplo de saída:

Captura de tela do resultado da consulta no SSMS mostrando espaço usado e livre no arquivo de dados tempdb.

Para obter o espaço usado, o espaço livre e o tamanho dos arquivos tempdb de log, execute este comando:

USE tempdb
SELECT used_log_space_in_bytes*1.0/1024/1024 AS TempDB_used_log_space_inMB,
     (total_log_size_in_bytes- used_log_space_in_bytes)*1.0/1024/1024 AS TempDB_free_log_space_inMB,
     total_log_size_in_bytes*1.0/1024/1024 AS TempDB_log_size_inMB
FROM sys.dm_db_log_space_usage

A captura de tela a seguir mostra um exemplo de saída:

Captura de tela do resultado da consulta no SSMS mostrando espaço usado e livre no arquivo de log tempdb.

tempdb O tamanho máximo é o limite após o qual você tempdb não pode crescer mais.

tempdb O tamanho máximo na Instância Gerenciada SQL tem as seguintes limitações:

  • Na camada de serviço de uso geral, o tamanho máximo tempdb é limitado a 24 GB/vCore (96-1920 GB). O tamanho máximo do arquivo de tempdb log é de 120 GB.
  • Na camada de serviço Business Critical, tempdb compete com outros bancos de dados por recursos, de modo que o armazenamento reservado é compartilhado entre tempdb outros bancos de dados até o tamanho máximo de armazenamento alocado para a instância. O tamanho máximo do arquivo de log é de tempdb dois TB.

tempdb Os arquivos crescem até atingirem o limite máximo permitido pela camada de serviço ou pelo tamanho máximo tempdb de arquivo configurado manualmente.

Você pode usar o SQL Server Management Studio (SSMS) e o Transact-SQL (T-SQL) para alterar o tamanho máximo dos arquivos tempdb .

Para determinar o tamanho máximo atual tempdb no SSMS, siga estas etapas:

  1. Conecte-se à sua instância gerenciada SQL no SSMS.
  2. Expanda Bancos de Dados no Pesquisador de Objetos e, em seguida, expanda Bancos de dados do sistema.
  3. Clique com o botão direito do mouse e tempdbescolha Propriedades.
  4. Na página Geral, verifique o valor Tamanho em Banco de Dados para determinar seu tamanho máximo tempdb . Um valor de -1 indica tempdb max size é ilimitado.

Captura de tela das propriedades do banco de dados tempdb mostrando o tamanho máximo do tempdb no SSMS.

Para alterar o tamanho máximo atual tempdb no SSMS, siga estas etapas:

  1. Conecte-se à sua instância gerenciada SQL no SSMS.
  2. Expanda Bancos de Dados no Pesquisador de Objetos e, em seguida, expanda Bancos de dados do sistema.
  3. Clique com o botão direito do mouse e tempdbescolha Propriedades.
  4. Selecione Arquivos em Selecione uma página para exibir o número existente de tempdb arquivos.
  5. Escolha os pontos de suspensão (...) ao lado de um arquivo de dados para abrir a caixa de diálogo Alterar as propriedades de crescimento automático.
  6. Modifique as tempdb configurações de tamanho máximo alterando os valores em Tamanho máximo do arquivo.
  7. Selecione OK para guardar as definições.

Captura de ecrã da caixa de diálogo de crescimento automático de alterações no SSMS, com o tamanho máximo do ficheiro realçado.

Os limites do tempdb

A tabela a seguir define limites para várias tempdb definições de configuração:

Definição de configuração Valores
Nomes lógicos de tempdb arquivos Máximo de 16 caracteres
Número de tempdb ficheiros Máximo de 128 ficheiros
Número padrão de tempdb arquivos 13 (1 ficheiro de registo + 12 ficheiros de dados)
Tamanho inicial dos ficheiros de tempdb dados 16 MB
Incremento padrão de crescimento de arquivos de tempdb dados 256MB
Tamanho inicial dos arquivos de tempdb log 16 MB
Incremento padrão de crescimento dos arquivos de log tempdb 64 MB
Tamanho máximo tempdbinicial -1 (ilimitado)
Tamanho máximo dos ficheiros de tempdb dados - No nível de serviço de uso geral: 24 GB/vCore até 1920 GB total
No nível de serviço Crítico para Negócios: até ao tamanho do armazenamento
Tamanho máximo dos ficheiros de tempdb registo - Na camada de serviço de uso geral: 120 GB
Na camada de serviço Business Critical: 2 TB