Question

Comment partitionner un Indexed Voir dans MS-SQL? J'ai une vue d'index créé qui stocke plage de valeurs. La définition de la vue est la suivante

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)

Maintenant, je veux diviser ce tableau en utilisant la colonne de date. Comment puis-je faire?

Était-ce utile?

La solution

Vous semblez être à la recherche d'un indice « aligné partition »; le partitionnement est pris en charge dans SQL Server 2008 Enterprise Edition (vous ne l'avez pas mentionné votre version ou édition). Les index partitionnés sont décrits dans la documentation en ligne, mais il n'y a pas de discussion sur le partitionnement des index de vue que je peux trouver, bien qu'il soit possible et il est décrit dans un livre blanc ici (voir requête 11 à la fin du document):

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

Autres conseils

J'ai peu d'expérience avec le partitionnement, mais je pense que vous êtes confus choses. (Gurus, s'il vous plaît me corriger si je me trompe).

Pour autant que je sais qu'il ya trois types de partitionnement SQL Server:

table partitionnée peut être partitionné sur une colonne, comme la date.

vue partitionnée est une vue spécifiant un UNION entre les requêtes similaires de différentes tables.

vue indexée partioned alignés est une vue indexée qui est réparti le long de la même colonne (s) en tant que la table partitionnée à laquelle elle est liée.

Je ne pense pas qu'il est possible de partitionner une vue indexée sans partage de la table sous-jacente. Par conséquent, je vous suggère de partitionner votre day_dim sur la colonne date_time, puis créer une vue indexée alignées sur les partitions pour correspondre cette colonne. Voir ce lien et faites défiler vers le bas pour Interroger 11 pour un exemple comment faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top