I created the following query to give me the space allocated to a tablespace, the Free Space and then get the used and %. It is not giving me the correct results. Can I get another set of eyes and see what I am missing...
Here are the queries:
select dba_data_files.tablespace_name, round(sum(dba_data_files.bytes/1048576)) Allocated_MEG from dba_data_fi
les where tablespace_name = 'FEMX' group by tablespace_name;
select dba_data_files.tablespace_name, round(sum(dba_data_files.bytes/1048576)) Allocated_MEG, round(sum(dba_f
ree_space.bytes/1048576)) Free_Meg,
round(sum(dba_data_files.bytes/1048576 - dba_free_space.bytes/1048576)) Used_Meg,
round(sum(dba_free_space.bytes/1048576) / sum(dba_data_files.bytes/1048576)*100) Percent_Free,
round(sum(dba_data_files.bytes/1048576 - dba_free_space.bytes/1048576) / sum(dba_data_files.bytes/1048576)*100
) Percent_Used
from dba_data_files, dba_free_space where dba_data_files.tablespace_name = 'FEMX' and dba_data_files.tablespa
ce_name = dba_free_space.tablespace_name
group by dba_data_files.tablespace_name;
Here is the output.....
TABLESPACE_NAME ALLOCATED_MEG
------------------------------ -------------
FEMX 20
TABLESPACE_NAME ALLOCATED_MEG FREE_MEG USED_MEG PERCENT_FREE PERCENT_USED
------------------------------ ------------- ---------- ---------- ------------ ------------
FEMX 40 6 34 15 85
I did this against one tablespace so you can easily see the difference.... The 20Meg matches the number I get when I do it by hand...
Here is the Production Version....
select dba_data_files.tablespace_name, round(sum(dba_data_files.bytes/1048576)) Allocated_MEG, round(sum(dba_f
ree_space.bytes/1048576)) Free_Meg,
round(sum(dba_data_files.bytes/1048576 - dba_free_space.bytes/1048576)) Used_Meg,
round(sum(dba_free_space.bytes/1048576) / sum(dba_data_files.bytes/1048576)*100) Percent_Free,
round(sum(dba_data_files.bytes/1048576 - dba_free_space.bytes/1048576) / sum(dba_data_files.bytes/1048576)*100
) Percent_Used
from dba_data_files, dba_free_space where dba_data_files.tablespace_name = dba_free_space.tablespace_name
group by dba_data_files.tablespace_name;
Thanks....
Here are the queries:
select dba_data_files.tablespace_name, round(sum(dba_data_files.bytes/1048576)) Allocated_MEG from dba_data_fi
les where tablespace_name = 'FEMX' group by tablespace_name;
select dba_data_files.tablespace_name, round(sum(dba_data_files.bytes/1048576)) Allocated_MEG, round(sum(dba_f
ree_space.bytes/1048576)) Free_Meg,
round(sum(dba_data_files.bytes/1048576 - dba_free_space.bytes/1048576)) Used_Meg,
round(sum(dba_free_space.bytes/1048576) / sum(dba_data_files.bytes/1048576)*100) Percent_Free,
round(sum(dba_data_files.bytes/1048576 - dba_free_space.bytes/1048576) / sum(dba_data_files.bytes/1048576)*100
) Percent_Used
from dba_data_files, dba_free_space where dba_data_files.tablespace_name = 'FEMX' and dba_data_files.tablespa
ce_name = dba_free_space.tablespace_name
group by dba_data_files.tablespace_name;
Here is the output.....
TABLESPACE_NAME ALLOCATED_MEG
------------------------------ -------------
FEMX 20
TABLESPACE_NAME ALLOCATED_MEG FREE_MEG USED_MEG PERCENT_FREE PERCENT_USED
------------------------------ ------------- ---------- ---------- ------------ ------------
FEMX 40 6 34 15 85
I did this against one tablespace so you can easily see the difference.... The 20Meg matches the number I get when I do it by hand...
Here is the Production Version....
select dba_data_files.tablespace_name, round(sum(dba_data_files.bytes/1048576)) Allocated_MEG, round(sum(dba_f
ree_space.bytes/1048576)) Free_Meg,
round(sum(dba_data_files.bytes/1048576 - dba_free_space.bytes/1048576)) Used_Meg,
round(sum(dba_free_space.bytes/1048576) / sum(dba_data_files.bytes/1048576)*100) Percent_Free,
round(sum(dba_data_files.bytes/1048576 - dba_free_space.bytes/1048576) / sum(dba_data_files.bytes/1048576)*100
) Percent_Used
from dba_data_files, dba_free_space where dba_data_files.tablespace_name = dba_free_space.tablespace_name
group by dba_data_files.tablespace_name;
Thanks....