Администрирование
HyperSQL, IBM DB2, IBM DB2, Interbase, Firebird, Yaffil , MSSQL, MySQL, ORACLE, PostgreSQL, SYBASE, Другие, Курсы, ... |
Безопасность
HyperSQL, MSSQL, Oracle, Phpmyadmin, Инъекция SQL, Книги, Патчи, Программы, Скрипты, СУБД, ... |
Проектирование БД
Business intelligence, Data Warehouse, Designer 2000 (Oracle), ErWin, ETL, OLAP, Sybase PowerDesigner , Другие CASE средства, Статьи, Теория БД, ... |
Производительность
DB2, HyperSQL, IBM DB2, Interbase, Firebird, Yaffil, MSSQL, MySQL, ORACLE, PostgreSQL, SQL, SYBASE, Другие, ... |
Установка
HyperSQL, IBM DB2, Interbase, Firebird, Yaffil , MSSQL, MySQL, ORACLE, PostgreSQL, SYBASE, Другие, ... |
|
|
Главная MDX
MDX - multi-dimensional expressions for OLAP
|
In this article we will show how to take typical, everyday MDX and optimize it by simply following advices of MDX Studio Analyzer. As a starting point, I will take “Product Volatility” example as published by Thomas Ivarson in his blog. It is a perfect example, because Thomas took a real business problem, and implemented it using very clean and straightforward MDX, just like I expect many MDX practitioners do. This MDX can be optimized, but some of these optimizations might not be obvious. Running MDX Studio Analyzer and following its advices takes the guesswork out of equation. Here is the MDX that computes total number of products, number of products with sales increased from last month and number of products with sales decreased from last month: |
|
Подробнее...
|
|
|
MDX was introduced by Microsoft with Microsoft SQL Server OLAP Services in around 1998, as the language component of the OLE DB for OLAP API. More recently, MDX has appeared as part of the XML for Analysis API. Microsoft proposed MDX as a standard, and its adoption among application writers and other OLAP providers is steadily increasing. What is the syntax of MDX? A basic MDX query looks like this: SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} ON COLUMNS, {[Product].members} ON ROWS FROM [Sales] WHERE [Time].[1997].[Q2] |
|
Подробнее...
|
|
|
Назначение языка MDX (Multidimensional Expressions) — предоставить в распоряжение разработчиков средство для более простого и эффективного доступа к многомерным структурам данных. В Microsoft SQL Server 2000 Analysis Services язык MDX используется для формирования запросов и описания алгоритмов получения вычисляемых значений. Следует сказать, что язык MDX никак не связан с Microsoft SQL Server 2000 Analysis Services, а является частью спецификации OLE DB for OLAP и, таким образом, поддерживается на уровне провайдера доступа к данным (OLE DB-провайдера), а не самого OLAP-хранилища. Этот язык можно сравнить с языком SQL. Но если SQL используется для извлечения реляционных данных, то MDX служит для извлечения многомерных данных. Естественно, что, как и в случае с языком SQL, возможны некоторые отклонения от стандарта. В этой статье мы рассмотрим язык MDX применительно к Microsoft SQL Server 2000 Analysis Services.
|
|
Подробнее...
|
|
|
Сколько элементов набора данных имеют отличающиеся значения? Это кажется простым вопросом. Ясно, что эта проблема давно известна в Excel и для нее есть классическое решение. В Интернете есть много сайтов (например здесь и здесь), которые дают следующее решение: =SUM(1/COUNTIF(A1:A6,A1:A6))) (обратите внимание, что эту формулу необходимо вводить с помощью Ctrl-Shift-Enter, для указания того, что это матричная формула, в противном случае результат будет неправильным – это одна из хитростей в Excel). Когда кто-то показал мне это решение, я посмотрел на него и не понял, как это работает. Только переписав это в MDX я понял в чем дело. Давайте возьмем следующий пример на основе Adventure Works – мы хотим сосчитать, со скольки различных букв начинаются названия продуктов (просто для того, чтобы подобрать что-то, для чего в измерении Продукт нет специального атрибута, потому что в противном случае это было бы слишком просто). MDX, создающий тот же алгоритм, что и вышеуказанная формула в Excel в данных условиях будет выглядеть следующим образом:
|
|
Подробнее...
|
|
|
Как уже знают читатели моего блога, режим массового вычисления (в Katmai он называется режим блочных вычислений (block computation mode)) даёт намного большую производительность MDX чем, поячеечный (cell-by-cell). Следовательно, наиболее важной техникой оптимизации MDX в Analysis Services является написание MDX, который задействует механизм блочного режима вычислений. Легко сказать, но не всегда легко сделать. Вместе с релизом Katmai CTP5, Microsoft опубликовал статью BOL, описывающую в общих чертах условия, при которых блочные вычисления возможны и при которых нет. Крис Веб (Chris Webb) прицепился к этой статье и упомянул в своём блоге, что “список функций над множествами немного ограничен (где же Filter?)“. В ответ на это я сказал, что не думаю что Filter – это распространённая функция в MDX вычислениях, но Грег Галовей (Greg Galloway) тут же привёл хороший пример с Count(Filter(…)). И это действительно распространённое вычисление – довольно таки часто необходимо узнать сколько элементов множества удовлетворяют определённому условию. (Пример Грега был найти сколько врачей приняли 10 и более пациентов за определённый период времени)
|
|
Подробнее...
|
|
|
|
Последние добавленные статьи |
|
|
|
|