Home » RDBMS Server » Server Administration » montoring autoallocate tablespaces
montoring autoallocate tablespaces [message #530331] |
Mon, 07 November 2011 12:22 |
|
BeefStu
Messages: 208 Registered: October 2011
|
Senior Member |
|
|
Currently all my tablesapces are "UNIFORM" and I am looking
into going to "AUTOALLOCATE" so space will not be some much
of an issue.
I am using the following code and here is the output
sqlplus -s / <<-EOT
set pages 50
set line 100
set verify off
set feed off
set trimspool on
break on report
column FREE for 9,999,999 heading "%Free"
column PCT_USED for 9,999 heading "%Used"
column tablespace_name for a18 heading "Tablespace"
column TOT_SIZE for 9,999,999 heading "Size"
column TOT_FREE for 9,999,999 heading "Free"
column TOT_USED for 9,999,999 heading "Used"
column MAX_BYTES for 999,999 heading "Lrgst|Chunk"
column COUNTF for 9,999 heading "Count"
repheader left "PAGE Threshold Exceeded Tablespace Free And Used Analysis"
select a.tablespace_name, TOT_SIZE, TOT_FREE, (TOT_SIZE - TOT_FREE) TOT_USED,
Round((TOT_FREE/TOT_SIZE)*100) as FREE,
Round((1-(TOT_FREE/TOT_SIZE))*100) PCT_USED,page_threshold threshold, max_bytes,countf
from (select tablespace_name, round(sum(bytes)/1048576) TOT_SIZE
from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes)/1048576) TOT_FREE
from dba_free_space group by tablespace_name) b,
(select tablespace_name,round(max(bytes)/1048576) MAX_BYTES,count(*)COUNTF
from dba_free_space group by tablespace_name) c,
(select tablespace_name from dba_tablespaces where
contents != 'UNDO') d,
(select tablespace_name,page_threshold from tsused_thresholds) e
where a.tablespace_name = b.tablespace_name
and b.tablespace_name = c.tablespace_name
and c.tablespace_name = d.tablespace_name
and c.tablespace_name = e.tablespace_name
order by pct_used,a.tablespace_name
/
EOT
PAGE Threshold Exceeded Tablespace Free And Used Analysis
Lrgst
Tablespace Size Free Used %Free %Used THRESHOLD Chunk Count
------------------ ---------- ---------- ---------- ---------- ------ ---------- -------- ------
MODELER 500 499 1 100 0 90 496 2
IE16K 100 99 1 99 1 90 68 4
DE1M 550 439 111 80 20 90 417 2
TOOLS 2,500 1,845 655 74 26 90 1,194 445
USR_100M 44,000 28,600 15,400 65 35 90 2,780 218
USERS 5,024 3,135 1,889 62 38 90 3,000 3
DE16K 450 241 209 54 46 90 162 7
IE1M 1,000 497 503 50 50 90 497 1
SYSAUX 45,448 22,314 23,134 49 51 80 3,968 580
SYSTEM 1,331 639 692 48 52 90 639 3
DE10M 30,504 13,840 16,664 45 55 90 6,260 95
USR_10M 16,000 6,450 9,550 40 60 90 3,190 6
USR_1M 500 202 298 40 60 90 202 1
IE10M 21,504 7,330 14,174 34 66 90 2,960 52
PERF_STAT_DATA 1,500 512 988 34 66 90 484 3
IE100M 226,304 61,200 165,104 27 73 90 16,700 92
MODELER_1 193,784 41,910 151,874 22 78 90 27,130 3
DE100M 860,160 167,000 693,160 19 81 90 28,000 49
Does anybody have a scipt that can emulate my above output
and also deal with tablespaces that can autotallocate?
Thanks to all who answer
|
|
|
|
Re: montoring autoallocate tablespaces [message #530336 is a reply to message #530331] |
Mon, 07 November 2011 13:03 |
John Watson
Messages: 8962 Registered: January 2010 Location: Global Village
|
Senior Member |
|
|
Hi -
First, does your query need to do an outer join to dba_free_space? I think that the way it is written now, it will not include any tablespaces which have no free space.
Second, are you sure that dba_free_space.max_bytes is meaningful, given that extents from dropped objects may be fragmenting the free space? I'm not sure, I haven't tested it.
Third, as BS says, why do you think autoallocate is a good thing? With ASM (and therefore Exadata) autoallocate is defintely bad for performance. And even without ASM, the bitmaps will be more efficient with uniform size. Probably hard to prove, though.
Just a few thoughts, which I realize do not in any way answer your question.
John.
[Updated on: Mon, 07 November 2011 13:05] Report message to a moderator
|
|
|
|
Re: montoring autoallocate tablespaces [message #530342 is a reply to message #530339] |
Mon, 07 November 2011 13:50 |
|
BlackSwan
Messages: 26766 Registered: January 2009 Location: SoCal
|
Senior Member |
|
|
>Or is there a better way to address this issue without exporting/dropping/importing
do NOTHING!
If/when old rows are removed, then new rows will eventually consume that space.
If/when you "shrink" tablespace to "reclaim" space from removed rows,
then Oracle has to expand tablespace size as new rows get added.
Lots of movement, without real progress.
|
|
|
Goto Forum:
Current Time: Sun Jan 12 17:37:35 CST 2025
|