熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

選擇在SQL Server工具包中添加MDX

2013-11-15 14:39:55  來源: SQL Server 

  即使你無需知道所有成千上萬的語言和工具來處理各種程序但是你應該知道當需要它們的時候如何選擇它們現在讓我們看看微軟件SQL Server分析服務支持的多維表達語言(MDX)雖然我不可能在一篇簡短的文章介紹所有的語言但我可以為你提供一個大致的輪廓以便讓你在需要的時候如何去選擇
  
  OLTP vs OLAP
  理解數據庫兩個類之間的定義是非常重要的諸如SQL Server的關系數據庫有時候也被稱為在線處理過程(OLTP)數據庫這樣的數據庫已經被優化而可以高效率地存儲和獲取簡單的各種信息例如你可以知道公司倉庫的Colony Bagels的銷售情況或者的七月份的銷售情況為了獲取這樣的信息你可以編寫如下的SQL查詢語句
  
  SELECT SUM(Sales[Unit Sales])
  FROM (Sales INNER JOIN Stores
  ON SalesStoreID = StoresStoreID)
  INNER JOIN Products
  ON SalesProductID = ProductsProductID
  WHERE StoresStoreCity = Corvallis
  AND ProductsProductName = Colony Bagels
  AND SalesSaleDate BETWEEN AND
  
  對於獲取特定信息這樣的查詢是相當出色的但是OLTP數據庫和SQL查詢發生異常通常是在數據量很大的時候你如何知道以不同狀態存儲的產品之間的區別呢?當然你可以編寫一個SQL查詢來獲取這樣的信息但因為它要涉及到所有的源數據所以這樣的查詢會變得相當的緩慢連接與聯合也會變得很狹窄
  
  使用在線處理過程(OLAP)會避免這樣的窘境OLAP數據庫可以從OLTP數據庫(或其他數據庫)中得到它們的源數據但它們以多維形式存儲一個OLAP數據庫可以以不同狀態和不同產品而預先計算所有的數據
  
  簡化信息的不同類型被稱為維數(dimensions)通過多維簡化大量數據的數據結構被稱為一個立體(cube)簡化信息被稱為量度(measure)任何一個立體都有一個或多個維數和量度
  
  建立一個立體需要花時間和計算馬力(horsepower)通常這樣過程可以以固定的時間間隔進行這一方法的好處是一個立體建立之後 浏覽時無需要涉及到原始數據
  
  圖A顯示了關於Microsoft SQL Server 分析服務的Sales立體總貌
  
  
圖 A

  
 

  在一個立體中浏覽數據
  
  使用MDX
  MDX在語法上與SQL很相似但它卻具備處理一個OLAP立體中多維數據的更好功能對於絕大多數的通用任務你都可以使用MDX來獲取一個立體中的信息畢竟OLAP數據庫的主要作用就是更容易地得到簡化信息具體實現這一功能即MDX SELECT語句這與SQL SELECT語句有很大的區別
  
  一個MDX SELECT語句可以表達如下
  
  SELECT [ …]
  FROM
  WHERE
  
  axis語句指明了要返回的簡化信息通常它們都是一些維數Cube語句指定包含數據的OLAP立體Slicer語句指定要返回的相關數據通常是量度以下的MDX查詢將獲得需要的信息
  
  SELECT
  [Store][Store Country][USA]Children ON COLUMNS
  [Product][All Products][Food]Children ON ROWS
  FROM [Sales]
  WHERE ([Measures][Unit Sales])
  
  在這種情況下有兩種axis規則其中一個為輸出的縱數另一個為輸出的行數每一種規則都指定了維數的一部分圖B顯示了運行MDX范例程序的結果
  
  
圖 B

  

  運行一個MDX查詢
  
  MDX的深度
  還有更多的MDX我無法在一個簡單的查詢為你提供所有內容當然以下給出了可以使用MDX來處理高級任務的列表
  
  可以返回多達維數的結果(雖然你無法找到顯示這些維數的工具)
  查找最大或最小數值
  靈活的排列結果
  結合現有的量度計算新的成員
  返回單個量度的屬性
  格式結果
  對比不同的時間間隔
  在外部類庫中定義常用功能
  MDX的目標非常明確那就是聯合分析服務來提供獲取大批數據的有效機制任何時候每一步工作都圍繞大規模數據庫而開展你應該把MDX當成解決問題的一種工具
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22138.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.