赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

带你深入了解数据仓库优化中的星型转换

发布时间:2008.07.25 08:50     来源:赛迪网    作者:Bert

【赛迪网-IT技术报道】在数据仓库中经常查询的SQL总带有下列特征:

◆几个表进行关联

◆只有一个数据量巨大的表, 称为事实表

◆其他的都是编码表, 称为维表

◆维表和事实表之间有主外键关系

假设有D1(key1),D2(key2),D3(key3),D4(key)四个小的维表和一个事实表F(key1,key2,key3,key4), 那么经常进行的查询将是:

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

而为了提高查询速度, 根据数据特征, key1,key2,key3,key4这四个字段会比较适合每个字段上建一个位图索引(Bitmap Index), 但是上面的查询语句并不能用到位图索引, 除非是进行了星型转换, 这个转换需要将SQL转换成下面的格式:

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

有条件的可以试试, 使用星型转换有三个条件:

◆事实表的每个代码列上有位图索引

◆参数STAR_TRANSFORMATION_ENABLED的值要设为TRUE

◆必须使用CBO, 所以最好对表进行适当的分析

(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 深入探讨数据仓库和数据集市的异同之处 (07-23) · 个人经验总结:数据仓库的数据存储和实现 (07-11)
· 深入探讨数据仓库缓慢变化维的解决方案 (06-30) · 带你深入了解用于数据仓库的IBM DB2产品 (06-27)
· 讲解OLTP与数据仓库两者之间的不同之处 (06-26) · Caché与Oracle在数据仓库应用中的比较 (06-25)
· 教你在SQL Server 2000数据仓库中使用分区 (06-25) · 数据仓库基本报表制作过程中的SQL写法 (06-24)
· 简明扼要的讲解数据仓库所拥有的四个特点 (06-13) · 根据新技术特点浅谈数据仓库和数据挖掘架构 (06-12)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 信息化市场百家争鸣 SaaS深陷争议“泥潭”
· 提高管理水平 "两栖"CIO应具备的六大能力
· 国产ITIL运维先行者 四大厂商角力BI市场
· 金融行业GSN专题解决方案 企业网解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统