Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Is this a good case for an IOT?
dean wrote:
> On Aug 1, 9:57 pm, DA Morgan <damor..._at_psoug.org> wrote:
>> dean wrote: >>> 9.2i, 10g, Windows platforms. >>> Hello all, >>> We have a table USER_PREFERENCE, which gets updated frequently by >>> various users, and appears to be badly fragmented (takes relatively >>> large per-record timespan to load into memory, compared to other >>> tables). It has 5 fields: >>> Name Null? Type >>> ----------------------------- -------- -------------------- >>> USER_I NOT NULL VARCHAR2(30) >>> FORM_I NOT NULL VARCHAR2(100) >>> CATEGORY_I NOT NULL VARCHAR2(100) >>> KEY_I NOT NULL VARCHAR2(100) >>> VALUE_X VARCHAR2(2000) >>> The primary key is on the first 4 fields. There are no NULL values for >>> the last field, VALUE_X. >>> Is this a good candidate for an index organized table? The hope being >>> that this would then maintain itself over time and solve the loading >>> issue. >>> Thanks for any tips! >>> DeanB >> Possibly but how is it accessed and on what basis do you make the >> statement "appears to be badly fragmented," what does that mean, and >> what has that got to do with anything? Extents are never laid down >> on disk contiguously ... not even in an IOT. >> -- >> Daniel A. Morgan >> University of Washington >> damor..._at_x.washington.edu (replace x with u to respond) >> Puget Sound Oracle Users Groupwww.psoug.org- Hide quoted text - >> >> - Show quoted text -
I can. And I can think of a zillion reasons to never make statements such as I think my table is badly fragmented. I'd suggest taking a trip to http://tahiti.oracle.com and reading the Concepts books.
But while I'm being a bit unkind here ... what does it mean to load 10K records to memory? Just for comparison, on my IBM T43 notebook I can read more almost 400,000 records into memory and insert them into a table in about 1 second. Your issues may be many but table fragmentation, whatever that is, isn't one of them.
SQL> SELECT COUNT(*) FROM child;
COUNT(*)
0
SQL> set timing on
SQL> exec fast_way
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.56
SQL> SELECT COUNT(*) FROM child;
COUNT(*)
200000
Elapsed: 00:00:00.01
SQL>
-- Daniel A. Morgan University of Washington damorgan_at_x.washington.edu (replace x with u to respond) Puget Sound Oracle Users Group www.psoug.orgReceived on Thu Aug 02 2007 - 06:45:31 CDT
![]() |
![]() |