Pergunta

Como faço para particionar uma visualização indexada no MS-SQL? Eu tenho uma visualização de índice criada que armazena a faixa de valores. A definição de visualização é a seguinte

CREATE VIEW dbo.target_individual_product WITH SCHEMABINDIN       
    AS SELECT day_dim.date_time AS Date,  
    SUM(ISNULL(order_dim.quantity,0)) AS Target_Acheived,  
    branch_dim.branch_name AS Branch_Name ,   
    product_dim.product_name AS Product_Name  
FROM dbo.day_dim INNER JOIN  
     dbo.order_fact ON day_dim.day_id = order_fact.day_id  
INNER JOIN dbo.product_dim ON order_fact.product_id = product_dim.product_id   
INNER JOIN dbo.branch_dim ON order_fact.branch_id = branch_dim.branch_id   
INNER JOIN dbo.order_dim ON order_fact.order_id = order_dim.order_id  
GROUP BY order_dim.quantity, day_dim.date_time,branch_dim.branch_name, product_dim.product_name  
GO
CREATE UNIQUE CLUSTERED INDEX target_individual_product_I on target_individual_product (Date)

Agora eu quero particionar esta tabela usando a coluna Data. Como faço isso ?

Foi útil?

Solução

Você parece estar procurando um índice "alinhado à partição"; O particionamento é suportado na SQL 2008 Enterprise Edition (você não mencionou sua versão ou edição). Os índices particionados são discutidos nos livros on -line, mas não há discussão sobre os índices de visualização de particionamento que eu posso encontrar, embora seja possível e seja descrito em um white paper aqui (consulte a Query 11 no final do artigo):

http://msdn.microsoft.com/en-us/library/dd171921.aspx

Outras dicas

Tenho pouca experiência com a partição, mas acho que você está confundindo as coisas. (Gurus, por favor me corrija se estiver errado).

Tanto quanto eu sei, existem Três tipos de partição no SQL Server:

UMA Tabela particionada pode ser particionado em uma coluna como a data.

UMA visão particionada é uma visão especificando um UNION entre consultas semelhantes de diferentes tabelas.

UMA Vista indexada alinhada em parto é uma visão indexada que é particionada ao longo da mesma coluna (s) da tabela particionada à qual está vinculada.

Não acho que seja possível particionar uma visão indexada sem particionar a tabela subjacente. Portanto, eu sugeriria que você participe seu day_dim no date_time coluna e, em seguida, crie uma visualização indexada alinhada à partição para corresponder a esta coluna. Ver Este link e role para baixo até a consulta 11 Para um exemplo de como fazer isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top