Tabelas
Tabelas são objetos de banco de dados que contêm todos os dados em um banco de dados. Nas tabelas, os dados são organizados de maneira lógica em um formato de linha-e-coluna semelhante ao de uma planilha. Cada linha representa um registro exclusivo e cada coluna representa um campo no registro. Por exemplo, uma tabela que contém dados de funcionários de uma empresa pode conter uma linha para cada funcionário e colunas representando as informações sobre o funcionário, como número, nome, endereço, cargo e número do telefone residencial do funcionário.
O número de tabelas em um banco de dados é limitado apenas pelo número de objetos permitidos em um banco de dados (2.147.483.647). Uma tabela definida pelo usuário padrão pode ter até 1.024 colunas. O número de linhas na tabela são está limitado apenas pela capacidade de armazenamento do servidor.
Você pode atribuir propriedades à tabela e a cada coluna na tabela para controlar os dados que são permitidos e outras propriedades. Por exemplo, você poderá criar restrições em uma coluna para desaprovar valores nulos ou fornecer um valor padrão se um valor não for especificado, ou você poderá atribuir uma restrição chave na tabela que impõe exclusividade ou define uma relação entre tabelas.
Os dados da tabela podem ser compactados por linha ou por página. A compactação de dados pode permitir armazenar mais linhas em uma página. Para obter mais informações, consulte Compactação de dados.
Tipos de tabelas
Além da função padrão de tabelas básicas definidas pelo usuário, o SQL Server fornece os tipos de tabelas a seguir que servem para propósitos especiais em um banco de dados.
Tabelas particionadas
As tabelas particionadas são aquelas cujos dados são divididos horizontalmente em unidades que podem ser disseminadas por mais de um grupo de arquivos em um banco de dados. O particionamento facilita o gerenciamento de tabelas ou índices grandes permitindo o acesso ou o gerenciamento de subconjuntos de dados de forma rápida e eficaz, enquanto mantém a integridade geral da coleção. Por padrão, o SQL Server 2012 oferece suporte a até 15.000 partições. Para obter mais informações, consulte Tabelas e índices particionados.Tabelas temporárias
Tabelas temporárias são armazenadas em tempdb. Há dois tipos de tabelas temporárias: local e global. Elas diferem uma da outra pelo nome, visibilidade e disponibilidade. As tabelas temporárias locais têm um único sinal numérico (#) como primeiro caractere no nome; elas são visíveis somente na conexão atual para o usuário e são excluídas quando o usuário se desconecta da instância do SQL Server. As tabelas temporárias globais têm dois sinais numéricos (##) como primeiros caracteres no nome; elas são visíveis a qualquer usuário após serem criadas e são excluídas quando todos os usuários que consultam a tabela se desconectam da instância do SQL Server.Tabelas do sistema
O SQL Server armazena os dados que definem a configuração do servidor e todas as suas tabelas em um conjunto especial de tabelas conhecido como tabelas do sistema. Usuários não podem consultar nem atualizar diretamente as tabelas do sistema. A informações das tabelas do sistema são disponibilizadas por meio de exibições do sistema. Para obter mais informações, consulte exibições do sistema (Transact-SQL).Tabelas largas
As tabelas largas usam colunas esparsas para aumentar para 30.000 o total de colunas que uma tabela pode ter. Colunas esparsas são colunas comuns que têm um armazenamento otimizado para valores nulos. Elas reduzem os requisitos de espaço para valores nulos às custas de maior sobrecarga para recuperar valores não nulos. Uma tabela ampla definiu um conjunto de colunas, que é uma representação em XML sem-tipo que combina todas as colunas esparsas de uma tabela em uma saída estruturada. O número de índices e estatísticas também é aumentado para 1.000 e 30.000, respectivamente. O tamanho máximo de uma linha de tabela larga é de 8.019 bytes. Portanto, a maior parte dos dados contidos em qualquer linha específica deve ser NULL. O número máximo de colunas não esparsas mais as colunas computadas de uma tabela larga continua sendo 1.024.Tabelas largas têm as implicações de desempenho a seguir.
Tabelas amplas podem aumentar o custo de manutenção dos índices na tabela. É recomendável que o número de índices em uma tabela larga seja limitado aos índices exigidos pela lógica de negócios. Se o número de índices aumenta, aumentam também o tempo de compilação DML e os requisitos de memória. Os índices não clusterizados devem ser índices filtrados aplicados a subconjuntos de dados. Para obter mais informações, consulte Criar índices filtrados.
Os aplicativos podem adicionar e remover colunas de tabelas largas dinamicamente. Quando colunas são adicionadas ou removidas, os planos de consulta compilados também são invalidados. É recomendável criar um aplicativo de modo que ele corresponda à carga de trabalho projetada, para que as alterações de esquema sejam minimizadas.
Quando dados são adicionados e removem de uma tabela larga, o desempenho pode ser afetado. Os aplicativos devem ser criados para a carga de trabalho projetada, de forma que as alterações nos dados das tabelas sejam minimizadas.
Limite a execução de instruções DML em uma tabela larga que atualizam várias linhas de uma chave de clustering. Essas instruções podem exigir recursos de memória consideráveis para compilar e executar.
As operações de alternância de partição em tabelas largas podem ser lentas e exigir muita memória para serem processadas. Os requisitos de desempenho e memória são proporcionais ao total de colunas nas partições de origem e de destino.
Os cursores de atualização que atualizam colunas específicas de uma tabela larga devem listar as colunas explicitamente na cláusula FOR UPDATE. Isso ajudará a otimizar o desempenho quando você usar cursores.
Tarefas comuns de tabela
A tabela a seguir fornece links a tarefas comuns associadas à criação ou modificação de uma tabela.
Tarefas de tabela |
Tópico |
---|---|
Descreve como criar uma tabela. |
|
Descreve como excluir uma tabela. |
|
Descreve como criar uma nova tabela que contém algumas ou todas as colunas em uma tabela existente. |
|
Descreve como renomear uma tabela. |
|
Descreve como exibir as propriedades da tabela. |
|
Descreve como determinar se outros objetos, como uma exibição ou procedimento armazenado, dependem de uma tabela. |
A tabela a seguir fornece links a tarefas comuns associadas à criação ou modificação de colunas em uma tabela.
Tarefas de coluna |
Tópico |
---|---|
Descreve como adicionar colunas a uma tabela existente. |
Adicionar colunas a uma tabela (Mecanismo de Banco de Dados) |
Descreve como excluir colunas de uma tabela. |
|
Descreve como alterar o nome de uma coluna. |
|
Descreve como copiar colunas de uma tabela para outra, copiando apenas a definição da coluna ou a definição e os dados. |
Copiar colunas de uma tabela em outra (Mecanismo de Banco de Dados) |
Descreve como modificar uma definição de coluna, alterando o tipo de dados ou outra propriedade. |
|
Descreve como alterar a ordem na qual as colunas aparecem. |
|
Descreve como criar uma coluna computada em uma tabela. |
|
Descreve como especificar um valor padrão para uma coluna. Este valor é usado quando outro valor não é fornecido. |