Então, deixe-me começar dizendo que não tenho controle total sobre meu design de banco de dados; portanto, muitos dos aspectos do sistema atual não podem ser alterados para os propósitos desse cenário.
Os comentários sobre como devemos repensar os aspectos do design provavelmente estão corretos, mas são inúteis :)
Eu tenho uma tabela muito grande, com aproximadamente 150 campos de largura e cerca de 600m de linhas, que gera um grande número de processos. Isso está em uma situação de data warehouse, portanto, não temos QUALQUER atualização / inserção fora do processo de carregamento agendado, por isso é fortemente indexado.
Foi tomada uma decisão para tentar particionar esta tabela, e eu tenho algumas preocupações sobre a indexação de uma tabela particionada. Como não tenho experiência com particionamento, qualquer entrada ou link é apreciado. Não consegui localizar especificamente o que estou procurando no BOL ou no msdn.
Atualmente nós de cluster em um campo que vamos chamar IncidentKey
que é um varchar(50)
e não única - poderíamos ter entre 1-100 registros com o mesmo IK
(sem comentários, por favor). Frequentemente, obtemos novos dados em IncidentKey
registros antigos , portanto também não são seqüenciais.
Entendo que preciso incluir meu campo de partição,, IncidentDate
na minha chave de índice em cluster para que a partição funcione corretamente. Eu estou pensando que seria IncidentKey, IncidentDate
.
A questão é: como a mecânica de um índice clusterizado funcionará em uma chave de 2 partes em uma tabela particionada, se um registro em uma partição "nova" deve estar antes de um registro em uma partição "antiga" no índice em cluster?
Por exemplo, eu tenho 5 registros:
IncidentKey Date
ABC123 1/1/2010
ABC123 7/1/2010
ABC123 1/1/2011
XYZ999 1/1/2010
XYZ999 7/1/2010
Se eu receber um novo registro, ABC123, 2/1/2011
ele precisará estar no índice clusterizado ANTES XYZ999, 1/1/2010
. Como é que isso funciona?
Estou assumindo fragmentação e ponteiros, mas não consigo encontrar nenhuma informação sobre o armazenamento físico e a configuração de índices em cluster não particionados em tabelas particionadas com chaves de duas partes.