Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Another partitioning question
John - At last a question I can answer! Anyway I think so.
You can partition on a concatenated key. I just did this on our data
warehouse and brought query times from over 2 minutes to under 10 seconds.
Here is what my partition looks like.
create table sumacctfact2
nologging
pctfree 5
partition by range ( periodgrain, periodenddate )
(
partition sum_fy_01 values less than ('FY', to_date('01011999','mmddyyyy'))
tablespace data_fy_01
storage ( maxextents unlimited ),
partition sum_fy_02 values less than ('FY', to_date('01012000','mmddyyyy'))
tablespace data_fy_02
storage ( maxextents unlimited ),
partition sum_fy_03 values less than ('FY', to_date('01012001','mmddyyyy'))
tablespace data_fy_03
storage ( maxextents unlimited ),
partition sum_fy_04 values less than ('FY', to_date('02012001','mmddyyyy'))
tablespace data_fy_04
storage ( maxextents unlimited ),
Dennis Williams
DBA
Lifetouch, Inc.
dwilliams_at_lifetouch.com
-----Original Message-----
Sent: Friday, March 15, 2002 10:38 AM
To: Multiple recipients of list ORACLE-L
I think what my boss is asking me to do is not possible, but since I don't
have much experience with partitioning I thought I'd ask here (I did read
some of manuals but didn't find an answer that suited my conditions). My
boss wants a table partitioned by 2 columns - seq_no and type. If the type =
'X' then it's just a range partition, but then he wants another partition
that contains all data that type!='X' but is inclusive of the entire range.
Is this possible?
Something like (I know this syntax isn't correct )
create table test_part(
id number(11) unique,
owner_id number(11) not null,
type varchar2(30) not null,
name varchar2(40))
partition by range(owner_id,type)
(partition p1 values less than (20000000) and type ='X' tablespace test,
partition p2 values less than (50000000) and owner_table ='X' tablespace
test,
partition p3 values less than (100000000) and owner_table ='X' tablespace
test,
partition p4 values less than (500000000) and owner_table ='X' tablespace
test,
partition p5 values less than (1000000000) and owner_table ='X' tablespace
test)
partition p6 values less that (1000000000) and owner_table !='X' tablespace
test;
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Shaw John-P55297 INET: P55297_at_motorola.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-LReceived on Fri Mar 15 2002 - 11:28:29 CST
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: DENNIS WILLIAMS INET: DWILLIAMS_at_LIFETOUCH.COM Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).