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






