国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

帶你深入了解數(shù)據(jù)倉庫優(yōu)化中的星型轉(zhuǎn)換

2024-07-21 02:44:16
字體:
供稿:網(wǎng)友

在數(shù)據(jù)倉庫中經(jīng)常查詢的SQL總帶有下列特征:

◆幾個表進(jìn)行關(guān)聯(lián)

◆只有一個數(shù)據(jù)量巨大的表, 稱為事實表

◆其他的都是編碼表, 稱為維表

◆維表和事實表之間有主外鍵關(guān)系

假設(shè)有D1(key1),D2(key2),D3(key3),D4(key)四個小的維表和一個事實表F(key1,key2,key3,key4), 那么經(jīng)常進(jìn)行的查詢將是:


SELECT

D1.xxx, D2.xxx, D3.xxx, D4.xxx,

SUM(F.xxx), SUM(F.xxx)

FROM F, D1, D2, D3, D4

WHERE F.KEY1=D1.KEY1 AND F.KEY2=D2.KEY2

AND F.KEY3=D3.KEY3 AND F.KEY4=D4.KEY4

AND D1.xxx=? AND D2.xxx=?

AND D3.xxx=? AND D4.xxx=?

GROUP BY D1.xxx, D2.xxx, D3.xxx, D4.xxx

而為了提高查詢速度, 根據(jù)數(shù)據(jù)特征, key1,key2,key3,key4這四個字段會比較適合每個字段上建一個位圖索引(Bitmap Index), 但是上面的查詢語句并不能用到位圖索引, 除非是進(jìn)行了星型轉(zhuǎn)換, 這個轉(zhuǎn)換需要將SQL轉(zhuǎn)換成下面的格式:


SELECT

D1.xxx, D2.xxx, D3.xxx, D4.xxx,

SUM(F.xxx), SUM(F.xxx)

FROM F, D1, D2, D3, D4

WHERE F.KEY1=D1.KEY1 AND F.KEY2=D2.KEY2

AND F.KEY3=D3.KEY3 AND F.KEY4=D4.KEY4

AND D1.xxx=? AND D2.xxx=?

AND D3.xxx=? AND D4.xxx=?

AND F.KEY1 IN (SELECT D1.KEY1 FROM D1 WHERE D1.xxx=?)

AND F.KEY2 IN (SELECT D2.KEY2 FROM D2 WHERE D2.xxx=?)

AND F.KEY3 IN (SELECT D3.KEY3 FROM D3 WHERE D3.xxx=?)

AND F.KEY4 IN (SELECT D4.KEY4 FROM D4 WHERE D4.xxx=?)

GROUP BY D1.xxx, D2.xxx, D3.xxx, D4.xxx

有條件的可以試試, 使用星型轉(zhuǎn)換有三個條件:


◆事實表的每個代碼列上有位圖索引

◆參數(shù)STAR_TRANSFORMATION_ENABLED的值要設(shè)為TRUE

◆必須使用CBO, 所以最好對表進(jìn)行適當(dāng)?shù)姆治?/P>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 方山县| 齐齐哈尔市| 晋州市| 宜春市| 石狮市| 紫云| 林州市| 洛浦县| 航空| 新和县| 凭祥市| 双牌县| 资讯 | 乐亭县| 怀宁县| 高邑县| 宁化县| 邢台市| 洛宁县| 阳城县| 宝丰县| 夹江县| 高淳县| 日照市| 鄂伦春自治旗| 油尖旺区| 榆中县| 滦平县| 海兴县| 醴陵市| 沙湾县| 甘肃省| 彰武县| 合作市| 天柱县| 页游| 石棉县| 霍林郭勒市| 通州市| 交城县| 陆良县|