Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: design question, use of partitioned tables?
Dear Nuno and Tanel,
answer embedded
Have a nice weekend
Manuela Mueller
Nuno Souto wrote:
<snip>
> OK, here is some more I found. Hope anyone else
> doing a "direct mail" may also want to share the knowledge.
> It's not widely available anywhere...
>
>
>>a) create table:
Total logical records read: 262557 Total logical records rejected: 123 Total logical records discarded: 0
Run began on Wed Aug 06 10:23:50 2003
Run ended on Wed Aug 06 21:22:46 2003
Elapsed time was: 10:58:55.77 CPU time was: 00:04:27.47 Same data, only difference: lobs on local file system: Total logical records read: 262557 Total logical records rejected: 123 Total logical records discarded: 0
Run began on Fri Aug 08 09:56:15 2003
Run ended on Fri Aug 08 10:42:15 2003
Elapsed time was: 00:45:59.81 CPU time was: 00:01:42.08
Ouch!
Regarding ENABLE STORAGE IN ROW:
In our application the lob size varies widely, from the 262000 loaded
lobs 76356 are <= 4000 bytes. Hence we'll stick to enable storage in row.
> Another thing, triggered by what Tanel said and ixora: the control
> files seem to get some considerable I/O during a load of a lob.
> Certainly V$SYSTEM_EVENT showed that.
I can affirm this. On the development box where I performed only the
load (no other DB activity) V$SYSTEM_EVENT shows:
total_waits for following parameters:
control file sequential read 2429 control file parallel write 2893Instance was freshly started this morning.
>
> I don't like the idea of disabling updates to controlfiles via an
> event although that may not phase you? But I've tried the following:
> I had 3 control files, one of them in the same disk as where the
> lobsegment tablespace was. I've reduced the controlfiles to 1, in
> a different disk. That immediately halfed the load time in my system
> for all situations!
>
> Moral? I'd drop the multiplexing of controlfile for the load and
> use just one, in a separate fs/disk.
> Given that the whole thing is I/O bound, I'd also concentrate on
> getting the fastest possible disk access to the control file and
> the lobsegment tablespace(s). That means Raid 0 (striping) or some
> other mechanism to speed up I/O on these files.
>
> If you have access to a SAN, use of their partitioned caches would
> be an advantage. I'd also look at using the split buffer cache in
> Oracle and put the table in RECYCLE while it is being loaded, then
> back in DEFAULT after that.
>
> Based on the above, I did manage to reduce the load times in
> my system from a start point of 6 minutes for 20K very large rows to
> just under 3 minutes. Without any h/w reconfiguration or disk
> optimization. I'd expect that to be much better in your system.
>
> For those with Win2K Server: if you format your disk partition
> with a sector size matching the db block size, direct I/O is much,
> much faster!
>
<snip>
>>After optimization of te Oracle Text indexes old duplicate records (not >>contained in the freshly created index) are deleted (approx 1-1.5 >>million rows). Hence the table fragmentation.