Partitioning a Wide Table on RAID5--Need Advice

We will soon have to add a new table to our database that is 2 Gig in size and growing, so we are considering partitioning it for speed. I've a lot of Oracle experience, but haven't used partitioning before.
NOTE:
-- The database is on RAID5 disks
-- The table is 70 fields wide so I'm only showing relevent fields
-- We are still at Oracle 9i, unfortunately
-- The data is re-loaded once per month; we never change it--SELECTS only
Create table TRANSL1 (
COMPANY_CD varchar2(5),
POL_NO varchar2(10),
COMMUNITY varchar2(6),
ADDRESSKEY varchar2(25),
STATE varchar2(2),
FLOOD_ZONE varchar2(9),
POST_FIRM varchar2(1) )
The primary key will be company_cd + pol_no.
I'm told the users usually pull up the data on one of the following:
-- company_cd + pol_no
-- state
-- flood_zone
-- addresskey
-- post_firm
-- company_cd by itself
-- the first 2 characters of community
-- they can also pull up on any other combination of fields they need
After doing tons of reading on it, here's what I was thinking of doing.
1. hash partition the table on company_cd
2. local partition index on company_cd
3. local partition index on pol_no
4. regular index on state
5. regular index on flood_zone
6. regular index addresskey
7. regular index on post_firm
8. function index on community
9. Create a normal primary key on company_cd + pol_no
Does this look OK? Should the regular indexes be global partitioned instead? Should we even be using partitioning which so many indexes?

It is true that partitioning your tables can help with 'speed'. That means different things to different folks. It can also impede things seriously if not properly administered. Partitioning is just another tool. If used incorrectly, the tool can cause the job to take longer.
Just a note... you mention using RAID5. Oracle partitioning has more to do with logically partitioning your tables (although different partitions may or may not reside in the same tablespaces which in turn may or may not reside in the same location(s)) for ease of administration and improved performance but the use of RAID5 here is secondary. I mention this because I've seen a few associate Oracle Partitioning with disk partitioning.
Anyways, look over the following doc:
http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14223/parpart.htm#g1020112
And a book that will throw much light on partitioning is Tom Kyte's book Expert Oracle Database Architecture.
Hope this helps.

Similar Messages

  • Partitions on external hard drive. Need advice, PLEASE!

    Can someone explain to me about partitions on EHD's. I have just installed Leopard, and at present I have 3 partitions on my LaCie 250Gb Firewire external drive. I need to create enough space to allow TimeMachine to do a backup (about 120Gb).
    I know that I have to use Disk Utility to do this, but can someone tell me if there is a minimum number of partitions to have on a volume like this? What would be your recommendation?
    Also, could someone tell me if it is possible to run Tiger on an external drive? Or would that have to be run from the Mac HD? I have some software and games etc that will only run on Tiger. A step by step guide would be much appreciated.

    Hi! You can have many partitions on an external drive. One for Leopard, Tiger, Panther, OS9 (if capable) data, pictures, music....you get the picture. I'm not sure what you are using the partitions for now but remember usually reformatting into another partition scheme erases everything. As an example you can have a partition for Time Machine, another for the Tiger OS, and one for a Leopard bootable clone for use in an emergency. I'd recommend that if you plan on changing your current scheme that you do so with disk utility in Leopard. Create your partitions in the disk utility and then clone to the partitions. When you choose two or three partitions then you can grab and drag the bars to change each one's size. Again remember that if you already have a Tiger partition that reformatting will erase the data.
    In Leopard open the disk utility and on the left side you'll see a disk drive such as 279.5 GB Maxtor and then listed under that and indented to the right will be the volumes or partitions with the names you have assigned to them. To partition click on the drive itself (not the volumes under it) and then on the right side of the pane will be listed first aid,erase, partition, raid, and restore. Then click on partition and the pane will show the current partition scheme such as only 1 volume (partition) or as many as you currently have. In Leopard you can resize the partitions but that gets a little complicated. If you click on current the tab pops up listing up to 16 partitions that can be created. When you select the number you want and then click apply the new scheme will be formatted erasing the current data on the entire drive. You can assign the names you want to the volumes such as Time Machine, Emergency Drive or whatever you want. Just remember you're erasing the drive so be sure that's what you want to do. Resizing partitions depends on how full they are, what size you want to change them to and takes some practice to master. I typically have soemthing like the following:
    300 gig Main Drive with Leopard
    300 gig drive with bootable clone of Leopard as a backup
    400 gig drive with 2 partitions (1 for time machine and 1 for an emergency
    Leopard clone with no added apps and only
    utilities such as TechToolPro.
    120 gig drive with three partitions
    1. a previous system (Panther in my case)
    2. a 9.2.2 System
    3. a data partition for a quick data backup of something important
    Your scheme can vary but give it some thought before you embark on something you're not going to want to change tomorrow. Tom

  • I have partitioned my tables, do I need to rebuild the indexes of the table

    Hello,
    I have partition very huge tables, by using rage partition method. After that few queries taking more time than before. Does the old indexes needs to rebuild?
    Thanks

    929941 wrote:
    Hello,
    I have partition very huge tables, by using rage partition method. After that few queries taking more time than before. Does the old indexes needs to rebuild?
    ThanksWhat do you think?
    By the way, how did you partition existing tables? Did you use dbms_redefinition, or did you use CTAS, or some other method?
    I love RAGE partitions. You should always always partition your rage.

  • Problem in truncate/drop partitions in a table having nested table columns.

    Hi,
    I have a table that has 2 columns of type nested table. Now in the purge process, when I try to truncate or drop a partition from this table, I get error that I can't do this (because table has nested tables). Can anybody help me telling how I will be able to truncate/drop partition from this table? IF I change column types from nested table to varray type, will it help?
    Also, is there any short method of moving existing data from a nested table column to a varray column (having same fields as nested table)?
    Thanks in advance.

    >
    I have a table that has 2 columns of type nested table. Now in the purge process, when I try to truncate or drop a partition from this table, I get error that I can't do this (because table has nested tables). Can anybody help me telling how I will be able to truncate/drop partition from this table?
    >
    Unfortunately you can't do those operations when a table has a nested table column. No truncate, no drop, no exchange partition at the partition level.
    A nested table column is stored as a separate table and acts like a 'child' table with foreign keys to the 'parent' table. It is these 'foreign keys' that prevent the truncation (just like normal foreign keys prevent truncating partions and must be disabled first) but there is no mechanism to 'disable' them.
    Just one excellent example (there are many others) of why you should NOT use object columns at all.
    >
    IF I change column types from nested table to varray type, will it help?
    >
    Yes but I STRONGLY suggest you take this opportunity to change your data model to a standard relational one and put the 'child' (nested table) data into its own table with a foreign key to the parent. You can create a view on the two tables that can make data appear as if you have a nested table type if you want.
    Assuming that you are going to ignore the above advice just create a new VARRAY type and a table with that type as a column. Remember VARRAYs are defined with a maximum size. So the number of nested table records needs to be within the capacity of the VARRAY type for the data to fit.
    >
    Also, is there any short method of moving existing data from a nested table column to a varray column (having same fields as nested table)?
    >
    Sure - just CAST the nested table to the VARRAY type. Here is code for a VARRAY type and a new table that shows how to do it.
    -- new array type
    CREATE OR REPLACE TYPE ARRAY_T AS VARRAY(10) OF VARCHAR2(64)
    -- new table using new array type - NOTE there is no nested table storage clause - arrays stored inline
    CREATE TABLE partitioned_table_array
         ( ID_ INT,
          arra_col  ARRAY_T )
         PARTITION BY RANGE (ID_)
         ( PARTITION p1 VALUES LESS THAN (40)
         , PARTITION p2 VALUES LESS THAN(80)
         , PARTITION p3 VALUES LESS THAN(100)
    -- insert the data from the original table converting the nested table data to the varray type
    INSERT INTO PARTITIONED_TABLE_ARRAY
    SELECT ID_, CAST(NESTED_COL AS ARRAY_T) FROM PARTITIONED_TABLENaturally since there is no more nested table storage you can truncate or drop partitions in the above table
    alter table partitioned_table_array truncate partition p1
    alter table partitioned_table_array drop partition p1

  • Need advice on how to create report

    I'm not sure how to do this, so I'm asking advice from the apex gods...
    here is the issue, I have two tables that I need to combine info from. not an issue in its self. I can do that. but here is the issue. in Table A I have some data like disc_id, title, theids, etc.. Table B contains fullname, theid, emplid
    now in table A the column 'theids' is populated from apex as a multi select list. so the values in the column is something like 48;3;88
    it got these id numbers from the Table B query (lov popup) that returns theid of the person chosen.
    now I have to create a report that will be used in a excel download and what they want is one line per disc_id and they want the more useful 'emplid' in the field where 'theids' are at. that is instead of :
    disc_id Title theids
    101 Test 48;3;88
    they want:
    disc_id Title Theids
    101 test N33456,N3457,N43562
    so I'm kind of stuck, I can figure out how to write a sql using instr to get something like this:
    101 test N33456
    101 test N3457
    etc
    but that is not what they want. so I'm thinking I need to create a package to do this and return some sort of values. the problem is I can't figure out how I can substitute the 48;3;88 for N33456,N3457,N43562
    I'm still new at this pl/sql and apex stuff so sorry if this seems to have some obvious answer.

    I might be dense so forgive me on this, but I don't think that will solve it.
    your example uses field from apex, like :P3_SOME _VALUE
    this report screen has no fields. there are no :P#_ type values to pull. I'm writing a report screen using a report template.
    all the data I need for the report exists within the table. I just need to display it the way they want.
    I could do just a:
    select *
    from my_table
    and it would create the report just fine. the only issue is one of the columns would have 48:3:88 in the field. which to a person reading the report means little. so i have no apex fields to pull.
    I was trying to write a pl/sql function that would substitute those delimited values with meaningful data. but when I do I get multiple rows and I can't have that. so my choices so far I see are..
    1) create the report with a simple select leaving the data as is
    2) create report that has multiple rows of data where each instr value now has the correct names (some have 2 some have 5, big list to read of dups)
    3) create a package that populates a temporary table with the data I need then select on that table to get the report.
    right now I'm thinking #3 is the only way to get what I want. By the way your examples would be a great help in doing that I can already see that I can use some of them to create a temp table with that data.
    what I was hoping for was some option that I don't understand or missed that a more experienced person would know. but its looking grim.
    I thank you all the info you have given, its been a great deal of info that I can use at some point, but so far I don't think it will solve my issue.

  • Major Issues with installing 4tb internal. Really need advice please

    In the process of a long needed upgrade to my 2010 Mac Pro Quad core 2.8 and have run into a serious headache that I really need advice on so I can get back to work. I've already spent 2 days dealing with all of this...
    Just did a new SSD install and Migration which went fine but I'm also updating the rest of the internal drives. My main (non boot) drive was being upgraded from a Seagate Barracuda 3tb to a 4th Deskstar NAS (it was showing as compatible with my desktop, see links below). My 3tb ran fine for years but now due to it being heavily used I want to switch to a new drive and I can also use a bit more space.
    The issue I'm running into is that initially on boot, my system was telling me it couldn't recognize the disk and it wasn't even showing up in Disk Utility. I had to purchase a SATA USB 3 kit to attach it as an external to get it to show which worked without problem. With the USB kit I was then able to partition it (GUID, Mac OS extended journaled) and format it properly. After reinserting the drive into my tower as an internal it failed to show again. After a few attempts of restarts and trying various bays it popped up but showed as a non formatted drive and I was told again that the system didn't recognise it. I was then given the option to initialise and was then actually able to then format and partition it though Disk Utility while it was installed as an internal.
    Figured that was problem solved but when I went to check the drive and getting ready to transfer files over I noticed that Disk Utility was only allowing the First Aid and Partition options but not Erase, RAID, Restore which I'd never seen before. I then also noticed that none of the drive connection info was in the same format nor will it even provide drive bay info, connection info or read/write status (See screen shots). This is what I can't figure out and really need to clarify before I put full trust into using this drive.
    Any info would be greatly appreciated...
    Deskstar 4tb internal info which is installed in Bay 2
    3tb Seagate which I trying to retire and transfer from.
    Here are the weblinks to the Deskstar 4tb drive and the compatibility list but I support isn't allowing me to add direct links so add the www. before hand.
    (Drive - eshop.macsales.com/item/HGST/0S03664/) (compatibility list - eshop.macsales.com/Descriptions/specs/Framework.cfm?page=macpromid2010.html).

    What OSX version?
    Disk Utility in later versions of ML and I think Mavericks have problems formatting with 4 TB internal drives.
    http://forums.macrumors.com/showthread.php?t=1661024
    http://apple.stackexchange.com/questions/112266/why-doesnt-my-mac-pro-see-my-new -4tb-sata-drive

  • Maximum No. of Partitions in a Table?

    Hi,
    What is the Maximum no.of partitions in a table?
    Best Regards,
    Naresh Kumar C.

    All resides in what is 1K ?
    First option (more popular) : 1K=1024, so 1024K = 1024*1024
    Second option (less popular) : 1K = 1000, 1024K = 1024*1000
    http://en.wikipedia.org/wiki/Byte
    Have you really need to 1024K-1 partitions (either one or other option, it's already huge for number of partitions) ? Good luck for maintenance tasks...
    Nicolas.

  • Diagnostic pack, Tuning pack are not in OEM 10g, Add partition to a table

    Hi All,
    I have 2 questions:
    Q.1: In Oracle 9i Oracle Enterprise Manager java console, we had "Diagnostic Pack" and "Tuning Pack" which helped us seeing performance tuning info (session's statistics such as cpu time, pga memory, physical disk reads, etc.) and privded help for sql tuning and performance improvements. But in 10g, the same product (Oracle Enterprise Manager java console) does not include these 2 packs, due to which we are unable to monitor and control performance tuning information/statistics. Now my question is, do we need to install these 2 packs separately in 10g? if yes, where can we get them? (I am sure in 9i, these packages came with OEM console and we didnt need to get them separately)
    Q.2: I have a partitioned table having 5 partitions based on range partitioning. Now our requirements have changed and we need to insert values beyong the 5th partition, so we need a 6th partition. Can someone tell me the command to add a new partition to the table? I tried "Alter table xxx add partition yyy ....", but it didn't work. If any one can me the correct syntax, it will be great.
    Thanks in advance.

    OP is talking about java-based EM, not web-based DBConsole. In fact he/she has to change to DBConsole, because 10g java EM doesn't longer support these tuning features.
    Alter table ... partition syntax depends on the kind of partitioning, see the documentation:
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_3001.htm#i2131048
    Werner

  • I'm desperately needing advice to a common question.  I use Quicken and love it.  But the Mac version is not as great as the PC.   Has anyone installed it by segmenting their Mac with Parallels or Fusion or Boot camp.  If so, which one do you recommend.

    I'm desperately needing advice.  New Mac.   Used Quicken on my PC.  Researched all software for Financial programs and Quicken is still the most recommended.   I want to use Quicken on my Mac.  The Mac version is not highly rated so I would need to partition my Mac.   Has anyone done this for their quicken program and if so, which partitioning program did you use - Parallels, Fusion ware or Boot camp?
    Thx

    Lisa Ellies-Laye wrote:
    Thanks.  Hadn't heard of it. ?  Is there any concern installing this free program on my Mac.    Have you used it?  Apart from being free is there any other advantage of Parallels and VMfusion. ?
    Virtual Box is safe and well developed, it offers similar or identical features to the paid competition, it may be a little less polished but that's all.
    Download and try it out, nothing to lose (except time).

  • Use multiple partitions on a table in query

    Hi All,
    Overview:-
    I have a table - TRACK which is partitioned on weekly basis. Im using this table in one of my SQL queries in which I require to find a monthly count of some column data. The query looks like:-
    Select  count(*)
    from Barcode B
    inner join Track partition P(99) T
        on B.item_barcode = T.item_barcode
    where B.create_date between 20120202 and 20120209;In the above query I am fetching the count for one week using the Partitions created on that table during that week.
    Desired output:-
    I want to fetch data between 01-Feb and 01-Mar and use the rest of the partitions for that table during the duration in the above query. The weekly partitions currently present for Track table are -
    P(99) - 20120202
    P(100) - 20120209
    P(101) - 20120216
    P(102) - 20120223
    P(103) - 20120301
    My question is that above Ive used one partition successfully, now how can I use the other 4 partitions in the same query if I am finding the count for one month (i.e. from 201201 to 20120301) ?
    Environment:-
    Oracle version - Oracle 10g R2 (10.2.0.4)
    Operating System - AIX version 5
    Thanks.
    Edited by: Sandyboy036 on Mar 12, 2012 10:47 AM

    I'm with damorgan on this one, though I was lazy and only read it twice.
    You've got a mix of everything in this one and none of it is correct.
    1. If B.create_date is VARCHAR2 this is the wrong way to store dates.
    2. All Track partitions are needed for one month if you only have the 5 partitions you listed so there is no point in mentioning any of them by name. So the answer to 'how can I use the other 4 partitions' is - don't; Oracle will use them anyway.
    3. BETWEEN 01_Feb and 01-Mar - be aware that the BETWEEN operator includes both endpoints so if you actually used it in your query the data would include March 1.

  • Partitioning the fact table

    Hi Gurus,
    I have a question regarding partitioning the cube. When you partition the cube from the Extras menu, will it partition the F table or is it the E table or both.
    Second question: After partitioning, how will i know the newly created table names.
    Thanks,
    ANU

    Hi Anu,
    Partition Need and its definition
    Infocube contains huge amount of data n the table size of the cube increases regularly. so
    when a query is executed on cube then it has to check entire table to get the records for
    example Sales in Jan08.
    Advantage of Partition
    so we can partition the cube so that smaller tables are formed .so that report performance
    will increase bcoz the query hits that particular partition.
    Steps for Partition
    1.To partiotion a cube, it must not contain data.
    2. Partition can be done using time characteristics 0CALMONTH and fiscalperiod.
    steps:
    1. in change of the cube, select extras menu and Partioning option.
    2. select calmonth time characteristic.
    3. it will ask for the time period to partiotion and no. of partiotions. give them
    4. activate the cube.
    In BI 7 we can partition the cube even if it contains data.
    select the cube, right click , select repartitioning.
    1. we can delete existing partitions
    2. create new ones
    3. merge partitions.
    Partitioning of the Cube
    http://help.sap.com/saphelp_nw04s/helpdata/en/0a/cd6e3a30aac013e10000000a114084/frameset.htm
    Partitioning Fields and Values
    partition of Infocube
    Partitioning of cube using Fiscal period
    Infocube Partition
    After Partition
    You can find the Partition in the following tables in SE11 >
    E tables /BIC/E* or /BIC/E(cube name)
    Please also go through the following links
    Partioning of Cube
    partioning
    Partioning of ODS object
    /thread/733456 [original link is broken]
    Hope i had answered your question
    Assign points if helpful,
    Thanks and regards
    Bala

  • Scanning Pictures for HD Project I Need Advice

    I am about to *Scan Pictures for HD Project* I Need Advice. The scanner is a HP Scanjet G4050 my questions are:
    1: At what resolution do I scan these pictures _+(300 or highest dpi available)+_
    2: What color choice is necessary *(RGB vs CMYK)*
    3: Can you please suggest points for creating a backdrop for the pictures (various sizes) in the Timeline
    Thanks in advance

    Scan the picture like you normally would. If the vertical resolution is 1080, you are fine. Don't worry about the 1280 width as black will be in that area not taken up with the photo. That part won't matter if it isn't 1280 if it is a vertical picture. If you don't have at least 1080 high, you might want to re-scan at a higher resolution. If you have it say, 2000 pixels high really no big deal except you don't need it that high and all that extra size slows down your system. If you want it at a lower resolution after you scan go into Photoshop->Image->Image size. Be sure and check "Constrain Proportions" before you change the dimensions in the top box for the height (where you are best using the units as pixels) That way the picture will stay in proportion. Don't use this second method to 'add' more pixels as the quality suffers when you go up this way. Rescan if you want MORE pixels.
    All the above is talking about vertical pictures. If you have a really wide photo that is not very tall, use the same principle but keep the width constant. For example let's say you have a 2x6 inch photo. Make sure the width is at least 1280 pixels. Don't worry that the height will be less than 1080 because black will take up that space.
    If you are going to do any zoom in and/or panning across a picture, you'll need to make sure it has more than the minimum pixels. For me a little goes a long way, so I zoom in slowly maybe 10-15%.
    Sharon

  • Partitioning on exisitng table

    All,
    I wanted to do partition on existing table which does not have any partition before.
    My concern is it is a crucial table which is holding millions of records and ofcourse records are being inserted in a regualr basis.
    So if i create a new partition on this table , will it cause any datalose or any other impacts.
    This is table is having foreign key references too.
    Oracle 10g on Solaris 9
    Your suggesstions are highly appreciateable..
    Thanks in Advance

    What version? 10g is a marketing label not a version
    SELECT * FROM v$version;What kind of partitioning? RANGE? HASH? LIST? COMPOSITE?
    And you can not turn a normal heap table into a partitioned table. You need to create a partitioned table and then do an "exchange."
    I would suggest you read the docs and then ask your question after you provide appropriate detail information.
    But, as a blanket statement, if you do it properly you can not lose data.

  • What's the best practice to partition an existing table?

    We are using Oracle 11g EE 11.2.0.3.0. We want to partition an existing table. I found some information from this link [http://www.oracle-base.com/articles/misc/partitioning-an-existing-table.php], but I am not sure whether that's the best way. Could anyone share the best practice of partitioning an existing table?
    Thanks.
    Jun

    >
    We want to partition a few related tables. A couple of tables have about 30 million rows, and a couple of other tables have about 10 million rows. The data for those tables is for ~2000 accounts, each of them is identified by a column named "account_id". We want to partition the tables by using the "account_id" as the partition key to gain better performance for queries, so we would probably use hash partition. Please advise.
    >
    1. What evidence do you have that your performance will be any better if you partition those tables?
    2. What evidence do you have that there is anything wrong with the performance of your current queries?
    3. Have you reviewed the actual execution plans for your most important queries to see if there is even any room for improvement?
    If your query uses account_id as a predicate but only pulls a few records from a 'master' table for that key value your performance may actually be worse if you partition that table. That is because using an index range scan Oracle can easily find the ROWIDs of the rows that need to be selected and then easily retrieve them regardless of their physical location.
    If you have queries that do NOT use account_id but currently use indexes the performance of those queries may also be worse if you partition that table. Those indexes will be GLOBAL.
    There are two major implications when you use hash partitioning:
    1. Any query that does NOT include the partitioning key (account_id for your case) will, of necessity, have to use a full table scan if an appropriate index is not available.
    2. You will get NO management benefits such as being able to add/remove partitions that include old data.
    Before you decide to partition a table you should conduct tests and examine the execution plans for your important queries.

  • Partitioning an Existing Table with data

    Hi All,
    I am few tables with data, I need to Partition the table without affecting existing table values is it possible?.
    if yes then Please suggest me some ideas to archive that..
    Thanks & Regards
    Sami

    Hi All,
    I Need to partition for existing table with 1 million records
    1. First partition should be created for 6 months
    2.Second partition should created for 1 year.
    3.So as of now we have 6 months Data in production + another 6 months data in First partition + another 1 year data in Second partition.
    4.More than 2 year’s data’s should be moved other partition or archived.
    kindly provide your valuabe suggestion.
    Thanks & Regards
    Sami

Maybe you are looking for