Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A ordenação das colunas afeta o desempenho no Microsoft SQL Server 2012?


A ordem das colunas em uma tabela terá um impacto muito pequeno no desempenho, em comparação com o impacto no desempenho do design do banco de dados (entidades, atributos e relacionamentos), do design da transação e do design da consulta.

Para saber se a diferença não é desprezível, você realmente precisa configurar alguns testes e comparar os resultados.

Normalmente, coloco a chave primária como a primeira coluna, depois a(s) chave(s) estrangeira(s) e depois as chaves naturais e as colunas acessadas com frequência. Eu normalmente coloco as cordas mais longas no final da linha. Mas isso não é necessariamente uma otimização de desempenho, pois é uma preferência de estilo que uso por conveniência.

A ordem das colunas pode afetar o tamanho da linha no SQL Server, quando um grande número de colunas em uma linha é anulável e a maioria dessas colunas contém NULL. SQL Server (como Oracle) tem otimização onde nenhum espaço é reservado para colunas que contêm valores NULL NO FINAL da linha. Algum espaço é reservado para cada coluna na linha, até o último valor não NULL na linha.

A conclusão disso é que, se você tiver muitas colunas anuláveis, desejará que as colunas que são mais frequentemente não NULL ANTES das colunas que são mais frequentemente NULL.

NOTA:Lembre-se de que o SQL Server ordena as colunas dentro de uma tabela primeiro se a coluna for de comprimento fixo ou variável. Todas as colunas de comprimento fixo são armazenadas primeiro, seguidas por todas as colunas de comprimento variável. Dentro desses conjuntos de colunas (fixas e variáveis), as colunas são armazenadas na ordem em que são definidas.