ITPub博客

首页 > 应用开发 > IT综合 > new article

new article

原创 IT综合 作者:littledan 时间:2007-02-11 19:01:34 0 删除 编辑

http://asktom.oracle.com/pls/asktom/f?p=100:11:974743640809258::::P11_QUESTION_ID:442029737684

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:953229842074

Tom,
    I am presently working on a Data Warehouse project which is using Informatica for 
mapping and loading data into an Oracle database (8.1.7 on HP UX 11.0). The data is in 
flat files and some of the hundreds of tables in the Warehouse are HUGE (300-500 million 
records). The designers have not partioned the base tables into which this data is being 
loaded. Their contention is that since we are using SAN ( storage Area Network) that has 
multiple disks we don't need to partion the tables. I am not sure if this is right. Also 
they have primary keys on the tables. My question is - what is the best way to speed up 
the loading process? What init.ora parameters need to be set? If they agree to partition 
then whether it is better to partion by range or by hash? Is it possible to use parallel 
loading of a table if yes then How? 
    When I question I am told that since they are using Informatica we will have this 
kind of performance. I don't understand why one would use a 1/2 million package and have 
such horrible performance. Please let me know in yr opinion what is the most optimum 
method of loading such huge amount of data.

Thanks in advance. 

and we said...

The designers of this system are not database guys are they.  Well, that is a rhetorical 
question -- they aren't.

Partitioning provides many things -- partition elimination can make your queries go 
faster in a data warehouse.  many times faster.

Partitioning allows for easy aging of data, rolling windows.  Something virtually every 
data warehouse does.

Partitioning allows for higher availability when that soft corruption kicks in and it 
will.  better to have a single, small partition offline to be rebuilt then the entire 
table.

Partitioning eases adminstrative burdens.  It is a fact that performing operations on 
small objects is inherently easier, faster and less resource intensive then performing 
the same operations on a large object.

Partitioning makes mass updates -- something you might need to do in a data warehouse, 
might not -- faster.  You can use parallel DML, but only if you partition.

And the list goes on.

We've had this "multiple disk" thing from day 1 in databases.  There has ALWAYS been more 
then one disk.  Enter raid striping -- a SANS didn't do anything new here.  Your 
designers haven't worked on large data warehouses -- or if they have, they've never used 
partitioning and don't understand it.



Loading a huge amount of data -- i would be using sqlldr in parallel direct path mode.  I 
would be using parallel index builds with no logging.  It would not take very long at 
all.

 
[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/412/viewspace-899177/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-13

  • 博文量
    31
  • 访问量
    137718