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






