2013-03-18 4 views
1

Я пытаюсь понять, почему отчет SSRS 2008 R2 сохраняет время.MDX раз - плохой дизайн MDX или куба?

К сожалению, я не знаком с MDX (хотя я немного читал об этом).

Так что в основном я хотел бы знать, не является ли MDX хорошим (потому что он мог быть сгенерирован дизайнером и т. Д.) Или потому, что может возникнуть проблема с дизайном куба. Я бы склонялся к дизайну куба, потому что мне сказали, что в какой-то момент этот запрос прошел нормально, но может быть, потому что теперь есть больше данных - я не знаю.

SELECT NON EMPTY { [Measures].[Unpaid Sick Hours], [Measures].[Paid Sick Hours], 

[Measures].[All Timecard Hours] 
      , [Measures].[Paid Sick Incidents], [Measures].[% Sick Time] } 
ON COLUMNS, NON EMPTY { ([Position].[Position Number].[Position Number].ALLMEMBERS 
      * [Position].[Position Title].[Position Title].ALLMEMBERS 
      * [Union].[Union].[Union].ALLMEMBERS 
      * [Time].[Day Of Week].[Day Of Week].ALLMEMBERS 
      * [Employee].[Employee Type].[Employee Type].ALLMEMBERS 
      * [Employee].[Employee Number].[Employee Number].ALLMEMBERS 
      * [Employee].[Employee First Name].[Employee First Name].ALLMEMBERS 
      * [Employee].[Employee Last Name].[Employee Last Name].ALLMEMBERS) } 
      DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME 

ON ROWS FROM (SELECT (STRTOSET("[Time].[Fiscal Year-Quarter-Month].[F Quarter].&[20124]", CONSTRAINED)) 
ON COLUMNS FROM (SELECT (STRTOSET("[Cost Centre].[Cost Centre Hierarchy].&[1002]", CONSTRAINED)) 
ON COLUMNS FROM [Contoso HR])) 

Оцените справку.

спасибо, KS

+0

'*' означает 'CROSS JOIN'. Нам нужно больше, чем запрос, чтобы рассказать вам, что вы хотите знать, но наверняка, что многие кросс-соединения не могут быть хорошими! –

+0

Что еще вам нужно? – Perplexed

ответ

1

многомерных выражений выглядит довольно прямо вперед ... сколько данных мы говорим здесь? Насколько сложны меры? Все ли они базовые меры, кроме [% больных]?

Одна из первых вещей, которые я делаю, когда у меня есть запрос MDX, который не выполняется, - это запустить его в студии MDX и посмотреть, как он обрабатывается двигателем SSAS.

+0

Да,% Сильное время - это только мера – Perplexed

2

Несколько вещей, чтобы рассмотреть следующие вопросы:

  1. Как упоминалось ранее * означает CROSS JOIN и CROSS JOINS действительно есть потери производительности. Имея столько, сколько у вас есть, вы получите головные боли. Краткосрочным вариантом было бы попробовать NonEmptyCrossjoin.

  2. Вы выполняете кросс-соединение в [Позиция] и [Сотрудник] несколько раз. Можете ли вы скорее использовать CROSS JOIN [Employee] после использования [Employee Number] и использовать свойства членов, чтобы получить [Тип сотрудника], [Имя сотрудника], [Фамилия сотрудника]

  3. Являются ли кубы источником из база данных SQL Server? Если это так, учитывая, что вывод этого отчета кажется довольно плоским. Я бы отказался от MDX и просто использовал SQL для сбора данных.

Смежные вопросы