Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Re: Performance issues

RE: Re: Performance issues

From: Mohammad Rafiq <rafiq9857_at_hotmail.com>
Date: Fri, 08 Feb 2002 12:42:21 -0800
Message-ID: <F001.0040AB84.20020208124117@fatcity.com>

To: "'Mohammad Rafiq'" <rafiq9857_at_hotmail.com> Date: Fri, 8 Feb 2002 15:25:32 -0500


There are two parts to this issue.
1. DBA issue, that Bj0rn Engsig talked about. 2. System performance.

        We have couple of systems where one of our table has 70 million rows and the other 110 million rows. We just converted our 70 million records table to a partitioned table. Table is spread over 12 drives is using 0+1 RAID. Index is partitioned but is on 4 drives.

Reason for doing this was that when 12 processes were trying to insert into the table we were getting buffer busy waits. Most of the processes were trying to write to the same block. Partitioning the table cut down the buffer busy waits. Spreading the table on more drives removed the db sequential read problems. We still had to go further and optimize the SQL to minimize disk reads and so on, but we cut down the I/O wait time.

By partitioning the table and index, you are dealing with a piece of the table for access and insert.
That means rather than dealing with 100 million rows table, you will be dealing with say 10 million rows table. We used to have a 31 million records table for 31 days data. About 10 years go we split this table into 31 of 1 million rows tables and associated indexes. This way we deal with only 1 million records tables, which were much smaller to manage as well as provided faster access. With partitioning option you are basically doing the same thing, except you have one table but it is broken up in 31 tables. It still has one name but it could be spread of 3 to 30 drives and no one but the DBA knows the difference. So divide and conquer is the strategy. Make it smaller and make it manageable. Reduce I/O contention and increase access time.

Table and index Partitioning will help but it is not the only thing. Most important of all is how optimized, well structured and architected code is. This is where we spent most of the time. To modify the code, so we minimize number of SQL executions. Remove SQL from inner loops, optimize the SQL and specially process all the data as it came from the disks, so we do not have to go back to disk to get the data for processing it later.

Keep your disk I/O down, buffer_get(reads) low by optimizing the INDEXes. >From your email I can not tell what type of application you are working on. If it is data warehouse type application, Oracle has a good article on their site about using bitmap indexes and partitioning that might help you. If you are going to partition tables and indexes, you may want to consider Oracle parallel processing. That means you may need a multi-processor machine. You would consider having multiple controllers, if table spread over many drives. The list can be quite long depending on what your requirements are.

Shakir
shakir_at_compu-soft.com

-----Original Message-----
Sent: Friday, February 08, 2002 2:34 PM
To: Mohammed_Shakir_at_standardandpoors.com

fyi...

Reply-To: ORACLE-L_at_fatcity.com

You should not expect to see much performance improvement, except in special cases where you can replace large deletes or loads by simpler partition operations. Your decision to use partitioning should be based on the ability to handle (i.e. DBA work) partitions separately, where you can e.g. mass delete/load, make parts read-only to reduce backup, or enable partial recovery during disk outages. Note, however, that much of this depends on your ability to partition indexes and data equivalently so that you avoid global indexes.

Sathish Tatikonda wrote:

>Hi All,
>
>We are developing a system in which some tables in the database might be
>having about 100 Million records. We are planning to use table and index
>partition's as a means to improve performance. Could you please share
>your experiences/views about handling such huge tables. Is this
>partitioning sufficient or do we have to look in to some other means.
>
>It would also be of great help if you could provide me some pointers to
>documents which gives some insight for handling such tables and
>databases.
>
>thanks in advance,
>Sathish.



Send and receive Hotmail on your mobile device: http://mobile.msn.com

The information contained in this message is intended only for the recipient, may be privileged and confidential and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, please be aware that any dissemination or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify us by replying to the message and deleting it from your computer.

Thank you,
Standard & Poor's

MOHAMMAD RAFIQ



Join the world’s largest e-mail service with MSN Hotmail. http://www.hotmail.com
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Mohammad Rafiq
  INET: rafiq9857_at_hotmail.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).
Received on Fri Feb 08 2002 - 14:42:21 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US