Разделение взглядов в sql

Как разделить индексированное представление в MS-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)

Теперь я хочу разделить эту таблицу, используя столбец даты. Как я могу это сделать?

2 ответа

Решение

Вы, похоже, ищете индекс с выравниванием по разделам; поддержка разделов поддерживается в SQL 2008 Enterprise Edition (вы не упомянули свою версию или редакцию). Секционированные индексы обсуждаются в Books Online, но я не могу найти индексы секционируемых представлений, которые я могу найти, хотя это возможно, и это описано здесь в официальном документе (см. Запрос 11 в конце статьи):

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

У меня мало опыта с разбиением, но я думаю, что вы путаете вещи. (Гуру, пожалуйста, поправьте меня, если я ошибаюсь).

Насколько я знаю, в SQL Server существует три типа разбиения:

Секционированная таблица может быть разбита на столбец, такой как дата.

Разделенное представление - это представление, определяющее UNION между похожими запросами из разных таблиц.

Индексированное представление с выравниванием по разделам - это индексированное представление, которое секционируется по тому же столбцу (столбцам), что и секционированная таблица, с которой оно связано.

Я не думаю, что возможно разделить индексированное представление без разделения основной таблицы. Поэтому я бы предложил разделить ваш day_dim на date_time столбца, а затем создайте выравниваемое по разделу индексированное представление, соответствующее этому столбцу. Посмотрите эту ссылку и прокрутите вниз до Query 11 для примера, как это сделать.

Другие вопросы по тегам