浏览 1762 次
锁定老帖子 主题:ETL性能优化
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-20
orders : orderid (pk) , orderdate (date) , customernumber (number) orderdetails : orderid (pk) , orderdetailsid (pk) , price , quantity , product_id 现在数据库要更新orders 表的数据,级联的就会更新orderdetails 表的数据, 然后我们刷新数据仓库乙的事实表orderdetails , 一开始的执行思路可能是这样的: step1: 从orders 表读某个条件的数据,我们比方说orderdate 大于2008年4月,然后我们只要orderid ,sql 象下面这个样子 select orderid from orders where orderdate < 2008年四月. step2: 把orderid 当成参数传给orderdetails ,然后读取所有符合orders表里面orderid 的orderdetails 记录: select * from orderdetails where orderid = ? ( 这个?的参数是由前面一个步骤来的)(这个读取的过程是大量循环的读取) step3: 然后把这些orderdetails 记录怎么样到数据仓库乙…….. ************* step1: select orderdetails.orderid , orderdetailsid , price , quantity , product_id from orders , orderdetails where orders.orderid = orderdetails.orderid and orders.orderdate < 2008年四月 step2: 更新数据仓库乙中的对应数据. 两个ETL设计的结果相同,性能天壤之别 查看完整版: ETL性能优化
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |