2010-11-17 78 views
1

如何在MS-SQL中對索引視圖進行分區?我有一個索引視圖創建存儲值的範圍。視圖的定義如下sql中的分區視圖

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) 

現在我想分割這個表使用日期列。我怎麼做 ?

+0

你能否以更可讀的方式顯示你的SQL並且沒有拼寫錯誤?如果你可以在你的代碼中做到這一點,你當然可以在Stack Overflow上做到這一點;) – thomaspaulb 2010-11-17 10:40:58

+0

現在更好嗎? – Deepak 2010-11-17 10:52:55

+0

下面是一篇很好的文章,介紹了對索引視圖進行分區:http://www.sqlservercentral.com/articles/partition/64740/ – Andomar 2010-11-17 10:57:33

回答

1

您似乎在尋找「分區對齊」索引; SQL 2008企業版支持分區(您沒有提及您的版本或版本)。在聯機叢書中對分區索引進行了討論,但沒有討論我可以找到的分區視圖索引,儘管這是可能的並且在此處的白皮書中進行了描述(請參見本文末尾的查詢11):

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

+0

哈,你找到了同樣的例子:) – thomaspaulb 2010-11-17 10:59:52

+0

謝謝!我正在使用2008版本。如果沒有工具可以在視圖上創建,那麼請告訴我如何對文本值進行分類。例如「text1,text2,text2」,所以帶有text1的內容應該到partition1和text2到partition2 ... – Deepak 2010-11-17 11:12:02

+0

請遵循一個很好的教程。例如:http://www.simple-talk.com/sql/database-administration/partitioned-tables-in-sql-server-2005/ – thomaspaulb 2010-11-17 12:03:01

2

我幾乎沒有劃分的經驗,但我認爲你是令人困惑的東西。 (大師,請糾正我,如果我錯了)。

據我所知有three types of partitioning in SQL Server

一個分區表可以在一列進行分區,如日期。

A 分區視圖是在來自不同表的類似查詢之間指定UNION的視圖。

A 分區排列索引視圖是一個索引視圖,它沿與鏈接到的分區表相同的列進行分區。

我不認爲有可能分區索引視圖沒有分區的基礎表。因此,我建議您在date_time列上對day_dim進行分區,然後創建一個分區對齊的索引視圖以匹配此列。有關如何執行此操作的示例,請參閱this link and scroll down to Query 11

+0

謝謝你!如果你能幫我編制索引,那將是非常好的。在sql中有沒有等價的位圖索引? – Deepak 2010-11-17 11:08:51

+0

我不知道,對不起。但谷歌知道:http://social.msdn.microsoft.com/Forums/en-US/sqldatawarehousing/thread/3b7fc3a0-32e2-4c73-99c1-1357ebcc4753 – thomaspaulb 2010-11-17 12:04:00