Query Free Percentages Of Tablespaces
Jan 9, 2013how can i check using query the free percentages of my tablespaces
View 10 Replieshow can i check using query the free percentages of my tablespaces
View 10 RepliesOur production DB version is 11.2.0.1 and we do use DBArtisian. Everyday morning we check table space usage using that tool and it generates the below listed query. It used to run in 15 secs. But since one week it is running for 5/6/8 mins. I have updated the statistics on sys objects and tuning advisor created the execution plan. So, now it is running in 2 mins. Nothing has been changed in the DB configuration. I see the same query running in secs in dev environment. understand what might be the issue and how could I improve the performance of this query.
SELECT SUB.TABLESPACE_NAME, SUB.STATUS, SUB.EXTENT_MANAGEMENT, SUB.SEGMENT_SPACE_MANAGEMENT, SUB.TOTAL_SPACE_MB, SUB.USED_SPACE_MB, SUB.FREE_SPACE_MB, SUB.PERCENT_FREE_SPACE, SUB.CONTENTS, SUB.TABLESPACE_GROUP, CASE WHEN SUB.TABLESPACE_NAME = P.VALUE AND SUB.CONTENTS = 'UNDO' THEN 'YES' ELSE 'NO' END
[code]...
Following query is hanging either with 'Sequential access read' or 'Latch Free' wait event Important thing is the table which is self joined in subquery here does not have any index at all While it was hanged I tried to get trace of it and terminated twice. As such haven't got 'row source generataion' The table has only 120000 records and it shall update 34000 records
UPDATE invoice_header inv
SET inv.modified_due_date =
(SELECT inv1.btn_due_date
FROM invoice_header inv1
WHERE inv.dct_code = inv1.dct_code AND inv1.release = 'A5')
[code]...
During 'sequential read' using p1,p2 values tried to get what the session is reading and found that it is using the table itself.
During lath free I found following
SELECT name, 'Child '||child#, gets, misses, sleeps
FROM v$latch_children
WHERE addr= (select p1raw from v$session_wait where sid=18)
UNION
[code]...
However instead of self join when I creaed global temporary table as
create global temporary table t as select * from invoice_header where release='A5'
And used it in the update as
UPDATE invoice_header inv
SET inv.modified_due_date =
(SELECT t.btn_due_date
FROM t
WHERE inv.dct_code = t.dct_code AND t.release = 'A5')
WHERE inv.release = 'A5' AND inv.btn_due_date >= TRUNC (SYSDATE)
It updated the records in a second!!
Questions are
1) why it is producing 'sequential read' wait event when there is no index access or else why it is doing single block access when FTS is required?
2) Why is the 'latch free' wait event here and what it indicates here with 'cache buffer handles'?
Is it because we are reading and updating the same segment?
know in case DDL of table is required. It has all nullable columns and no index at all. Since it is 9i I am unable to use MERGE effectively in this case
I'm having trouble with a little assignment.
"Create a view named vuPassFailRate that will show the pass rate and fail rates of each test."
I have a table named Test_ID containing the following columns:
TEST_ID
TEST_NAME
PASSING_GRADE
And another table named Test_History containing the following columns:
TEST_ID
STUDENT_ID
SCORE
I'm assuming i have to create an inline view, and to work out the pass/fail rates i need to do something along the lines of (For pass rate) Where SCORE is greater than or equal to PASSING_GRADE, and TEST_ID equals TEST_ID, divide by a count of SCORE and multiply by 100. I just cant work out the nested select statements, and work out the formula using two columns in two tables.
I have been staring at this problem for so long now i cant see the wood for the trees.
I'm having trouble with a little assignment. "Create a view named vuPassFailRate that will show the pass rate and fail rates of each test." I have a table named Test_ID containing the following columns:
TEST_IDTEST_NAMEPASSING_GRADE
And another table named Test_History containing the following columns:
TEST_IDSTUDENT_IDSCORE
I'm assuming i have to create an inline view, and to work out the pass/fail rates i need to do something along the lines of (For pass rate) Where SCORE is greater than or equal to PASSING_GRADE, and TEST_ID equals TEST_ID, divide by a count of SCORE and multiply by 100. I just cant work out the nested select statements, and work out the formula using two columns in two tables. I have been staring at this problem for so long now i cant see the wood for the trees.
at my Oracle 11gR2 (11.2.0.3.0) Instance i have two tablespaces that i want to "bundle" into only one tablespace. Herre is the problem, that some of the tables in the two tbalespaces has the same title but some rows of the tables could be not the same.
Is it possible with a kind of migration assistent to migrate two tablespaces into one in that way, that theassistent only writes that rows into the new tablespace, that are not in the tablespace at the moment.
Another way i was thinking about is to have an insert statement coupled with a select statement. The select statement selects all the rows, that are not in the table where i want to migrate in and the insert statement put that selectet rows into the new table.
Is something of that possible?
I've got one database which was Initially upgraded from Oracle 8i to 10.2.04 running on windows. Most of the tabespaces are Dictionary managed. Do you think moving them to locally managed tablespace would give me better performance?
if Yes, what approach I should apply to move them to locally managed? I would like to do this with minimum/no downtime.
I'm supposed to create a database for an application. The server where this will be running previously had a database for a pretty similar app. I don't know much about Oracle so I reused the ZFS filesystems and left them how they were created (because honestly, I didn't knew why they were created that way, but I'm pretty sure it was for a good reason).
CODEapp/oradata_smart_ora1 858M 12.2G 858M /oradata/SMART/ora1
app/oradata_smart_ora2 7.18M 18.0G 7.18M /oradata/SMART/ora2
app/oradata_smart_ora3 7.18M 36.0G 7.18M /oradata/SMART/ora3
app/oradata_smart_ora4 60.6K 400G 60.6K /oradata/SMART/ora4
app/oradata_smart_redo1 400M 2.61G 400M /oradata/SMART/redo1
app/oradata_smart_redo2 200M 2.80G 200M /oradata/SMART/redo2
app/oradata_smart_redo3 200M 2.80G 200M /oradata/SMART/redo3
Since I reused the filesystems I created my database and placed the controlfiles in the same places where the old database files were (/oradata/SMART/ora1,/oradata/SMART/ora2,/oradata/SMART/ora3). Thinking like MySQL works I created CODEapp/oradata_smart_ora4 60.6K 400G 60.6K /oradata/SMART/ora4 specifically to store the database there.
The databases startups and mounts no problem. Note that this server will manage with millions/billions records throughout its lifetime.
1. Now that my Database is created, whats the next step? Create the Schema or Tablespace?
2. Tablespace Questions: Tablespace datafile(s) is where actual data from tables is stored? how many are needed? Default or Temporary? How much space will I need for it? Autoextend?
I have a Physical Standby database on server#2 which has its UNDO and TEMP tablespaces in a mount point that is a bit small. I discovered yesterday that this mount point was completely filled. This is not an immediate problem, because even though the TEMP and UNDO tablespaces are large, there is almost no usage of them.
I logged into my Primary, and created a new temp tablespace (TEMP2), made it the database default, dropped the TEMP tablespace, and then re-created the TEMP tablespace in a different mount point (with a much higher capacity!). I then made the new TEMP as the database default temp tablespace again. I expected that these changes would be propagated over to the Physical Standby via log application, but they didn't come over.
I have standby_file_management set to AUTO, and there are no unapplied logs. Everything OTHER than the temp tablespaces seems to be in synch.
I created table that is range partitioned:
CODEPARTITION t1p1 VALUES LESS THAN (TO_DATE('2011-11-01', 'YYYY-MM-DD'))
PARTITION t1p2 VALUES LESS THAN (TO_DATE('2011-11-02', 'YYYY-MM-DD'))
....
PARTITION t1p4 VALUES LESS THAN (MAXVALUE)
Every year partitions will be added for next 12 month. The table partition will be dropped every month (I have to have data from last six month so in July I could drop partition t1p1, in August - t1p2....). How many tablespaces should I create for this table and how place partitions in them to have data for last six month and use minimum space on disk?
I was thinking about one tablespace for whole table because space of each dropped partition will be reused, what do you think about that?
Is the tablespace actually off-line when doing a user-managed hot backup? I know the data blocks are copied into a redo stream but I am not sure if that means it(tablespace) is actually on-line or off-line.
View 6 Replies View RelatedWe are migrating from 10.2.0.5 to 11.2.0.3 (hp-ux to RHEL). Is it possible to transport tablespaces without data, with just table structures?
(Just like we do in export rows=n)
I have deleted lots of data from existing tables in one tablespace. shrink or coalesce the size of the tablespace.
View 7 Replies View RelatedI need to create a shell script to find the free space of an auto extensible tablespaces and send an alert when the free space is < 700MB. I tried checking with the dba_free_space, but I did not get the exact free space.
Tell me the logic to find the exact free space of autoextensible enabled tablespaces?
I just want to know what are precautionary measures if tablespaces in a database is in autoextend mode. I'm wondering if these tablespaces reached its maximum sizes.
In our case, we are administering a database (turned over by our outsourcer after a 2-year maintenance) with SAP interface, and we noticed that most of it's tablespaces were created with initial size of 2Gb up to a maximum size of 10Gb, all were 'autoextensible'.
How to find out the tablespaces specific to application (i.e. not related to oracle like system, sysaux,temp,undo etc..)
View 1 Replies View Relatedi am looking for a free download by oracle meant specifically for Linux. i am using fedora core 5 32 bit version of Linux.
View 1 Replies View RelatedI have a business need to have a db function that would construct and return a (temporary) CLOB value.
here is its sample code:
create or replace package PKG_TEST_CLOB
as
function FN_TEST_TEMP_CLOB
return clob;
[code]....
when this function is invoked from a SQL Statement...
***
select PKG_TEST_CLOB.FN_TEST_TEMP_CLOB from dual;
***
... the NOCACHE_LOBS counter in V$TEMPORARY_LOBS for my session is incremented by 1
when this function is invoked via a PL/SQL block...
***
declare
l_clob clob;
begin
select PKG_TEST_CLOB.FN_TEST_TEMP_CLOB into l_clob from dual;
end;
/
declare
[code]....
... the counter doesn't budge
In real life, this function will be used by a Reporting Tool (cognos) via SQL. I tested it, and it seems that it is allocating a new temp lob segment with every invocation.
My company brought Oracle10g server some years ago. I've noticed that ODAC support Linq and could be used to connect Oracle 10g.
Can we use ODAC 11.2 Release 4 (11.2.0.3.0) with Oracle Developer Tools for Visual Studio for commerical use due we already purchased Oracle 10g server?
1-how can i alter/change the size of tablespaces?.
2-is any changing in tablespace size will effect the over all performance?
Tablespace ; Size (MB); Free (MB); % Free; % Used
------------------------------;----------;----------;----------;----------
USERS ; 5; 4; 80; 20
SYSAUX ; 600; 140.875; 23; 77
UNDOTBS1 ; 640; 114.125; 18; 82
SYSTEM ; 700; 28.3125; 4; 96
TEMP ; 64; 0; 0; 100
We are creating non standard blocking size for 16k and so accordingly have to set the parameter db_16k_cache_size.
if have any thumb rule for setting the value for this parameter.
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
[code]........
Have a script that can emulate my above output and also deal with tablespaces that can autotallocate?
Version: 11.2.0.2/RHEL 5.4
I was under the impression that you need only one UNDO Tablespace for each instance. But , for our 2-node RAC, I can see three Undo tablespaces.
SQL> select tablespace_name,status from dba_tablespaces where CONTENTS = 'UNDO';
TABLESPACE_NAME STATUS
------------------------------ ---------
UNDOTBS1 ONLINE
UNDOTBS2 ONLINE
UNDOTBS3 ONLINE
SQL> select distinct inst_id from gv$session;
INST_ID
----------
1
2
$ olsnodes -n
thclst214 1
thclst215 2
I am using EXPDP to export a schema (Oracle 11g R2), and I need to exclude all the tablespaces that the schema is using. I have seen exluding Oracle objects like functions, tables, packages, indexes...etc. But I have not seen excluding tablespaces.Iis it possible to exclude tablespaces while creating the export dump?
View 5 Replies View Relatedi have altered the sga_max_size to 2gb.i found the system free memory is also decreased.Is system free memory changes when sga_max_size is changes?
View 1 Replies View Relatedfrom where I can free download Oracle 9i Forms And Reports.
View 2 Replies View Relatedfor some reason,i want to know which data block contains free space,or which table/index contains free space.
View 6 Replies View RelatedOne tablespace used in two different schemas ,in this case how much space used,free space and persentage of used in each schema level.
Example: USERS tablespace used in two different schemas HR,SCOTT. in this suche case to find the total size of tablespace, used and free space of each schema level.I used the below query not giving appropriate result.
SELECT TABLESPACE_NAME,
OWNER, round(SUM(BYTES/1024/1024),2) "Used Space in MB"
FROM DBA_SEGMENTS
where tablespace_name not in ('SYSTEM','TEMP','SYSAUX','EXAMPLE','UNDOTBS1')
group by tablespace_name,owner
order by tablespace_name
is it possible to get information about free space on drive/path for example with some DBMS_*, UTL_* package or with stored function based on Java
(e.g. CREATE OR REPLACE FUNCTION GetFreeSpace(driveLetter IN VARCHAR2) RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'DiskSpace.getFreeBytes(java.lang.String) return java.lang.String') but for JDK 1.3
I am trying to restore to a backup instance on a backup server. When I try to recreate the tables I keep getting ORA-01659: unable to allocate MINEXTENTS. The tablespaces and datafiles on both servers show as the same size in OEM.
I have dropped all tables and OEM shows tablespaces are empty. Then I run a script to recreate all tables. Most of the tables don't get created because their TS is full. After the script to recreate all tables runs, the main tablespaces are full, more full than on the production machine. I have also tried ALTER TABLESPACE xxx COALESCE; on each tablespace right after dropping all tables and before recreating them to reclaim free space. Why is it full? I've only dropped and created the tables, there shouldn't be any data in them yet.
ORA-01659: unable to allocate MINEXTENTS beyond 2 in tablespace PLUS_T...The backup instance was already there, all I did was drop the tables. Here's what I ran on prod to build a script to recreate the tables on backup server. Got it off Burleson somewhere.
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) ||'; '
FROM USER_TABLES u;