Would someone settle a question for me?
Is it good or bad to have multiple table extents (say 30) or not?
I have read, that multiple extents (anything over 4) is bad just for the fact that you have them, now I have been told by a DBA that it's not bad in and of itself... I can't see the logic in that one - but maybe I'm missing something - can anyone shed some light on the subject, and maybe some pointers to reference material on the matter...
Thanks...
A novice Oracle DBA
Torsten
Oracle explained that they were not so concerned about the number of extents, and in fact recommended that next extent size could be set to some small value (say 16K) and that extent size used for every table in the tablespace. Then if an extent was freed in one table it became available for all tables (because they all had the same next extent size). You would then set the max extents to unlimited for all tables in the tablespace. Further: one should not be concerned about hundreds of extents, but rather thousands! I'm sure all this applied to 7 and above.
I haven't tried this, but it's interesting. I was originally told that anything over 30 extents needed to be cared for. I was told by someone in OWWS that creating tablespaces and tables with unlimited extents was not only a good idea, but was actually encouraged.
Jim Leavitt
Jonathan Lewis
Yet another Oracle-related web site: www.jlcomp.demon.co.uk
I have been given conflicting information on the
purpose of the initial extent value when creating
a tablespace. I thought that this value was for
aligning contiguous data if you were about to
do an import.
ie:
If I am about to import 500Megs of data into a
new TABLESPACE then I would create an initial extent
close to the size of the data 500M and next extent
size would be in relation to my normal growth.
I recently read in some documentation that this
initial value is used every time you create a table in
the tablespace. Is this true?
Oracle has a storage clause per table/index etc. If you don't specify
a
storage clause at all, the table will be created
a) in your default tablespace
b) using whatever default storage options you specified when you created
the
tablespace.
Many third party software packages don't allow you to specify a storage
clause as this is an Oracle specific feature. In that case of course
the
default storage clause of the tablespace becomes very important. I
have seen
people dividing their tablespaces according to the size of the object.
These
tablespace simply have different default storage clauses and no need
to
specify any storage clause at table creation.
So no, if you create a table with an initial extent of 500m and you
do it
this way
create table emp
(....)
storage (initial 500M next 50m pctincrease 0)
tablespace huge.
the 500M will be used for this table only.
If you issued this command
create tablespace huge
default storage (initial 500M next 50m pctincrease 1 /* in order to
allow
for automatic coalescing the tablespace */)
and you don't specify an initial extent, the initial extent needed
will be
derived from the default storage clause.
Hth,
Sybrand Bakker, Oracle DBA