Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Tabela particionada e paralelismo do SQL Server 2008


O particionamento nunca uma opção para melhorar o desempenho. O melhor que você pode esperar é ter um desempenho no mesmo nível com a tabela não particionada. Normalmente você obtém uma regressão que aumenta com o número de partições. Para desempenho, você precisa de índices, não de partições. As partições são para operações de gerenciamento de dados:ETL, arquivamento etc. Alguns afirmam que a eliminação de partição é um ganho de desempenho possível, mas para qualquer coisa que a eliminação de partição possa dar, colocar a chave de índice principal na mesma coluna que a coluna de particionamento fornecerá resultados muito melhores.

Essa consulta precisa de um índice em State . Caso contrário, é uma varredura de tabela e varrerá a tabela inteira. Uma varredura de tabela em uma tabela particionada é sempre mais lento do que uma varredura na tabela não particionada do mesmo tamanho. O próprio índice pode ser alinhado no mesmo esquema de partição, mas a chave principal deve ser State .

O paralelismo não tem nada a ver com particionamento, apesar do equívoco comum do contrário. As varreduras de intervalo particionadas e não particionadas podem usar um operador paralelo, será a decisão do Otimizador de Consulta.

Não

Um índice ajudará. Se o índice precisar ser alinhado, ele deverá ser particionado. Um índice não particionado será mais rápido que um particionado, mas o requisito de alinhamento de índice para operações de entrada/saída não pode ser contornado.

Se você estiver analisando o particionamento, deve ser porque você precisa fazer operações de troca rápida de entrada e saída para excluir dados antigos após o período de política de retenção ou algo semelhante. Para desempenho, você precisa examinar os índices, não o particionamento.