Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 Оптимизация запроса  [new]
ferzmikk
Member

Откуда:
Сообщений: 1575
Здравствуйте!

Есть работающий MDX-запрос.
+MDX-запрос
WITH
//Группа A
SET [Общее SKU1] AS
	{[SKU].[SKU].&[SKU1_1], [SKU].[SKU].&[SKU1_2], [SKU].[SKU].&[SKU1_3], [SKU].[SKU].&[SKU1_4]}
SET [Общее SKU2] AS
	{[SKU].[SKU].&[SKU2_1], [SKU].[SKU].&[SKU2_2], [SKU].[SKU].&[SKU2_3]}
//Группа B		
SET [Общее SKU3] AS 
	{[SKU].[SKU].&[SKU3_1], [SKU].[SKU].&[SKU3_2], [SKU].[SKU].&[SKU3_3]}
//Группа A
SET [Группа A] AS 
	{[Общее SKU1], [Общее SKU2]}
//Группа B
SET [Группа B] AS
	{[Общее SKU3]}
//Все участвующие SKU
SET [Участвующие SKU] AS
	{[Группа A],[Группа B]}

MEMBER [Общее SKU] AS (CASE
	WHEN RANK([SKU].[SKU].CurrentMember, [Общее SKU1]) >0 THEN 'Общее SKU1'
	WHEN RANK([SKU].[SKU].CurrentMember, [Общее SKU2]) >0 THEN 'Общее SKU2'
	WHEN RANK([SKU].[SKU].CurrentMember, [Общее SKU3]) >0 THEN 'Общее SKU3'
END)
MEMBER [Группа] AS (CASE
	WHEN RANK([SKU].[SKU].CurrentMember, [Группа A] )> 0 THEN 'A'
	WHEN RANK([SKU].[SKU].CurrentMember, [Группа B]) > 0 THEN 'B'		
END)
MEMBER [Количество баллов за каждое SKU] AS (CASE
	WHEN [Группа]='A' THEN 15
	WHEN [Группа]='B' THEN 10
END)

SELECT
	{[Общее SKU],
	[Группа],
	[Количество баллов за каждое SKU]}
ON 0,
	[Участвующие продукции]
ON 1
FROM
	PROFIT

Выдает такой результат:
SKUОбщее SKUГруппаКоличество баллов за каждое SKU
Общее SKU1SKU1_1A15
Общее SKU1SKU1_2A15
Общее SKU1SKU1_3A15
Общее SKU1SKU1_4A15
Общее SKU2SKU2_1A15
Общее SKU2SKU2_2A15
Общее SKU2SKU2_3A15
Общее SKU3SKU3_1B10
Общее SKU3SKU3_2B10
Общее SKU3SKU3_3B10

В запросе создал отдельные кортежи, а также строковые меры, чтобы отобразить Общее SKU и Группу.

Запрос будет со временем корректироваться, следовательно, надо будет корректировать где то только кортежи, а где то кортежи и строковые меры. Но чую, что запрос написал как то не оптимально. И это еще только часть запроса.

Как можно оптимизировать данный запрос, чтобы при корректировке не пришлось корректировать в разных местах?
14 мар 18, 16:06    [21256011]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить