利用SSAS創建多維數據庫時的問題總結及優化方案
我們知道,SSAS是SQL Server 2005數據庫中的用于BI的組件,通過SSAS可以創建多維數據庫,并在之上進行數據挖掘操作。本文我們就對SSAS工作時遇到的一些問題進行了總結,接下來我們就來一起了解一下這部分內容。
事實表dim_BasicProbe->維度dim_System->維度dim_SystemType 呈雪花型關聯,但事實表dim_BasicProbe仍然與維度dim_SystemType直接關聯,因為如果不直接關聯要查某個系統類型的BasicProbe數據時,必須先查詢出System,從而查詢出BasicProbe,性能有所損耗。所以雪花型關聯慎用。
數據倉庫(sql server)中表之間沒有外鍵關聯,到設計ssas時才在數據源視圖中設計外鍵關聯,即在程序邏輯中控制。不管是不是BI,只要是大數據量的應用程序,都不會在存儲方(如sqlserver)建立外鍵關聯,因為如果在存儲方設置外鍵,當數據量達到上百上千萬時,性能相當低。
問題描述:為什么在一個事實表中,已經有os字段(非外鍵關聯)用于描述操作系統,又要有osId字段(外鍵關聯os維 度)?
答案:一般如果單單在SQLDB數據庫里面查數據的,是盡量不要用關聯查詢的,關聯查詢太慢,如果在cube里面那倒沒什么問。即是說os字段用于直接在SQLDB數據庫里面查詢數據庫,為了提高性能直接放在事實表中,免去關聯查詢。而osId用于在cube中進行關聯,體現多維。所以既要有os字段也要有osid字段。在接觸的項目中,這種做法相當普遍。
優化小點:
數據存儲時可以考慮適當的數據冗余,以減少數據庫表之間的鏈接操作,提高查詢效率。
不要在一句sql里再三地使用相同的函數,浪費資源,將函數結果放在變量里以便重復調用。
將量少的數據考慮放在程序中的常量或者xml文件中。
select的時候只返回需要的字段,而不是select *。
關于利用SSAS創建多維數據庫、設計數據倉庫以及性能優化方面的總結就介紹到這里了,希望本次的介紹能夠對您有所收獲!
【編輯推薦】
- SQL Server 2005數據庫nolock使用詳解
- SQL Server 2005無法連接到本地服務器的解決
- SQL Server如何查詢當前服務器有多少連接請求
- SQL Server通過整理索引碎片和重建索引提高速度
- SQL Server 2008安裝無法通過性能計數器一致性的解決