Tuesday 14 June 2022

How to monitor the impdp progress?

 Below queries are very useful: 


select owner_name, job_name, operation, job_mode

from dba_datapump_jobs

where state='EXECUTING' ;



select v.status, v.sid,v.serial#,io.block_changes,event
from v$sess_io io, v$session v
where io.sid = v.sid
and v.saddr in (
select saddr
from dba_datapump_sessions
) order by sid;

select s.sid, s.module, s.state,
substr(s.event, 1, 21) as event,
s.seconds_in_wait as secs,
substr(sql.sql_text, 1, 30) as sql_text
from v$session s
join v$sql sql on sql.sql_id = s.sql_id
where s.module like 'Data Pump%'
order by s.module, s.sid;




Tuesday 7 June 2022

Using the UNNESThint to join 2 tables in a non exist subquery

 


create table NEW_TABLE NOLOGGING

as

select  * from Table1 d 

where not exists

(select /*+ UNNEST */

* from  sa where d.cfr_ban= sa.ban and d.cfr_subscriber_no= sa.subscriber_no and sa.soc= d.cfr_p2 and sa.soc_seq_no = d.cfr_p3);


 The plan is:

------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                     | Name                   | Rows  | Bytes | Cost  | Pstart| Pstop |
------------------------------------------------------------------------------------------------------------------------
|   0 | CREATE TABLE STATEMENT                        |                        |       |       |     4 |       |       |
|   1 |  LOAD AS SELECT                               | NEW_TABLE   |       |       |       |       |       |
|   2 |   OPTIMIZER STATISTICS GATHERING              |                        |     3 |   735 |     3 |       |       |
|   3 |    NESTED LOOPS ANTI                          |                        |     3 |   735 |     3 |       |       |
|   4 |     TABLE ACCESS FULL                         | TABLE1            |     3 |   633 |     2 |       |       |
|*  5 |     TABLE ACCESS BY GLOBAL INDEX ROWID BATCHED| SERVICE_AGREEMENT      |     1 |    34 |     1 | ROWID | ROWID |
|*  6 |      INDEX RANGE SCAN                         | SA_99IX |   433K|       |     1 |       |       |
------------------------------------------------------------------------------------------------------------------------

Monday 6 June 2022

How to allocate initial extent for a partitioned table?

 

In case the parameter deferred_segment_creation is defined as TRUE, the initial extent will only be allocated whenever the data is inserted into the table.

 But how do we do this manually, if needed?

SQL> alter table MY_TABLE allocate extent;

or if the table is partitioned:

SQL> alter table MY_PART_TABLE modify partition   PR001  allocate extent;

Friday 3 June 2022

Oracle keeps writing to a trace file and is becoming huge; how do we take care of this?

 The trace file is   MYDB_tt01_61001.trc and it's 8 GB in size.


>cp /dev/null MYDB_tt01_61001.trc

>du -sk MYDB_tt01_61001.trc

4


 Magic :-)