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

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

1 голос
/ 17 ноября 2010

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

2 голосов
/ 17 ноября 2010

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

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

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

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

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

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

1 голос
/ 17 ноября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...