particionam duas tabelas

1

É possível dividir os dados de uma tabela em duas ou mais tabelas e fazer com que o SQL faça uma partição? O objetivo é ter dados históricos em mytable_old enquanto os dados atuais estão em mytable. Quando as consultas são executadas, o sql pode obter dados de ambos / dependendo dos predicados da consulta.

Por exemplo, todos os dados anteriores a 2011 entram em mytable_old enquanto 2011 e mais recentes permanecem em mytable.

select * from mytable where date between 12/1/2010 and 12/1/2011

irá puxar das duas tabelas. Isso é possível?

Prefiro não usar uma visualização, se possível. Eu quero evitar ter índices nos dados antigos.

    
por Titan2782 25.04.2011 / 21:14

3 respostas

3

Para fazer isso, você precisa configurar uma visualização.

Seria melhor usar a edição do SQL Server Enterprise e simplesmente particionar a tabela usando o particionamento de tabelas. Você poderia então ter duas ou mais partições e apenas a partição ou partições necessárias seriam consultadas.

    
por 25.04.2011 / 21:22
3

Você pode tentar um índice filtrado.

CREATE INDEX IX_SomeIndex ON SomeTable (
    SomeColumn,
    AnotherColumn
)
WHERE DateColumn >= '1/1/2011'

Em seguida, só indexará itens mais recentes que a data especificada.

    
por 25.04.2011 / 22:03
2

Uma maneira de conseguir isso seria com um VIEW . A visão, neste caso, estaria em ambas as tabelas, de modo que você pudesse embaralhar os registros entre eles da maneira que quisesse.

    
por 25.04.2011 / 21:20