資料倉儲的索引是個棘手的問題。如果索引太多,資料插入很快但是查詢響應就會很慢。如果太多索引,資料匯入就很慢並且資料儲存空間更大,但是查詢響應更快。資料庫中索引的作用就是加快查詢速度,不論是傳統資料庫還是資料倉儲。尤其是對於大資料量的表以及設計表連線的複雜查詢。之前接觸資料倉儲比較少,這裡只是介紹一點小經驗。
當然,在建立資料倉儲索引的時候需要考慮一些引數比如資料倉儲型別、維度表和事實表大小、是否分割槽、是否ad hoc等等。這些引數決定了你的索引結構。本篇主要介紹如何對資料倉儲中的關係表建立索引,注意是在關聯式資料庫中的關係表,而不是ssas中的資料表。
維度索引
如果打算在維度表的主鍵上建立索引,而該鍵是乙個**鍵,不是乙個自然或者業務鍵(例如使用者名稱或者id)。注意不要在維度表的**鍵或者變現漸變的列上建立聚集索引。
維度表包含乙個自然或者業務鍵(例如交易編碼或者id),我們稱之為業務鍵是來自於業務系統的。儘管業務鍵可能不是唯一的,但是對於緩慢漸變的維度表而言,在標識列上建立索引是比較好的(如使用者id等),如下圖:
使用者和產品的維度表中聚集索引建立在業務鍵上,通過這樣的索引,能強化查詢速度尤其是where語句中使用了這些鍵的。通常where 表示式中經常會使用這個鍵值來查詢維度資料。
通過業務鍵建立聚集索引可以避免鎖公升級(例如,行鎖到表鎖,意圖排它到排它),因為在etl過程中如果**鍵上有非聚集索引並且所有的行都被新增到檔案末尾就有可能發生鎖公升級,如果排它鎖從行鎖公升級到表鎖,那麼就會引起其他讀取或者etl或者通用操作的阻塞甚至死鎖,最終程式timeout。
資料倉儲中如何使用索引
原文 資料倉儲中如何使用索引 資料倉儲的索引是個棘手的問題。如果索引太多,資料插入很快但是查詢響應就會很慢。如果太多索引,資料匯入就很慢並且資料儲存空間更大,但是查詢響應更快。資料庫中索引的作用就是加快查詢速度,不論是傳統資料庫還是資料倉儲。尤其是對於大資料量的表以及設計表連線的複雜查詢。之前接觸資...
如何建設資料倉儲?
資料倉儲作為企業提供決策支援而構建的整合化資料環境,本身並不產生或者消費資料,基本架構包含的是資料流入流出的過程,首先放上一張資料倉儲的架構圖。資料倉儲作為中間整合化資料管理的乙個平台,底層有多種資料 流入資料倉儲之後對上層應用開放。1 分析業務需求,確定資料倉儲主題 資料模型的建立依賴資料倉儲主題...
如何建設資料倉儲?
資料倉儲的概念由來已久,相信大家早已不再陌生,其主要目的是為管理決策提供資料支撐和依據。於是數倉工具顯得尤為重要。資料倉儲,顧名思義,就是儲存資料的倉庫。現實中的倉庫會有不同的分割槽和歸類,分割槽下有多個貨架,貨架上堆放著各種各樣的商品。對於資料倉儲來說,分割槽歸類就類似於資料倉儲的基礎架構,資料倉...