Banco de dados tempdb

O banco de dados do sistema tempdb é um recurso global que está disponível para todos os usuários conectados à instância do SQL Server e é usado para conter o seguinte:

  • Os objetos de usuário temporários criados explicitamente como: tabelas temporárias globais ou locais, procedimentos armazenados temporários, variáveis de tabela ou cursores.

  • Objetos internos criados pelo mecanismo de banco de dados SQL Server, por exemplo, tabelas de trabalho para armazenar resultados intermediários para spools ou classificação.

  • Versões de linha geradas por transações de modificação de dados em um banco de dados que usa a leitura de confirmados usando transações de isolação de controle de versão de linha ou isolação de instantâneo.

  • As versões de linhas geradas por meio de transações de modificação de dados para recursos como: operações de índice on-line, vários conjuntos de resultados ativos (MARS) e gatilhos AFTER.

As operações em tempdb são registradas minimamente. Isso permite que transações sejam revertidas. tempdb é recriado sempre que SQL Server é iniciado para que o sistema sempre comece com uma cópia limpo do banco de dados. As tabelas temporárias e procedimentos armazenados são descartados automaticamente ou desconectados e nenhuma conexão fica ativa quando o sistema é desligado. Portanto, nunca há nada no tempdb a ser salvo de uma sessão de SQL Server para outra. As operações de backup e restauração não são permitidas no tempdb.

Propriedades físicas de tempdb

A tabela a seguir lista os valores iniciais de configuração dos dados tempdb e dos arquivos de log. Os tamanhos desses arquivos podem variar um pouco em diferentes edições do SQL Server.

Arquivo Nome lógico Nome físico Aumento do arquivo
Dados primários tempdev tempdb.mdf Aumento automático em 10% até que o disco esteja cheio
Log templog templog.ldf Aumento automático de 10 por cento até um máximo de 2 terabytes.

O tamanho do tempdb pode afetar o desempenho de um sistema. Por exemplo, se o tamanho do tempdb for muito pequeno, o processamento do sistema poderá estar muito ocupado com o autogrowing do banco de dados para dar suporte ao requisito de carga de trabalho sempre que você começar a SQL Server. Você pode evitar essa sobrecarga aumentando o tamanho do tempdb.

Melhorias de desempenho em tempdb

Em SQL Server, o desempenho do tempdb é aprimorado das seguintes maneiras:

  • As tabelas temporárias e variáveis de tabela podem ser colocadas em cache. O armazenamento em cache permite que as operações de descarte e criação de objetos temporários sejam executadas rapidamente e reduz a contenção de alocação de página.

  • O protocolo de travamento da página de alocação é aprimorado. Isso reduz o número de travas de UP (atualização) usadas.

  • A sobrecarga de logging para tempdb é reduzida. Isso reduz o consumo de largura de banda de E/S do disco no arquivo de log tempdb .

  • O algoritmo para alocar páginas mistas em tempdb é aprimorado.

Movendo os arquivos de log e dados de tempdb

Para mover os arquivos de log e dados tempdb , consulte Mover bancos de dados do sistema.

Opções de banco de dados

A tabela a seguir lista o valor padrão para cada opção de banco de dados no banco de dados tempdb e se a opção pode ser modificada. Para exibir as configurações atuais dessas opções, use a exibição de catálogo sys.databases .

Opção de banco de dados Valor padrão Pode ser modificado
ALLOW_SNAPSHOT_ISOLATION OFF Sim
ANSI_NULL_DEFAULT OFF Sim
ANSI_NULLS OFF Sim
ANSI_PADDING OFF Sim
ANSI_WARNINGS OFF Sim
ARITHABORT OFF Sim
AUTO_CLOSE OFF Não
AUTO_CREATE_STATISTICS ATIVADO Sim
AUTO_SHRINK OFF Não
AUTO_UPDATE_STATISTICS ATIVADO Sim
AUTO_UPDATE_STATISTICS_ASYNC OFF Sim
CHANGE_TRACKING OFF Não
CONCAT_NULL_YIELDS_NULL OFF Sim
CURSOR_CLOSE_ON_COMMIT OFF Sim
CURSOR_DEFAULT GLOBAL Sim
Opções de disponibilidade de banco de dados ONLINE

MULTI_USER

READ_WRITE
Não

No

Não
DATE_CORRELATION_OPTIMIZATION OFF Sim
DB_CHAINING ATIVADO Não
ENCRYPTION OFF Não
NUMERIC_ROUNDABORT OFF Sim
PAGE_VERIFY CHECKSUM para novas instalações de SQL Server.

NONE para atualizações de SQL Server.
Sim
PARAMETERIZATION SIMPLES Sim
QUOTED_IDENTIFIER OFF Sim
READ_COMMITTED_SNAPSHOT OFF Não
RECOVERY SIMPLES Não
RECURSIVE_TRIGGERS OFF Sim
Opções do Service Broker ENABLE_BROKER Sim
TRUSTWORTHY OFF Não

Para obter uma descrição dessas opções de banco de dados, consulte Opções ALTER DATABASE SET (Transact-SQL).

Restrições

As seguintes operações não podem ser executadas no banco de dados tempdb :

  • Adição de grupos de arquivos

  • Backup ou restauração de banco de dados.

  • Alteração de ordenação. A ordenação padrão é a ordenação do servidor.

  • Alteração do proprietário do banco de dados. tempdb pertence a sa.

  • Criação de um instantâneo do banco de dados

  • Descartando o banco de dados.

  • Descartando o usuário convidado do banco de dados.

  • Habilitação do Change Data Capture.

  • Participação no espelhamento de banco de dados.

  • Remoção do grupo de arquivos primário, arquivo de dados primário ou arquivo de log.

  • Renomeação do banco de dados ou grupo de arquivos primário.

  • Execução de DBCC CHECKALLOC.

  • Execução de DBCC CHECKCATALOG.

  • Definindo o banco de dados como OFFLINE.

  • Definindo o banco de dados ou grupo de arquivos primário como READ_ONLY.

Permissões

Qualquer usuário pode criar objetos temporários no tempdb. Os usuários podem acessar somente seus próprios objetos, a menos que recebam permissões adicionais. É possível revogar a permissão de conexão ao tempdb para impedir um usuário de usar tempdb, mas isto não é recomendado porque algumas operações rotineiras exigem o uso de tempdb.

Opção SORT_IN_TEMPDB para índices

Bancos de dados do sistema

sys.databases (Transact-SQL)

sys.master_files (Transact-SQL)

Mover arquivos de banco de dados

Consulte Também

Trabalhando com tempdb no SQL Server 2005