<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>http://www.emigar.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiSysop</id>
	<title>Emigar - Contributi dell&#039;utente [it]</title>
	<link rel="self" type="application/atom+xml" href="http://www.emigar.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiSysop"/>
	<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php/Speciale:Contributi/WikiSysop"/>
	<updated>2026-05-23T22:54:52Z</updated>
	<subtitle>Contributi dell&amp;#039;utente</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6172</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6172"/>
		<updated>2026-05-22T13:24:18Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Per 10.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
 col job_name for a40&lt;br /&gt;
&lt;br /&gt;
 col owner for a15&lt;br /&gt;
 col last_start_date for a30&lt;br /&gt;
 col next_run_date for a30&lt;br /&gt;
 col start_date for a30&lt;br /&gt;
 alter session set nls_timestamp_tz_format=&#039;DD/MM/YYYY HH24:MI:SS.FF TZH&#039;;&lt;br /&gt;
 select job_name, owner, enabled, state, failure_count, LAST_START_DATE, NEXT_RUN_DATE, START_DATE from dba_scheduler_jobs order by last_start_date;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Per 10.2===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name),&lt;br /&gt;
 tsh as (select tablespace_name,round(sum(bytes_used)/(1024*1024)) used,round(sum(bytes_free)/(1024*1024)) free from v$temp_space_header group by tablespace_name)&lt;br /&gt;
select&lt;br /&gt;
        t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
        f.mba,&lt;br /&gt;
        f.max,&lt;br /&gt;
        tsh.used mballoc,&lt;br /&gt;
        tsh.free mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join tsh on (tsh.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;èéà°òç½€&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;ÈÉÀ°ÒÇ½€&#039;)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
\00E8\00E9\00E0\00B0\00F2\00E7\00BD\20AC&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6171</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6171"/>
		<updated>2026-05-22T13:23:38Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Per 10.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
 col job_name for a40&lt;br /&gt;
&lt;br /&gt;
 col owner for a15&lt;br /&gt;
 col last_start_date for a30&lt;br /&gt;
 col next_run_date for a30&lt;br /&gt;
 col start_date for a30&lt;br /&gt;
 alter session set nls_timestamp_tz_format=&#039;DD/MM/YYYY HH24:MI:SS.FF TZH&#039;;&lt;br /&gt;
 select job_name, owner, enabled, state, failure_count, LAST_START_DATE, NEXT_RUN_DATE, START_DATE from dba_scheduler_jobs order by last_start_date;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Per 10.2==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name),&lt;br /&gt;
 tsh as (select tablespace_name,round(sum(bytes_used)/(1024*1024)) used,round(sum(bytes_free)/(1024*1024)) free from v$temp_space_header group by tablespace_name)&lt;br /&gt;
select&lt;br /&gt;
        t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
        f.mba,&lt;br /&gt;
        f.max,&lt;br /&gt;
        tsh.used mballoc,&lt;br /&gt;
        tsh.free mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join tsh on (tsh.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;èéà°òç½€&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;ÈÉÀ°ÒÇ½€&#039;)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
\00E8\00E9\00E0\00B0\00F2\00E7\00BD\20AC&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6170</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6170"/>
		<updated>2026-05-22T12:30:53Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Per 10.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
 col job_name for a40&lt;br /&gt;
&lt;br /&gt;
 col owner for a15&lt;br /&gt;
 col last_start_date for a30&lt;br /&gt;
 col next_run_date for a30&lt;br /&gt;
 col start_date for a30&lt;br /&gt;
 alter session set nls_timestamp_tz_format=&#039;DD/MM/YYYY HH24:MI:SS.FF TZH&#039;;&lt;br /&gt;
 select job_name, owner, enabled, state, failure_count, LAST_START_DATE, NEXT_RUN_DATE, START_DATE from dba_scheduler_jobs order by last_start_date;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Per 10.2==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name),&lt;br /&gt;
 tsh as (select tablespace_name,round(sum(bytes_used)/(1024*1024)) used,round(sum(bytes_free)/(1024*1024)) free from v$temp_space_header group by tablespace_name)&lt;br /&gt;
select&lt;br /&gt;
        t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
        f.mba,&lt;br /&gt;
        f.max,&lt;br /&gt;
        tsh.used,&lt;br /&gt;
        tsh.free&lt;br /&gt;
   from tf f&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join tsh on (tsh.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;èéà°òç½€&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;ÈÉÀ°ÒÇ½€&#039;)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
\00E8\00E9\00E0\00B0\00F2\00E7\00BD\20AC&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6169</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6169"/>
		<updated>2026-05-22T12:29:27Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Controllo Allocazione Spazio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
 col job_name for a40&lt;br /&gt;
&lt;br /&gt;
 col owner for a15&lt;br /&gt;
 col last_start_date for a30&lt;br /&gt;
 col next_run_date for a30&lt;br /&gt;
 col start_date for a30&lt;br /&gt;
 alter session set nls_timestamp_tz_format=&#039;DD/MM/YYYY HH24:MI:SS.FF TZH&#039;;&lt;br /&gt;
 select job_name, owner, enabled, state, failure_count, LAST_START_DATE, NEXT_RUN_DATE, START_DATE from dba_scheduler_jobs order by last_start_date;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Per 10.2==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name),&lt;br /&gt;
 tsh as (select tablespace_name,sum(s.bytes_used)/(1024*1024) used,sum(s.bytes_free)/(1024*1024) free from v$temp_space_header group by tablespace_name)&lt;br /&gt;
select&lt;br /&gt;
        t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
        f.mba,&lt;br /&gt;
        f.max,&lt;br /&gt;
        tsh.used,&lt;br /&gt;
        tsh.free&lt;br /&gt;
   from tf f&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join tsh on (tsh.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;èéà°òç½€&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;ÈÉÀ°ÒÇ½€&#039;)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
\00E8\00E9\00E0\00B0\00F2\00E7\00BD\20AC&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6168</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6168"/>
		<updated>2026-05-22T12:28:56Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Controllo Allocazione Spazio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
 col job_name for a40&lt;br /&gt;
&lt;br /&gt;
 col owner for a15&lt;br /&gt;
 col last_start_date for a30&lt;br /&gt;
 col next_run_date for a30&lt;br /&gt;
 col start_date for a30&lt;br /&gt;
 alter session set nls_timestamp_tz_format=&#039;DD/MM/YYYY HH24:MI:SS.FF TZH&#039;;&lt;br /&gt;
 select job_name, owner, enabled, state, failure_count, LAST_START_DATE, NEXT_RUN_DATE, START_DATE from dba_scheduler_jobs order by last_start_date;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per 10.2&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;èéà°òç½€&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;ÈÉÀ°ÒÇ½€&#039;)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
\00E8\00E9\00E0\00B0\00F2\00E7\00BD\20AC&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6167</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6167"/>
		<updated>2026-05-22T11:11:40Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Job Immediato */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
 col job_name for a40&lt;br /&gt;
&lt;br /&gt;
 col owner for a15&lt;br /&gt;
 col last_start_date for a30&lt;br /&gt;
 col next_run_date for a30&lt;br /&gt;
 col start_date for a30&lt;br /&gt;
 alter session set nls_timestamp_tz_format=&#039;DD/MM/YYYY HH24:MI:SS.FF TZH&#039;;&lt;br /&gt;
 select job_name, owner, enabled, state, failure_count, LAST_START_DATE, NEXT_RUN_DATE, START_DATE from dba_scheduler_jobs order by last_start_date;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;èéà°òç½€&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;ÈÉÀ°ÒÇ½€&#039;)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
\00E8\00E9\00E0\00B0\00F2\00E7\00BD\20AC&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6166</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6166"/>
		<updated>2026-05-22T11:05:41Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Job Immediato */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
 col job_name for a40&lt;br /&gt;
&lt;br /&gt;
 col owner for a15&lt;br /&gt;
 col last_start_date for a42&lt;br /&gt;
 col next_run_date for a42&lt;br /&gt;
 col start_date for a42&lt;br /&gt;
 alter session set nls_timestamp_tz_format=&#039;DD/MM/YYYY HH24:MI:SS.FF TZR&#039;;&lt;br /&gt;
 select job_name, owner, enabled, state, LAST_START_DATE, NEXT_RUN_DATE, START_DATE from dba_scheduler_jobs order by 4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;èéà°òç½€&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;ÈÉÀ°ÒÇ½€&#039;)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
\00E8\00E9\00E0\00B0\00F2\00E7\00BD\20AC&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6165</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6165"/>
		<updated>2026-05-22T10:39:47Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Job */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
 select job_name, owner, enabled, LAST_START_DATE, NEXT_RUN_DATE, START_DATE from dba_scheduler_jobs order by 4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;èéà°òç½€&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;ÈÉÀ°ÒÇ½€&#039;)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
\00E8\00E9\00E0\00B0\00F2\00E7\00BD\20AC&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6164</id>
		<title>Oracle startup script</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6164"/>
		<updated>2026-05-20T16:07:06Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* /etc/init.d/oracle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==/etc/init.d/oracle==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# chkconfig: 2345 29 20&lt;br /&gt;
# description: start Oracle RDBMS at system boot&lt;br /&gt;
#&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides: oracle&lt;br /&gt;
# Required-Stop:&lt;br /&gt;
# Default-Start: 2 3 5&lt;br /&gt;
# Default-Stop:&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
    start)&lt;br /&gt;
        su - oracle -c &amp;quot;&lt;br /&gt;
        ORACLE_SID=ORCL&lt;br /&gt;
        ORAENV_ASK=NO&lt;br /&gt;
        export ORACLE_SID ORAENV_ASK&lt;br /&gt;
        . oraenv&lt;br /&gt;
        lsnrctl start LISTENER&lt;br /&gt;
        echo startup | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
    stop)&lt;br /&gt;
    ;;&lt;br /&gt;
	*)&lt;br /&gt;
	    echo &amp;quot;Usage: $0 {start|stop|restart|status}&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Upstart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# description &amp;quot;start and stop oracle instance&amp;quot;&lt;br /&gt;
&lt;br /&gt;
start on runlevel [3]&lt;br /&gt;
stop on runlevel [!3]&lt;br /&gt;
&lt;br /&gt;
console log&lt;br /&gt;
chdir /home/oracle&lt;br /&gt;
setuid oracle&lt;br /&gt;
setgid oinstall&lt;br /&gt;
expect fork&lt;br /&gt;
&lt;br /&gt;
env ORACLE_BASE=/u01/app/oracle&lt;br /&gt;
env ORACLE_SID=ORCL&lt;br /&gt;
env ORAENV_ASK=NO&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo startup | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl start LISTENER&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-stop script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 echo &#039;shutdown immediate&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl stop LISTENER&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==systemd==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;br /&gt;
[[Categoria:OpenSource]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6163</id>
		<title>Oracle startup script</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6163"/>
		<updated>2026-05-20T16:06:04Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* /etc/init.d/oracle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==/etc/init.d/oracle==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# chkconfig: 2345 29 20&lt;br /&gt;
# description: start Oracle RDBMS at system boot&lt;br /&gt;
#&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides: oracle&lt;br /&gt;
# Required-Stop:&lt;br /&gt;
# Default-Start: 2 3 5&lt;br /&gt;
# Default-Stop:&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
    start)&lt;br /&gt;
        su - oracle -c &amp;quot;&lt;br /&gt;
        ORACLE_SID=&lt;br /&gt;
        ORAENV_ASK=NO&lt;br /&gt;
        export ORACLE_SID ORAENV_ASK&lt;br /&gt;
        . oraenv&lt;br /&gt;
        lsnrctl start LISTENER&lt;br /&gt;
        echo startup | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
    stop)&lt;br /&gt;
    ;;&lt;br /&gt;
	*)&lt;br /&gt;
	    echo &amp;quot;Usage: $0 {start|stop|restart|status}&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Upstart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# description &amp;quot;start and stop oracle instance&amp;quot;&lt;br /&gt;
&lt;br /&gt;
start on runlevel [3]&lt;br /&gt;
stop on runlevel [!3]&lt;br /&gt;
&lt;br /&gt;
console log&lt;br /&gt;
chdir /home/oracle&lt;br /&gt;
setuid oracle&lt;br /&gt;
setgid oinstall&lt;br /&gt;
expect fork&lt;br /&gt;
&lt;br /&gt;
env ORACLE_BASE=/u01/app/oracle&lt;br /&gt;
env ORACLE_SID=ORCL&lt;br /&gt;
env ORAENV_ASK=NO&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo startup | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl start LISTENER&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-stop script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 echo &#039;shutdown immediate&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl stop LISTENER&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==systemd==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;br /&gt;
[[Categoria:OpenSource]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6162</id>
		<title>Oracle startup script</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6162"/>
		<updated>2026-05-20T16:05:21Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* /etc/init.d/oracle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==/etc/init.d/oracle==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# chkconfig: 2345 29 20&lt;br /&gt;
# description: start Oracle RDBMS at system boot&lt;br /&gt;
#&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides: oracle&lt;br /&gt;
# Required-Stop:&lt;br /&gt;
# Default-Start: 2 3 5&lt;br /&gt;
# Default-Stop:&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
    start)&lt;br /&gt;
        ORACLE_SID=&lt;br /&gt;
        ORAENV_ASK=NO&lt;br /&gt;
        export ORACLE_SID ORAENV_ASK&lt;br /&gt;
        . oraenv&lt;br /&gt;
        lsnrctl start LISTENER&lt;br /&gt;
        echo startup | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
	;;&lt;br /&gt;
    stop)&lt;br /&gt;
    ;;&lt;br /&gt;
	*)&lt;br /&gt;
	    echo &amp;quot;Usage: $0 {start|stop|restart|status}&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Upstart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# description &amp;quot;start and stop oracle instance&amp;quot;&lt;br /&gt;
&lt;br /&gt;
start on runlevel [3]&lt;br /&gt;
stop on runlevel [!3]&lt;br /&gt;
&lt;br /&gt;
console log&lt;br /&gt;
chdir /home/oracle&lt;br /&gt;
setuid oracle&lt;br /&gt;
setgid oinstall&lt;br /&gt;
expect fork&lt;br /&gt;
&lt;br /&gt;
env ORACLE_BASE=/u01/app/oracle&lt;br /&gt;
env ORACLE_SID=ORCL&lt;br /&gt;
env ORAENV_ASK=NO&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo startup | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl start LISTENER&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-stop script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 echo &#039;shutdown immediate&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl stop LISTENER&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==systemd==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;br /&gt;
[[Categoria:OpenSource]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6161</id>
		<title>Oracle startup script</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6161"/>
		<updated>2026-05-20T16:04:43Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* /etc/init.d/oracle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==/etc/init.d/oracle==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# chkconfig: 2345 29 20&lt;br /&gt;
# description: start Oracle RDBMS at system boot&lt;br /&gt;
#&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides: oracle&lt;br /&gt;
# Required-Stop:&lt;br /&gt;
# Default-Start: 2 3 5&lt;br /&gt;
# Default-Stop:&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
    start)&lt;br /&gt;
        ORACLE_SID=&lt;br /&gt;
        ORAENV_ASK=NO&lt;br /&gt;
        export ORACLE_SID ORAENV_ASK&lt;br /&gt;
        . oraenv&lt;br /&gt;
        lsnrctl start LISTENER&lt;br /&gt;
        echo startup | &lt;br /&gt;
	;;&lt;br /&gt;
    stop)&lt;br /&gt;
    ;;&lt;br /&gt;
	*)&lt;br /&gt;
	    echo &amp;quot;Usage: $0 {start|stop|restart|status}&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Upstart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# description &amp;quot;start and stop oracle instance&amp;quot;&lt;br /&gt;
&lt;br /&gt;
start on runlevel [3]&lt;br /&gt;
stop on runlevel [!3]&lt;br /&gt;
&lt;br /&gt;
console log&lt;br /&gt;
chdir /home/oracle&lt;br /&gt;
setuid oracle&lt;br /&gt;
setgid oinstall&lt;br /&gt;
expect fork&lt;br /&gt;
&lt;br /&gt;
env ORACLE_BASE=/u01/app/oracle&lt;br /&gt;
env ORACLE_SID=ORCL&lt;br /&gt;
env ORAENV_ASK=NO&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo startup | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl start LISTENER&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-stop script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 echo &#039;shutdown immediate&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl stop LISTENER&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==systemd==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;br /&gt;
[[Categoria:OpenSource]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6160</id>
		<title>Oracle startup script</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6160"/>
		<updated>2026-05-20T15:58:39Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==/etc/init.d/oracle==&lt;br /&gt;
&lt;br /&gt;
==Upstart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# description &amp;quot;start and stop oracle instance&amp;quot;&lt;br /&gt;
&lt;br /&gt;
start on runlevel [3]&lt;br /&gt;
stop on runlevel [!3]&lt;br /&gt;
&lt;br /&gt;
console log&lt;br /&gt;
chdir /home/oracle&lt;br /&gt;
setuid oracle&lt;br /&gt;
setgid oinstall&lt;br /&gt;
expect fork&lt;br /&gt;
&lt;br /&gt;
env ORACLE_BASE=/u01/app/oracle&lt;br /&gt;
env ORACLE_SID=ORCL&lt;br /&gt;
env ORAENV_ASK=NO&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo startup | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl start LISTENER&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-stop script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 echo &#039;shutdown immediate&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl stop LISTENER&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==systemd==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;br /&gt;
[[Categoria:OpenSource]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_upstart&amp;diff=6159</id>
		<title>Oracle upstart</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_upstart&amp;diff=6159"/>
		<updated>2026-05-20T15:58:01Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: WikiSysop ha spostato la pagina Oracle upstart a Oracle startup script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#RINVIA [[Oracle startup script]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6158</id>
		<title>Oracle startup script</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_startup_script&amp;diff=6158"/>
		<updated>2026-05-20T15:58:01Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: WikiSysop ha spostato la pagina Oracle upstart a Oracle startup script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Upstart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# description &amp;quot;start and stop oracle instance&amp;quot;&lt;br /&gt;
&lt;br /&gt;
start on runlevel [3]&lt;br /&gt;
stop on runlevel [!3]&lt;br /&gt;
&lt;br /&gt;
console log&lt;br /&gt;
chdir /home/oracle&lt;br /&gt;
setuid oracle&lt;br /&gt;
setgid oinstall&lt;br /&gt;
expect fork&lt;br /&gt;
&lt;br /&gt;
env ORACLE_BASE=/u01/app/oracle&lt;br /&gt;
env ORACLE_SID=ORCL&lt;br /&gt;
env ORAENV_ASK=NO&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo startup | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl start LISTENER&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-stop script&lt;br /&gt;
 . oraenv&lt;br /&gt;
 echo &#039;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 echo &#039;shutdown immediate&#039; | sqlplus &#039;/ as sysdba&#039;&lt;br /&gt;
 lsnrctl stop LISTENER&lt;br /&gt;
&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;br /&gt;
[[Categoria:OpenSource]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_Blocchi_Corrotti&amp;diff=6157</id>
		<title>Oracle Blocchi Corrotti</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_Blocchi_Corrotti&amp;diff=6157"/>
		<updated>2026-05-20T15:48:31Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Lista degli oggetti con blocchi corrotti==&lt;br /&gt;
 SELECT DISTINCT owner, segment_name, partition_name, segment_type, tablespace_name, e.bytes/(1024*1024) mb &lt;br /&gt;
  from v$database_block_corruption dbc &lt;br /&gt;
   JOIN dba_extents e ON dbc.file# = e.file_id AND dbc.block# BETWEEN e.block_id and e.block_id+e.blocks-1 &lt;br /&gt;
  order by 1,2;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_Blocchi_Corrotti&amp;diff=6156</id>
		<title>Oracle Blocchi Corrotti</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_Blocchi_Corrotti&amp;diff=6156"/>
		<updated>2026-05-20T11:59:50Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
 SELECT DISTINCT owner, segment_name, partition_name, segment_type, tablespace_name, e.bytes/(1024*1024) mb &lt;br /&gt;
  from v$database_block_corruption dbc &lt;br /&gt;
   JOIN dba_extents e ON dbc.file# = e.file_id AND dbc.block# BETWEEN e.block_id and e.block_id+e.blocks-1 &lt;br /&gt;
  order by 1,2;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_Blocchi_Corrotti&amp;diff=6155</id>
		<title>Oracle Blocchi Corrotti</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_Blocchi_Corrotti&amp;diff=6155"/>
		<updated>2026-05-20T11:53:07Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Creata pagina con &amp;quot;  SELECT DISTINCT owner, segment_name, partition_name, segment_type, tablespace_name from v$database_block_corruption dbc JOIN dba_extents e ON dbc.file# = e.file_id AND dbc.block# BETWEEN e.block_id and e.block_id+e.blocks-1 order by 1,2;  Categoria:Database Categoria:Oracle&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
 SELECT DISTINCT owner, segment_name, partition_name, segment_type, tablespace_name from v$database_block_corruption dbc JOIN dba_extents e ON dbc.file# = e.file_id AND dbc.block# BETWEEN e.block_id and e.block_id+e.blocks-1 order by 1,2;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6154</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6154"/>
		<updated>2026-05-19T12:35:06Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
[[Oracle_Duplicate_Database|Duplicate Database]]&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Rman script windows=&lt;br /&gt;
==Template per multi retention==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@echo off&lt;br /&gt;
&lt;br /&gt;
for /f &amp;quot;skip=2&amp;quot; %%x in (&#039;wmic Path Win32_LocalTime get Day^,DayOfWeek /Format:List&#039;) do set %%x &amp;gt;NUL&lt;br /&gt;
&lt;br /&gt;
rem echo %Day% %DayOfWeek%&lt;br /&gt;
&lt;br /&gt;
rem Sovrascrivi per prove&lt;br /&gt;
rem set Day=1&lt;br /&gt;
rem set DayOfWeek=1&lt;br /&gt;
&lt;br /&gt;
rem echo %Day% %DayOfWeek%&lt;br /&gt;
&lt;br /&gt;
set BCK=ORD&lt;br /&gt;
if %DayOfWeek% EQU 0 set BCK=LT180&lt;br /&gt;
if %DayOfWeek% EQU 0 if %Day% GTR 7 set BCK=LT35&lt;br /&gt;
&lt;br /&gt;
echo %BCK%&lt;br /&gt;
(&lt;br /&gt;
echo spool log to %BCK%.log&lt;br /&gt;
echo list expired backup;&lt;br /&gt;
echo spool log off;&lt;br /&gt;
) &amp;gt; %BCK%.rman&lt;br /&gt;
&lt;br /&gt;
set ORACLE_SID=XXXXXXX&lt;br /&gt;
set NLS_LANG=ITALIAN_ITALY.WE8MSWIN1252&lt;br /&gt;
set NLS_DATE_FORMAT=DD-MM-YYYY HH24:MI:SS&lt;br /&gt;
&lt;br /&gt;
rman target / nocatalog cmdfile %BCK%.rman&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Rman script linux=&lt;br /&gt;
==Versione multi retention==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# versione 12/09/2014 EG&lt;br /&gt;
&lt;br /&gt;
DAYW=$( date +%w )&lt;br /&gt;
case $DAYW in&lt;br /&gt;
0)&lt;br /&gt;
        LEVEL=&amp;quot; incremental level 0 &amp;quot;&lt;br /&gt;
	DAY=$( date +%d )&lt;br /&gt;
	if [ $DAY -gt 7 ]&lt;br /&gt;
	then &lt;br /&gt;
	  TAG=&amp;quot;LT35LEV0&amp;quot;&lt;br /&gt;
	  KEEP=&amp;quot; keep until time &#039;sysdate+35&#039; &amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
	  TAG=&amp;quot;LT180LEV0&amp;quot;&lt;br /&gt;
	  KEEP=&amp;quot; keep until time &#039;sysdate+180&#039; &amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
        ;;&lt;br /&gt;
*)&lt;br /&gt;
        LEVEL=&amp;quot; incremental level 1 cumulative &amp;quot;&lt;br /&gt;
	TAG=&amp;quot;LEV1&amp;quot;&lt;br /&gt;
	KEEP=&amp;quot;&amp;quot;&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
NLS_DATE_FORMAT=&#039;DD-MM-YYYY HH24:MI:SS&#039;; export NLS_DATE_FORMAT&lt;br /&gt;
NLS_LANG=&#039;ITALIAN_ITALY.WE8ISO8859P15&#039; ; export NLS_LANG&lt;br /&gt;
&lt;br /&gt;
rman target / nocatalog log /tmp/rman_${ORACLE_SID}.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO &#039;/tmp/snapcf_${ORACLE_SID}.f&#039;;&lt;br /&gt;
CONFIGURE CHANNEL DEVICE TYPE &#039;SBT_TAPE&#039; PARMS  &#039;SBT_LIBRARY=/asigra/libdsc_ora_sbt_Linux_x86_64.so,ENV=(CONNECT_INFO=/asigra/parms.txt)&#039;;&lt;br /&gt;
CONFIGURE DEFAULT DEVICE TYPE TO &#039;SBT_TAPE&#039;;&lt;br /&gt;
CONFIGURE CONTROLFILE AUTOBACKUP ON;&lt;br /&gt;
CONFIGURE BACKUP OPTIMIZATION ON;&lt;br /&gt;
&lt;br /&gt;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 22 DAYS;&lt;br /&gt;
&lt;br /&gt;
crosscheck archivelog all;&lt;br /&gt;
crosscheck backup device type sbt;&lt;br /&gt;
backup as compressed backupset &lt;br /&gt;
 archivelog all not backed up 1 times&lt;br /&gt;
   format &#039;ora.%d.%s.%p.%t.%u.arc.rman&#039;&lt;br /&gt;
   filesperset 20 delete all input;&lt;br /&gt;
&lt;br /&gt;
delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
&lt;br /&gt;
backup as compressed backupset&lt;br /&gt;
 ${LEVEL} tag ${TAG} ${KEEP}&lt;br /&gt;
 database&lt;br /&gt;
   format &#039;ora.%d.%s.%p.%t.%u.rman&#039;&lt;br /&gt;
   filesperset 20&lt;br /&gt;
 plus archivelog not backed up 1 times&lt;br /&gt;
   format &#039;ora.%d.%s.%p.%t.%u.arc.rman&#039;&lt;br /&gt;
   filesperset 20 delete all input;&lt;br /&gt;
&lt;br /&gt;
#delete noprompt archivelog until time &#039;sysdate -1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
&lt;br /&gt;
delete noprompt obsolete device type sbt;&lt;br /&gt;
delete noprompt expired backup device type sbt;&lt;br /&gt;
&lt;br /&gt;
ALLOCATE CHANNEL FOR MAINTENANCE TYPE DISK;&lt;br /&gt;
CROSSCHECK BACKUP DEVICE TYPE DISK;&lt;br /&gt;
#CROSSCHECK DATAFILECOPY ALL;&lt;br /&gt;
#DELETE NOPROMPT EXPIRED DATAFILECOPY ALL;&lt;br /&gt;
DELETE NOPROMPT OBSOLETE DEVICE TYPE DISK;&lt;br /&gt;
DELETE NOPROMPT EXPIRED BACKUP DEVICE TYPE DISK;&lt;br /&gt;
RELEASE CHANNEL;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione semplice con recovery window==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo $PATH&lt;br /&gt;
&lt;br /&gt;
PATH=$PATH:/usr/local/bin&lt;br /&gt;
export PATH&lt;br /&gt;
&lt;br /&gt;
#(( LEV = $( date +%w )  &amp;gt; 0 ? 1 : 0 ))&lt;br /&gt;
&lt;br /&gt;
DAYW=$( date +%w )&lt;br /&gt;
DAY=$( date +%d )&lt;br /&gt;
H=$( date +%H )&lt;br /&gt;
if [ $DAYW = 0 -a $H -le 3 ]&lt;br /&gt;
then&lt;br /&gt;
  LEV=0&lt;br /&gt;
else&lt;br /&gt;
  LEV=1&lt;br /&gt;
fi&lt;br /&gt;
NLS_LANG=ITALIAN_ITALY.UTF8 ; export NLS_LANG&lt;br /&gt;
NLS_DATE_FORMAT=&#039;DD/MM/YYYY HH24:MI:SS&#039;&lt;br /&gt;
&lt;br /&gt;
DST=/tmp&lt;br /&gt;
LEVEL=&amp;quot;incremental level ${LEV}&amp;quot;&lt;br /&gt;
TAG=&#039;tag TAG00&#039;&lt;br /&gt;
&lt;br /&gt;
ORACLE_SID=$1 ; export ORACLE_SID&lt;br /&gt;
ORAENV_ASK=NO ; export ORAENV_ASK&lt;br /&gt;
. oraenv&lt;br /&gt;
unset ORAENV_ASK&lt;br /&gt;
&lt;br /&gt;
## 6 ore 600 * 72&lt;br /&gt;
&lt;br /&gt;
if lockfile -60 -r 72 /tmp/backup_rman_${ORACLE_SID}.LCK&lt;br /&gt;
then&lt;br /&gt;
&lt;br /&gt;
rman target / nocatalog trace ${DST}/${ORACLE_SID}_rman_${DAY}_${H}.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO &#039;${DST}/snapcf_${ORACLE_SID}.f&#039;;&lt;br /&gt;
CONFIGURE DEFAULT DEVICE TYPE TO SBT;&lt;br /&gt;
CONFIGURE CHANNEL DEVICE TYPE &#039;SBT_TAPE&#039; PARMS  &#039;SBT_LIBRARY=/asigra/libdsc_ora_sbt_Linux_x86_64.so,ENV=(CONNECT_INFO=/asigra/parms_${ORACLE_SID}.txt)&#039;;&lt;br /&gt;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT TO &#039;%F&#039;;&lt;br /&gt;
CONFIGURE CONTROLFILE AUTOBACKUP ON;&lt;br /&gt;
CONFIGURE BACKUP OPTIMIZATION ON;&lt;br /&gt;
&lt;br /&gt;
CONFIGURE DEVICE TYPE SBT_TAPE PARALLELISM 4 BACKUP TYPE TO COMPRESSED BACKUPSET;&lt;br /&gt;
&lt;br /&gt;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 21 DAYS;&lt;br /&gt;
&lt;br /&gt;
crosscheck archivelog all;&lt;br /&gt;
crosscheck backup device type sbt;&lt;br /&gt;
backup as compressed backupset device type sbt&lt;br /&gt;
 ${LEVEL} ${TAG}&lt;br /&gt;
 database&lt;br /&gt;
   format &#039;ora.%d.%s.%p.%t.%u.db.rman&#039;&lt;br /&gt;
   filesperset 20&lt;br /&gt;
   include current controlfile&lt;br /&gt;
 spfile&lt;br /&gt;
   format &#039;ora.%d.%s.%p.%t.%u.spfile.rman&#039;&lt;br /&gt;
 plus archivelog not backed up 1 times&lt;br /&gt;
   format &#039;ora.%d.%s.%p.%t.%u.arc.rman&#039;&lt;br /&gt;
   filesperset 20 delete all input;&lt;br /&gt;
&lt;br /&gt;
delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
&lt;br /&gt;
delete noprompt expired backup;&lt;br /&gt;
delete noprompt obsolete;&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
rm -f /tmp/backup_rman_${ORACLE_SID}.LCK&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Rman&amp;diff=6153</id>
		<title>Rman</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Rman&amp;diff=6153"/>
		<updated>2026-05-19T12:34:03Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: WikiSysop ha spostato la pagina Rman a Oracle Rman&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#RINVIA [[Oracle Rman]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_Duplicate_Database&amp;diff=6151</id>
		<title>Oracle Duplicate Database</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_Duplicate_Database&amp;diff=6151"/>
		<updated>2026-05-19T12:05:09Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Duplicate via rman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
=Duplicate via rman=&lt;br /&gt;
Si può partire con un spfile creato opportunamente. O si può restorare l&#039;spfile del db originale e modificarlo tramite duplicate (dalla 11 in poi) (preferibile se si duplica su un server diverso)&lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
 ORACLE_SID=TEMP&lt;br /&gt;
 export ORACLE_SID&lt;br /&gt;
 rm -f ${ORACLE_HOME}/dbs/orapwTEMP&lt;br /&gt;
 orapwd file=${ORACLE_HOME}/dbs/orapwTEMP password=temppassword&lt;br /&gt;
 sqlplus &#039;/ as sysdba&#039; &amp;lt;&amp;lt; EOF&lt;br /&gt;
  shutdown abort;&lt;br /&gt;
  create spfile from pfile=&#039;/home/oracle/pfileTEMP.ora&#039;;&lt;br /&gt;
  startup nomount;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 ORACLE_SID=DBNAME&lt;br /&gt;
 export ORACLE_SID&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
   allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
   allocate auxiliary channel dd1 type sbt;&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/oradata/DBNAME/&#039;,&#039;/oradata2/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=Duplicate PDB=&lt;br /&gt;
&lt;br /&gt;
[[Oracle_Conversione_a_PDB|Conversione a pdb]]&lt;br /&gt;
&lt;br /&gt;
* creare utente con privilegio &lt;br /&gt;
* aprire il database sorgente in read only&lt;br /&gt;
* creare dblink nel cdb$root del container di destinazione verso DB sorgente&lt;br /&gt;
* comando di copia&lt;br /&gt;
* se di versione precedente, aggiornare catalogo&lt;br /&gt;
* se il sorgente è non CDB/PDB, convertire in PDB&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_Duplicate_Database&amp;diff=6150</id>
		<title>Oracle Duplicate Database</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_Duplicate_Database&amp;diff=6150"/>
		<updated>2026-05-19T12:03:30Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Duplicate via rman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
=Duplicate via rman=&lt;br /&gt;
Si può partire con un spfile creato opportunamente. O si può restorare l&#039;spfile del db originale e modificarlo tramite duplicate (dalla 11 in poi) (preferibile se si duplica su un server diverso)&lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
 ORACLE_SID=TEMP&lt;br /&gt;
 export ORACLE_SID&lt;br /&gt;
 rm -f ${ORACLE_HOME}/dbs/orapwTEMP&lt;br /&gt;
 orapwd file=${ORACLE_HOME}/dbs/orapwTEMP password=temppassword&lt;br /&gt;
 sqlplus &#039;/ as sysdba&#039; &amp;lt;&amp;lt; EOF&lt;br /&gt;
  shutdown abort;&lt;br /&gt;
  create spfile from pfile=&#039;/home/oracle/pfileTEMP.ora&#039;;&lt;br /&gt;
  startup nomount;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
   allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
   allocate auxiliary channel dd1 type sbt;&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/oradata/DBNAME/&#039;,&#039;/oradata2/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=Duplicate PDB=&lt;br /&gt;
&lt;br /&gt;
[[Oracle_Conversione_a_PDB|Conversione a pdb]]&lt;br /&gt;
&lt;br /&gt;
* creare utente con privilegio &lt;br /&gt;
* aprire il database sorgente in read only&lt;br /&gt;
* creare dblink nel cdb$root del container di destinazione verso DB sorgente&lt;br /&gt;
* comando di copia&lt;br /&gt;
* se di versione precedente, aggiornare catalogo&lt;br /&gt;
* se il sorgente è non CDB/PDB, convertire in PDB&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6149</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6149"/>
		<updated>2026-05-19T12:03:16Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Duplicate Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
[[Oracle_Duplicate_Database|Duplicate Database]]&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6148</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6148"/>
		<updated>2026-05-19T11:59:24Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* 10gR2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
Si può partire con un spfile creato opportunamente. O si può restorare l&#039;spfile del db originale e modificarlo tramite duplicate (dalla 11 in poi) (preferibile se si duplica su un server diverso)&lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
 ORACLE_SID=TEMP&lt;br /&gt;
 export ORACLE_SID&lt;br /&gt;
 rm -f ${ORACLE_HOME}/dbs/orapwTEMP&lt;br /&gt;
 orapwd file=${ORACLE_HOME}/dbs/orapwTEMP password=temppassword&lt;br /&gt;
 sqlplus &#039;/ as sysdba&#039; &amp;lt;&amp;lt; EOF&lt;br /&gt;
  shutdown abort;&lt;br /&gt;
  create spfile from pfile=&#039;/home/oracle/pfileTEMP.ora&#039;;&lt;br /&gt;
  startup nomount;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
   allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
   allocate auxiliary channel dd1 type sbt;&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/oradata/DBNAME/&#039;,&#039;/oradata2/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6147</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6147"/>
		<updated>2026-05-19T11:58:34Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* 10gR2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
Si può partire con un spfile creato opportunamente. O si può restorare l&#039;spfile del db originale e modificarlo tramite duplicate (dalla 11 in poi) (preferibile se si duplica su un server diverso)&lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
 ORACLE_SID=TEMP&lt;br /&gt;
 export ORACLE_SID&lt;br /&gt;
 rm -f ${ORACLE_HOME}/dbs/orapwTEMP&lt;br /&gt;
 orapwd file=${ORACLE_HOME}/dbs/orapwTEMP password=temppassword&lt;br /&gt;
 sqlplus &#039;/ as sysdba&#039; &amp;lt;&amp;lt; EOF&lt;br /&gt;
  shutdown abort;&lt;br /&gt;
  create spfile from pfile=&#039;/home/oracle/pfileTEMP.ora&#039;;&lt;br /&gt;
  startup nomount;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
   allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
   allocate auxiliary channel dd1 type sbt;&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/oradata/DBNAME/&#039;,&#039;/oradata2/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6146</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6146"/>
		<updated>2026-05-19T11:55:31Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Duplicate Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
Si può partire con un spfile creato opportunamente. O si può restorare l&#039;spfile del db originale e modificarlo tramite duplicate (dalla 11 in poi) (preferibile se si duplica su un server diverso)&lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
   allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
   allocate auxiliary channel dd1 type sbt;&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/oradata/DBNAME/&#039;,&#039;/oradata2/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6145</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6145"/>
		<updated>2026-05-19T11:53:34Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* 10gR2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
Si può partire con un spfile creato opportunamente. O si può restorare l&#039;spfile del db originale e modificarlo tramite duplicate (preferibile se si duplica su un server diverso)&lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
   allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
   allocate auxiliary channel dd1 type sbt;&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/oradata/DBNAME/&#039;,&#039;/oradata2/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/oradata2/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6144</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6144"/>
		<updated>2026-05-19T11:50:32Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* 10gR2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
Si può partire con un spfile creato opportunamente. O si può restorare l&#039;spfile del db originale e modificarlo tramite duplicate (preferibile se si duplica su un server diverso)&lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
   allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
   allocate auxiliary channel dd1 type sbt;&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/ora_data/DBNAME/&#039;,&#039;/mnt/temp_restore/db/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6143</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6143"/>
		<updated>2026-05-19T11:50:10Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* 10gR2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
Si può partire con un spfile creato opportunamente. O si può restorare l&#039;spfile del db originale e modificarlo tramite duplicate (preferibile se si duplica su un server diverso)&lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
  allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
  allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/ora_data/DBNAME/&#039;,&#039;/mnt/temp_restore/db/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6142</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6142"/>
		<updated>2026-05-19T11:49:51Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Duplicate Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
Si può partire con un spfile creato opportunamente. O si può restorare l&#039;spfile del db originale e modificarlo tramite duplicate (preferibile se si duplica su un server diverso)&lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;(code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
  allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
  allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/ora_data/DBNAME/&#039;,&#039;/mnt/temp_restore/db/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6141</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6141"/>
		<updated>2026-05-19T11:48:55Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Duplicate Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
Si può partire con un spfile &lt;br /&gt;
&lt;br /&gt;
===10gR2===&lt;br /&gt;
Creato spfile dell&#039;istanza AUXILIARY, e creato passwordfile, modificata entry nel &amp;lt;code&amp;gt;listener.ora&amp;lt;(code&amp;gt; e &amp;lt;code&amp;gt;tnsnames.ora&amp;lt;/code&amp;gt; &lt;br /&gt;
per consentire connessione via listener alla AUXILIARY.&lt;br /&gt;
impostato con &amp;lt;code&amp;gt;. oraenv&amp;lt;/code&amp;gt; la connessione al target (database da duplicare). Il database duplicato verrà generato nell&#039;istanza AUXILIARY.&lt;br /&gt;
&lt;br /&gt;
 rman target / auxiliary sys/temppassword@TEMP nocatalog trace duplicate.log &amp;lt;&amp;lt; EOF&lt;br /&gt;
 run&lt;br /&gt;
 {&lt;br /&gt;
  allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
  allocate auxiliary channel dd0 type sbt;&lt;br /&gt;
&lt;br /&gt;
   DUPLICATE TARGET DATABASE TO TEMP&lt;br /&gt;
    DB_FILE_NAME_CONVERT (&#039;/ora_data/DBNAME/&#039;,&#039;/mnt/temp_restore/db/TEMP/&#039;)&lt;br /&gt;
    UNTIL LOGSEQ 1011237 THREAD 1&lt;br /&gt;
    LOGFILE&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log01.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log02.dbf&#039; size 512M,&lt;br /&gt;
      &#039;/mnt/temp_restore/db/TEMP/onlinelog/log03.dbf&#039; size 512M&lt;br /&gt;
   ;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6140</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6140"/>
		<updated>2026-05-18T08:53:44Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* backup archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
per salvare gli ultimi archive generati, ma evitare salvataggi doppi e cancellazione degli archive dopo 1 giorno dalle generazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6139</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6139"/>
		<updated>2026-05-18T07:47:58Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* backup archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
non ancora salvati&lt;br /&gt;
non cancellare subito ma tieni in linea per un certo tempo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sintassi testata su rman 10.2&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6138</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6138"/>
		<updated>2026-05-18T07:44:13Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* backup archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
non ancora salvati&lt;br /&gt;
non cancellare subito ma tieni in linea per un certo tempo&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all completed before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6137</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6137"/>
		<updated>2026-05-18T07:42:30Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* backup archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
non ancora salvati&lt;br /&gt;
non cancellare subito ma tieni in linea per un certo tempo&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to destination &amp;quot;sbt_tape&amp;quot;;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all complete before &#039;sysdate-1&#039; backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6136</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6136"/>
		<updated>2026-05-18T07:36:12Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* backup archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
non ancora salvati&lt;br /&gt;
non cancellare subito ma tieni in linea per un certo tempo&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to device type sbt;&lt;br /&gt;
 backup as backupset device type sbt archivelog all not backed up 1 times;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6135</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6135"/>
		<updated>2026-05-18T07:30:47Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* backup archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
non ancora salvati&lt;br /&gt;
non cancellare subito ma tieni in linea per un certo tempo&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6134</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6134"/>
		<updated>2026-05-18T07:29:53Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* backup archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
non ancora salvati&lt;br /&gt;
non cancellare subito ma tieni in linea per un certo tempo&lt;br /&gt;
&lt;br /&gt;
 backup device type sbt archivelog all not backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6133</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6133"/>
		<updated>2026-05-18T07:29:27Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* backup archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
non ancora salvati&lt;br /&gt;
non cancellare subito ma tieni in linea per un certo tempo&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to device type sbt;&lt;br /&gt;
 delete noprompt archivelog all backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6132</id>
		<title>Oracle RMAN</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_RMAN&amp;diff=6132"/>
		<updated>2026-05-15T15:22:03Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Duplicate Database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Restore Point in time==&lt;br /&gt;
Restore point in time utilizando il catalogo, spfile presente, valorizzato db_create_file_dest diverso dal database sorgente:&lt;br /&gt;
&lt;br /&gt;
 startup nomount force;&lt;br /&gt;
 run {&lt;br /&gt;
 set dbid XXXXXXXXXX;&lt;br /&gt;
 allocate channel c1 type disk;&lt;br /&gt;
 set until time &amp;quot;to_date(&#039;2021-06-15:01:00:00&#039;,&#039;YYYY-MM-DD:hh24:mi:ss&#039;)&amp;quot;;&lt;br /&gt;
 restore controlfile from autobackup;&lt;br /&gt;
 sql &#039;alter database mount&#039;;&lt;br /&gt;
 sql &#039;alter database disable block change tracking&#039;;&lt;br /&gt;
 set newname for database to new;&lt;br /&gt;
 restore database;&lt;br /&gt;
 switch datafile all;&lt;br /&gt;
 recover database;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Recupero schema da backup==&lt;br /&gt;
Istanza avviata con init o spfile:&lt;br /&gt;
 processes=200&lt;br /&gt;
 sga_target=10G&lt;br /&gt;
 pga_aggregate_target=2G&lt;br /&gt;
 db_block_size=8192&lt;br /&gt;
 compatible=&amp;quot;12.2.0&amp;quot;&lt;br /&gt;
 log_archive_dest_1=&amp;quot;location=+DG_ARCH&amp;quot;&lt;br /&gt;
 db_files=1000&lt;br /&gt;
 db_create_file_dest=&amp;quot;+DG_DATA&amp;quot;&lt;br /&gt;
 _system_trig_enabled=false&lt;br /&gt;
 db_name=&amp;quot;DBORA01&amp;quot;&lt;br /&gt;
 db_unique_name=&amp;quot;RECO01&amp;quot;&lt;br /&gt;
 diagnostic_dest=&amp;quot;/u01/app/oracle&amp;quot;&lt;br /&gt;
 control_files=&amp;quot;+DG_DATA/RECO01/controlfile/current.786.1075850995&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Da rman:&lt;br /&gt;
 &lt;br /&gt;
 sql &#039;alter database mount clone database&#039;;&lt;br /&gt;
 run {&lt;br /&gt;
  set until time &amp;quot;to_date(&#039;2021-06-20:03:20:00&#039;,&#039;YYYY-MM-DD:HH24:MI:SS&#039;)&amp;quot;;&lt;br /&gt;
  set newname for database to new; &lt;br /&gt;
  restore database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
  switch datafile all;&lt;br /&gt;
  recover database skip forever tablespace USERS,TBS01,TBS02 ;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==backup archive==&lt;br /&gt;
non ancora salvati&lt;br /&gt;
non cancellare subito ma tieni in linea per un certo tempo&lt;br /&gt;
&lt;br /&gt;
 backup archivelog all not backed up 1 times to device type sbt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6131</id>
		<title>Oracle a modo mio</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6131"/>
		<updated>2026-05-15T14:46:27Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* db block checking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Statistiche==&lt;br /&gt;
&lt;br /&gt;
 exec dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;HR&#039;,cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
 exec dbms_stats.gather_database_stats(cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
&lt;br /&gt;
==System Statistics==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 col SNAME for a20&lt;br /&gt;
 col PNAME for a30&lt;br /&gt;
 col PVAL2 for a20&lt;br /&gt;
 select * from sys.aux_stats$;&lt;br /&gt;
 &lt;br /&gt;
 -- raccolta timed statistics&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;START&#039;);&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;STOP&#039;);&lt;br /&gt;
 -- in minuti&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;INTERVAL&#039;,interval=&amp;gt;30);&lt;br /&gt;
&lt;br /&gt;
 -- imposta valori a mano&lt;br /&gt;
 -- importanti da impostare in modalità workload:&lt;br /&gt;
 --   SREADTIM (single block read in ms)&lt;br /&gt;
 --   MREADTIM (multiple block read in ms)&lt;br /&gt;
 --   MRBC     (average multiblock read count in blocks)&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,10);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,20);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,16);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- intervento drastico:&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,1);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,100);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- per cancellare e tornare in modalità noworkload&lt;br /&gt;
 exec dbms_stats.delete_system_stats();&lt;br /&gt;
&lt;br /&gt;
 -- per esportare le system statistics in una tabella&lt;br /&gt;
 exec dbms_stats.export_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- per importare le system statistics da una tabella&lt;br /&gt;
 exec dbms_stats.import_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- oppure&lt;br /&gt;
 exec dbms_stats.restore_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- la tabella va create con&lt;br /&gt;
 exec dbms_stats.create_stat_table( ownname =&amp;gt; &#039;SYS&#039;,stattab =&amp;gt;&#039;TABLE1&#039;,tblspace =&amp;gt; &#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
==aggiunta service names==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 0&lt;br /&gt;
set linesize 200&lt;br /&gt;
set feedback off&lt;br /&gt;
set trim on trims on&lt;br /&gt;
&lt;br /&gt;
spool /tmp/aa.sql&lt;br /&gt;
select &#039;alter system set service_names=&#039;&#039;&#039; || listagg(value,&#039;&#039;&#039;,&#039;&#039;&#039;) within group(order by value) || &#039;&#039;&#039; scope=both sid=&#039;&#039;*&#039;&#039;;&#039; from &lt;br /&gt;
( select value from v$spparameter where name=&#039;service_names&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.mydomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.otherdomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
@/tmp/aa.sql&lt;br /&gt;
!rm /tmp/aa.sql&lt;br /&gt;
&lt;br /&gt;
alter system register;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==audit asm su syslog==&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=TRUE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local0.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
==audit database su syslog==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local6.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_TRAIL=&#039;OS&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Per quali eventi generare record di audit:&lt;br /&gt;
 audit session;&lt;br /&gt;
 audit connect whenever not successful;&lt;br /&gt;
&lt;br /&gt;
==unified audit database ==&lt;br /&gt;
Su syslog solo dalla 18 in poi:&lt;br /&gt;
 alter system set UNIFIED_AUDIT_SYSTEMLOG = &#039;LOCAL6.NOTICE&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
Con la versione 12 solo su tabelle;&lt;br /&gt;
&lt;br /&gt;
Per scrittura immediata audit:&lt;br /&gt;
 BEGIN&lt;br /&gt;
  DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY(&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_WRITE_MODE, &lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_IMMEDIATE_WRITE);&lt;br /&gt;
 END;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Per leggere le policy:&lt;br /&gt;
 set linesize 2000&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 col policy_name for a20&lt;br /&gt;
 col audit_condition for a20&lt;br /&gt;
 col audit_option for a40&lt;br /&gt;
 col object_schema for a20&lt;br /&gt;
 col object_name for a20&lt;br /&gt;
 select * from AUDIT_UNIFIED_POLICIES where policy_name=&#039;ORA_SECURECONFIG&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per intercettare logon e logoff:&lt;br /&gt;
 CREATE AUDIT POLICY LOG_ON_OFF ACTIONS LOGON,LOGOFF;&lt;br /&gt;
 AUDIT POLICY LOG_ON_OFF;&lt;br /&gt;
&lt;br /&gt;
Per leggere i risultati:&lt;br /&gt;
 select audit_type,event_timestamp,action_name,object_name from UNIFIED_AUDIT_TRAIL order by event_timestamp desc;&lt;br /&gt;
&lt;br /&gt;
==db block checking==&lt;br /&gt;
&lt;br /&gt;
Molta attenzione all&#039;utilizzo di risorse ed all&#039;eventuale rallentamento che tale configurazione provoca. Sebbene Oracle dichiari che il calo di performances sia basso, va valutato caso per caso. In alcuni casi e per alcune procedure, si può verificare un calo di prestazioni notevole.&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
dalla versione 11.2 è possibile modificare a caldo:&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
=12c=&lt;br /&gt;
Ottimizzazioni 12cR1&lt;br /&gt;
&lt;br /&gt;
==undo temp==&lt;br /&gt;
 alter system set temp_undo_enabled=true scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
== optimizer_adaptive_features ==&lt;br /&gt;
 alter system set optimizer_adaptive_features=false scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Con versione 12.2 le funzioni del parametro sono state divise in due parametri diversi, per cui non serve modificare il default:&lt;br /&gt;
 optimizer_adaptive_plans            boolean	 TRUE&lt;br /&gt;
 optimizer_adaptive_statistics       boolean	 FALSE&lt;br /&gt;
&lt;br /&gt;
==default bigfile==&lt;br /&gt;
&lt;br /&gt;
 alter database set default bigfile tablespace;&lt;br /&gt;
&lt;br /&gt;
==profilo scadenza password==&lt;br /&gt;
&lt;br /&gt;
==recyclebin cancellazione a tempo==&lt;br /&gt;
&lt;br /&gt;
==pulizia alert e diag con adrci==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ORACLE_HOME=/sw/app/oracle/product/19.0.0.0/db_3&lt;br /&gt;
#ORACLE_SID=CECOPRD1&lt;br /&gt;
#ORAENV_ASK=NO&lt;br /&gt;
#export ORACLE_HOME ORACLE_SID ORAENV_ASK&lt;br /&gt;
#. oraenv&lt;br /&gt;
#unset ORAENV_ASK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /home/oracle/.CECOPRD.env&lt;br /&gt;
&lt;br /&gt;
#ADR_BASE=/oradiag/rdbmsdiag&lt;br /&gt;
#export ADR_BASE&lt;br /&gt;
&lt;br /&gt;
# 21 giorni (504 ore 30240 minuti)&lt;br /&gt;
&lt;br /&gt;
for ADR_BASE in /oradiag/rdbmsdiag /oradiag/griddiag&lt;br /&gt;
do&lt;br /&gt;
echo ADR_BASE=$ADR_BASE&lt;br /&gt;
export ADR_BASE=$ADR_BASE&lt;br /&gt;
sleep 2&lt;br /&gt;
&lt;br /&gt;
adrci exec=&#039;show homes&#039; | grep -v &#039;ADR Homes:&#039; | while read H&lt;br /&gt;
do&lt;br /&gt;
 adrci exec=&amp;quot;set home $H&lt;br /&gt;
set control \(SHORTP_POLICY=504\)&lt;br /&gt;
set control \(LONGP_POLICY=504\)&lt;br /&gt;
show control&lt;br /&gt;
purge -age 30240&lt;br /&gt;
&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==incrementare SDU e BUF_SIZE==&lt;br /&gt;
per incrementare SDU bisogna agire sul listener.ora:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LISTENER =&lt;br /&gt;
  (DESCRIPTION_LIST =&lt;br /&gt;
    (DESCRIPTION =&lt;br /&gt;
      (SDU = 32768)&lt;br /&gt;
      (SEND_BUF_SIZE=32768)&lt;br /&gt;
      (RECV_BUF_SIZE=32768)&lt;br /&gt;
      (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 2483))&lt;br /&gt;
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2483))&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nel database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  alter system set local_listener=&#039;(DESCRIPTION=(SDU=32768)(TDU=32768)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=2483)))&#039; scope=both;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==expdp==&lt;br /&gt;
Eliminare segmenti vuoti prima della export (solo Enterprise Edition):&lt;br /&gt;
 exec DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS();&lt;br /&gt;
Consistente:&lt;br /&gt;
 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039;&lt;br /&gt;
Evitare errori:&lt;br /&gt;
 exclude=statistics&lt;br /&gt;
&lt;br /&gt;
==svuota schema==&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 alter session set recyclebin=off;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,table_name from dba_tables where owner=&#039;&amp;amp;1&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop table &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.table_name || &#039;&amp;quot; cascade constraints&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type !=&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop &#039; || c1.object_type || &#039; &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.object_name || &#039;&amp;quot;&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type =&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     dbms_scheduler.drop_job(c1.owner || &#039;.&#039; || C1.object_name);&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200 linesize 200 trim on trims on&lt;br /&gt;
 col object_name for a40&lt;br /&gt;
 col object_type for a40&lt;br /&gt;
 select object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
==impdp==&lt;br /&gt;
Via db link:&lt;br /&gt;
&lt;br /&gt;
 impdp &amp;quot;&#039;/ as sysdba&#039;&amp;quot; directory=DUMP01 logfile=impdp_dblink_01.log network_link=dblink_impdp01 exclude=statistics \&lt;br /&gt;
 schemas=USER01 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039; transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
via dblink con parfile:&lt;br /&gt;
&lt;br /&gt;
 userid=&amp;quot;/ as sysdba&amp;quot;&lt;br /&gt;
 directory=DPUMP_DIR&lt;br /&gt;
 logfile=impdp_tabella_singola.log&lt;br /&gt;
 network_link=impdp_database_prod&lt;br /&gt;
 tables=esempio.tabella01 &lt;br /&gt;
 remap_schema=ESEMPIO:NUOVOSCHEMA1&lt;br /&gt;
 remap_tablespace=DATI:NUOODATI01&lt;br /&gt;
 flashback_time=&amp;quot;systimestamp&amp;quot;&lt;br /&gt;
 exclude=statistics,grant&lt;br /&gt;
 transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
Opzioni possibili:&lt;br /&gt;
&lt;br /&gt;
 transform=table_compression_clause:&amp;quot;ROW STORE COMPRESS ADVANCED&amp;quot;&lt;br /&gt;
 transform=lob_storage:securefile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systimestamp&amp;lt;/code&amp;gt; ritorna sempre un &amp;lt;code&amp;gt;timestamp with time zone&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==clean impdp/expdp==&lt;br /&gt;
 SELECT &#039;drop table &amp;quot;&#039; || owner_name || &#039;&amp;quot;.&amp;quot;&#039; || job_name || &#039;&amp;quot;;&#039; FROM dba_datapump_jobs where state = &#039;NOT RUNNING&#039;;&lt;br /&gt;
&lt;br /&gt;
=Su Linux=&lt;br /&gt;
&lt;br /&gt;
==verificare con quale gid girano i processi oracle==&lt;br /&gt;
&lt;br /&gt;
 ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup&lt;br /&gt;
&lt;br /&gt;
 ps -u oracle -o stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup | more&lt;br /&gt;
&lt;br /&gt;
Va preso il gid del gruppo egroup o del gruppo rgroup?&lt;br /&gt;
&lt;br /&gt;
==attivare hugepages==&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; (su EL &amp;lt;=5.x) o &amp;lt;code&amp;gt;/etc/sysctl.d/99-oracle.conf&amp;lt;/code&amp;gt; (su EL &amp;gt;= 6.x)&lt;br /&gt;
&lt;br /&gt;
 ### Hugepages&lt;br /&gt;
 vm.hugetlb_shm_group=54322&lt;br /&gt;
 vm.nr_hugepages=1024&lt;br /&gt;
&lt;br /&gt;
==disattivare transparent hugepages==&lt;br /&gt;
&lt;br /&gt;
disable transparent hugepages https://docs.oracle.com/database/121/CWLIN/memry.htm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[ -f /sys/kernel/mm/redhat_transparent_hugepage/enabled ] &amp;amp;&amp;amp; echo never &amp;gt; /sys/kernel/mm/redhat_transparent_hugepage/enabled&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==usare kernel uek==&lt;br /&gt;
&lt;br /&gt;
==preallocazione spazio==&lt;br /&gt;
Disattivare completamente:&lt;br /&gt;
&lt;br /&gt;
 alter system set &amp;quot;_enable_space_preallocation&amp;quot;=0;&lt;br /&gt;
&lt;br /&gt;
oppure ridurre la percentuale:&lt;br /&gt;
 &lt;br /&gt;
 alter system set &amp;quot;_kttext_warning&amp;quot;=5;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMCO (Space Management Coordinator) For Autoextend On Datafiles And How To Disable/Enable (Doc ID 743773.1)&lt;br /&gt;
&lt;br /&gt;
AUTOEXTEND Grows To Full Size Without Reason (Doc ID 1459097.1)&lt;br /&gt;
&lt;br /&gt;
Master Note: Overview of Oracle Segment Storage (Doc ID 1491960.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://ksun-oracle.blogspot.com/2015/12/oracle-bigfile-tablespace-pre.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6130</id>
		<title>Oracle a modo mio</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6130"/>
		<updated>2026-05-15T14:44:13Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* pulizia alert e diag con adrci */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Statistiche==&lt;br /&gt;
&lt;br /&gt;
 exec dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;HR&#039;,cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
 exec dbms_stats.gather_database_stats(cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
&lt;br /&gt;
==System Statistics==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 col SNAME for a20&lt;br /&gt;
 col PNAME for a30&lt;br /&gt;
 col PVAL2 for a20&lt;br /&gt;
 select * from sys.aux_stats$;&lt;br /&gt;
 &lt;br /&gt;
 -- raccolta timed statistics&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;START&#039;);&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;STOP&#039;);&lt;br /&gt;
 -- in minuti&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;INTERVAL&#039;,interval=&amp;gt;30);&lt;br /&gt;
&lt;br /&gt;
 -- imposta valori a mano&lt;br /&gt;
 -- importanti da impostare in modalità workload:&lt;br /&gt;
 --   SREADTIM (single block read in ms)&lt;br /&gt;
 --   MREADTIM (multiple block read in ms)&lt;br /&gt;
 --   MRBC     (average multiblock read count in blocks)&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,10);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,20);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,16);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- intervento drastico:&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,1);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,100);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- per cancellare e tornare in modalità noworkload&lt;br /&gt;
 exec dbms_stats.delete_system_stats();&lt;br /&gt;
&lt;br /&gt;
 -- per esportare le system statistics in una tabella&lt;br /&gt;
 exec dbms_stats.export_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- per importare le system statistics da una tabella&lt;br /&gt;
 exec dbms_stats.import_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- oppure&lt;br /&gt;
 exec dbms_stats.restore_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- la tabella va create con&lt;br /&gt;
 exec dbms_stats.create_stat_table( ownname =&amp;gt; &#039;SYS&#039;,stattab =&amp;gt;&#039;TABLE1&#039;,tblspace =&amp;gt; &#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
==aggiunta service names==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 0&lt;br /&gt;
set linesize 200&lt;br /&gt;
set feedback off&lt;br /&gt;
set trim on trims on&lt;br /&gt;
&lt;br /&gt;
spool /tmp/aa.sql&lt;br /&gt;
select &#039;alter system set service_names=&#039;&#039;&#039; || listagg(value,&#039;&#039;&#039;,&#039;&#039;&#039;) within group(order by value) || &#039;&#039;&#039; scope=both sid=&#039;&#039;*&#039;&#039;;&#039; from &lt;br /&gt;
( select value from v$spparameter where name=&#039;service_names&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.mydomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.otherdomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
@/tmp/aa.sql&lt;br /&gt;
!rm /tmp/aa.sql&lt;br /&gt;
&lt;br /&gt;
alter system register;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==audit asm su syslog==&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=TRUE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local0.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
==audit database su syslog==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local6.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_TRAIL=&#039;OS&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Per quali eventi generare record di audit:&lt;br /&gt;
 audit session;&lt;br /&gt;
 audit connect whenever not successful;&lt;br /&gt;
&lt;br /&gt;
==unified audit database ==&lt;br /&gt;
Su syslog solo dalla 18 in poi:&lt;br /&gt;
 alter system set UNIFIED_AUDIT_SYSTEMLOG = &#039;LOCAL6.NOTICE&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
Con la versione 12 solo su tabelle;&lt;br /&gt;
&lt;br /&gt;
Per scrittura immediata audit:&lt;br /&gt;
 BEGIN&lt;br /&gt;
  DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY(&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_WRITE_MODE, &lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_IMMEDIATE_WRITE);&lt;br /&gt;
 END;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Per leggere le policy:&lt;br /&gt;
 set linesize 2000&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 col policy_name for a20&lt;br /&gt;
 col audit_condition for a20&lt;br /&gt;
 col audit_option for a40&lt;br /&gt;
 col object_schema for a20&lt;br /&gt;
 col object_name for a20&lt;br /&gt;
 select * from AUDIT_UNIFIED_POLICIES where policy_name=&#039;ORA_SECURECONFIG&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per intercettare logon e logoff:&lt;br /&gt;
 CREATE AUDIT POLICY LOG_ON_OFF ACTIONS LOGON,LOGOFF;&lt;br /&gt;
 AUDIT POLICY LOG_ON_OFF;&lt;br /&gt;
&lt;br /&gt;
Per leggere i risultati:&lt;br /&gt;
 select audit_type,event_timestamp,action_name,object_name from UNIFIED_AUDIT_TRAIL order by event_timestamp desc;&lt;br /&gt;
&lt;br /&gt;
==db block checking==&lt;br /&gt;
&lt;br /&gt;
Molta attenzione all&#039;utilizzo di risorse ed all&#039;eventuale rallentamento che tale configurazione provoca. Sebbene Oracle dichiari che il calo di performances sia basso, va valutato caso per caso. In alcuni casi e per alcune procedure, si può verificare un calo di prestazioni notevole.&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
11.2&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
=12c=&lt;br /&gt;
Ottimizzazioni 12cR1&lt;br /&gt;
&lt;br /&gt;
==undo temp==&lt;br /&gt;
 alter system set temp_undo_enabled=true scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
== optimizer_adaptive_features ==&lt;br /&gt;
 alter system set optimizer_adaptive_features=false scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Con versione 12.2 le funzioni del parametro sono state divise in due parametri diversi, per cui non serve modificare il default:&lt;br /&gt;
 optimizer_adaptive_plans            boolean	 TRUE&lt;br /&gt;
 optimizer_adaptive_statistics       boolean	 FALSE&lt;br /&gt;
&lt;br /&gt;
==default bigfile==&lt;br /&gt;
&lt;br /&gt;
 alter database set default bigfile tablespace;&lt;br /&gt;
&lt;br /&gt;
==profilo scadenza password==&lt;br /&gt;
&lt;br /&gt;
==recyclebin cancellazione a tempo==&lt;br /&gt;
&lt;br /&gt;
==pulizia alert e diag con adrci==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ORACLE_HOME=/sw/app/oracle/product/19.0.0.0/db_3&lt;br /&gt;
#ORACLE_SID=CECOPRD1&lt;br /&gt;
#ORAENV_ASK=NO&lt;br /&gt;
#export ORACLE_HOME ORACLE_SID ORAENV_ASK&lt;br /&gt;
#. oraenv&lt;br /&gt;
#unset ORAENV_ASK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /home/oracle/.CECOPRD.env&lt;br /&gt;
&lt;br /&gt;
#ADR_BASE=/oradiag/rdbmsdiag&lt;br /&gt;
#export ADR_BASE&lt;br /&gt;
&lt;br /&gt;
# 21 giorni (504 ore 30240 minuti)&lt;br /&gt;
&lt;br /&gt;
for ADR_BASE in /oradiag/rdbmsdiag /oradiag/griddiag&lt;br /&gt;
do&lt;br /&gt;
echo ADR_BASE=$ADR_BASE&lt;br /&gt;
export ADR_BASE=$ADR_BASE&lt;br /&gt;
sleep 2&lt;br /&gt;
&lt;br /&gt;
adrci exec=&#039;show homes&#039; | grep -v &#039;ADR Homes:&#039; | while read H&lt;br /&gt;
do&lt;br /&gt;
 adrci exec=&amp;quot;set home $H&lt;br /&gt;
set control \(SHORTP_POLICY=504\)&lt;br /&gt;
set control \(LONGP_POLICY=504\)&lt;br /&gt;
show control&lt;br /&gt;
purge -age 30240&lt;br /&gt;
&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==incrementare SDU e BUF_SIZE==&lt;br /&gt;
per incrementare SDU bisogna agire sul listener.ora:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LISTENER =&lt;br /&gt;
  (DESCRIPTION_LIST =&lt;br /&gt;
    (DESCRIPTION =&lt;br /&gt;
      (SDU = 32768)&lt;br /&gt;
      (SEND_BUF_SIZE=32768)&lt;br /&gt;
      (RECV_BUF_SIZE=32768)&lt;br /&gt;
      (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 2483))&lt;br /&gt;
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2483))&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nel database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  alter system set local_listener=&#039;(DESCRIPTION=(SDU=32768)(TDU=32768)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=2483)))&#039; scope=both;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==expdp==&lt;br /&gt;
Eliminare segmenti vuoti prima della export (solo Enterprise Edition):&lt;br /&gt;
 exec DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS();&lt;br /&gt;
Consistente:&lt;br /&gt;
 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039;&lt;br /&gt;
Evitare errori:&lt;br /&gt;
 exclude=statistics&lt;br /&gt;
&lt;br /&gt;
==svuota schema==&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 alter session set recyclebin=off;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,table_name from dba_tables where owner=&#039;&amp;amp;1&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop table &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.table_name || &#039;&amp;quot; cascade constraints&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type !=&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop &#039; || c1.object_type || &#039; &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.object_name || &#039;&amp;quot;&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type =&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     dbms_scheduler.drop_job(c1.owner || &#039;.&#039; || C1.object_name);&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200 linesize 200 trim on trims on&lt;br /&gt;
 col object_name for a40&lt;br /&gt;
 col object_type for a40&lt;br /&gt;
 select object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
==impdp==&lt;br /&gt;
Via db link:&lt;br /&gt;
&lt;br /&gt;
 impdp &amp;quot;&#039;/ as sysdba&#039;&amp;quot; directory=DUMP01 logfile=impdp_dblink_01.log network_link=dblink_impdp01 exclude=statistics \&lt;br /&gt;
 schemas=USER01 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039; transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
via dblink con parfile:&lt;br /&gt;
&lt;br /&gt;
 userid=&amp;quot;/ as sysdba&amp;quot;&lt;br /&gt;
 directory=DPUMP_DIR&lt;br /&gt;
 logfile=impdp_tabella_singola.log&lt;br /&gt;
 network_link=impdp_database_prod&lt;br /&gt;
 tables=esempio.tabella01 &lt;br /&gt;
 remap_schema=ESEMPIO:NUOVOSCHEMA1&lt;br /&gt;
 remap_tablespace=DATI:NUOODATI01&lt;br /&gt;
 flashback_time=&amp;quot;systimestamp&amp;quot;&lt;br /&gt;
 exclude=statistics,grant&lt;br /&gt;
 transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
Opzioni possibili:&lt;br /&gt;
&lt;br /&gt;
 transform=table_compression_clause:&amp;quot;ROW STORE COMPRESS ADVANCED&amp;quot;&lt;br /&gt;
 transform=lob_storage:securefile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systimestamp&amp;lt;/code&amp;gt; ritorna sempre un &amp;lt;code&amp;gt;timestamp with time zone&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==clean impdp/expdp==&lt;br /&gt;
 SELECT &#039;drop table &amp;quot;&#039; || owner_name || &#039;&amp;quot;.&amp;quot;&#039; || job_name || &#039;&amp;quot;;&#039; FROM dba_datapump_jobs where state = &#039;NOT RUNNING&#039;;&lt;br /&gt;
&lt;br /&gt;
=Su Linux=&lt;br /&gt;
&lt;br /&gt;
==verificare con quale gid girano i processi oracle==&lt;br /&gt;
&lt;br /&gt;
 ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup&lt;br /&gt;
&lt;br /&gt;
 ps -u oracle -o stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup | more&lt;br /&gt;
&lt;br /&gt;
Va preso il gid del gruppo egroup o del gruppo rgroup?&lt;br /&gt;
&lt;br /&gt;
==attivare hugepages==&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; (su EL &amp;lt;=5.x) o &amp;lt;code&amp;gt;/etc/sysctl.d/99-oracle.conf&amp;lt;/code&amp;gt; (su EL &amp;gt;= 6.x)&lt;br /&gt;
&lt;br /&gt;
 ### Hugepages&lt;br /&gt;
 vm.hugetlb_shm_group=54322&lt;br /&gt;
 vm.nr_hugepages=1024&lt;br /&gt;
&lt;br /&gt;
==disattivare transparent hugepages==&lt;br /&gt;
&lt;br /&gt;
disable transparent hugepages https://docs.oracle.com/database/121/CWLIN/memry.htm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[ -f /sys/kernel/mm/redhat_transparent_hugepage/enabled ] &amp;amp;&amp;amp; echo never &amp;gt; /sys/kernel/mm/redhat_transparent_hugepage/enabled&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==usare kernel uek==&lt;br /&gt;
&lt;br /&gt;
==preallocazione spazio==&lt;br /&gt;
Disattivare completamente:&lt;br /&gt;
&lt;br /&gt;
 alter system set &amp;quot;_enable_space_preallocation&amp;quot;=0;&lt;br /&gt;
&lt;br /&gt;
oppure ridurre la percentuale:&lt;br /&gt;
 &lt;br /&gt;
 alter system set &amp;quot;_kttext_warning&amp;quot;=5;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMCO (Space Management Coordinator) For Autoextend On Datafiles And How To Disable/Enable (Doc ID 743773.1)&lt;br /&gt;
&lt;br /&gt;
AUTOEXTEND Grows To Full Size Without Reason (Doc ID 1459097.1)&lt;br /&gt;
&lt;br /&gt;
Master Note: Overview of Oracle Segment Storage (Doc ID 1491960.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://ksun-oracle.blogspot.com/2015/12/oracle-bigfile-tablespace-pre.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6129</id>
		<title>Oracle a modo mio</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6129"/>
		<updated>2026-05-15T14:43:54Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* pulizia trace con adrci */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Statistiche==&lt;br /&gt;
&lt;br /&gt;
 exec dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;HR&#039;,cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
 exec dbms_stats.gather_database_stats(cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
&lt;br /&gt;
==System Statistics==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 col SNAME for a20&lt;br /&gt;
 col PNAME for a30&lt;br /&gt;
 col PVAL2 for a20&lt;br /&gt;
 select * from sys.aux_stats$;&lt;br /&gt;
 &lt;br /&gt;
 -- raccolta timed statistics&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;START&#039;);&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;STOP&#039;);&lt;br /&gt;
 -- in minuti&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;INTERVAL&#039;,interval=&amp;gt;30);&lt;br /&gt;
&lt;br /&gt;
 -- imposta valori a mano&lt;br /&gt;
 -- importanti da impostare in modalità workload:&lt;br /&gt;
 --   SREADTIM (single block read in ms)&lt;br /&gt;
 --   MREADTIM (multiple block read in ms)&lt;br /&gt;
 --   MRBC     (average multiblock read count in blocks)&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,10);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,20);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,16);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- intervento drastico:&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,1);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,100);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- per cancellare e tornare in modalità noworkload&lt;br /&gt;
 exec dbms_stats.delete_system_stats();&lt;br /&gt;
&lt;br /&gt;
 -- per esportare le system statistics in una tabella&lt;br /&gt;
 exec dbms_stats.export_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- per importare le system statistics da una tabella&lt;br /&gt;
 exec dbms_stats.import_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- oppure&lt;br /&gt;
 exec dbms_stats.restore_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- la tabella va create con&lt;br /&gt;
 exec dbms_stats.create_stat_table( ownname =&amp;gt; &#039;SYS&#039;,stattab =&amp;gt;&#039;TABLE1&#039;,tblspace =&amp;gt; &#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
==aggiunta service names==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 0&lt;br /&gt;
set linesize 200&lt;br /&gt;
set feedback off&lt;br /&gt;
set trim on trims on&lt;br /&gt;
&lt;br /&gt;
spool /tmp/aa.sql&lt;br /&gt;
select &#039;alter system set service_names=&#039;&#039;&#039; || listagg(value,&#039;&#039;&#039;,&#039;&#039;&#039;) within group(order by value) || &#039;&#039;&#039; scope=both sid=&#039;&#039;*&#039;&#039;;&#039; from &lt;br /&gt;
( select value from v$spparameter where name=&#039;service_names&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.mydomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.otherdomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
@/tmp/aa.sql&lt;br /&gt;
!rm /tmp/aa.sql&lt;br /&gt;
&lt;br /&gt;
alter system register;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==audit asm su syslog==&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=TRUE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local0.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
==audit database su syslog==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local6.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_TRAIL=&#039;OS&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Per quali eventi generare record di audit:&lt;br /&gt;
 audit session;&lt;br /&gt;
 audit connect whenever not successful;&lt;br /&gt;
&lt;br /&gt;
==unified audit database ==&lt;br /&gt;
Su syslog solo dalla 18 in poi:&lt;br /&gt;
 alter system set UNIFIED_AUDIT_SYSTEMLOG = &#039;LOCAL6.NOTICE&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
Con la versione 12 solo su tabelle;&lt;br /&gt;
&lt;br /&gt;
Per scrittura immediata audit:&lt;br /&gt;
 BEGIN&lt;br /&gt;
  DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY(&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_WRITE_MODE, &lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_IMMEDIATE_WRITE);&lt;br /&gt;
 END;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Per leggere le policy:&lt;br /&gt;
 set linesize 2000&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 col policy_name for a20&lt;br /&gt;
 col audit_condition for a20&lt;br /&gt;
 col audit_option for a40&lt;br /&gt;
 col object_schema for a20&lt;br /&gt;
 col object_name for a20&lt;br /&gt;
 select * from AUDIT_UNIFIED_POLICIES where policy_name=&#039;ORA_SECURECONFIG&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per intercettare logon e logoff:&lt;br /&gt;
 CREATE AUDIT POLICY LOG_ON_OFF ACTIONS LOGON,LOGOFF;&lt;br /&gt;
 AUDIT POLICY LOG_ON_OFF;&lt;br /&gt;
&lt;br /&gt;
Per leggere i risultati:&lt;br /&gt;
 select audit_type,event_timestamp,action_name,object_name from UNIFIED_AUDIT_TRAIL order by event_timestamp desc;&lt;br /&gt;
&lt;br /&gt;
==db block checking==&lt;br /&gt;
&lt;br /&gt;
Molta attenzione all&#039;utilizzo di risorse ed all&#039;eventuale rallentamento che tale configurazione provoca. Sebbene Oracle dichiari che il calo di performances sia basso, va valutato caso per caso. In alcuni casi e per alcune procedure, si può verificare un calo di prestazioni notevole.&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
11.2&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
=12c=&lt;br /&gt;
Ottimizzazioni 12cR1&lt;br /&gt;
&lt;br /&gt;
==undo temp==&lt;br /&gt;
 alter system set temp_undo_enabled=true scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
== optimizer_adaptive_features ==&lt;br /&gt;
 alter system set optimizer_adaptive_features=false scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Con versione 12.2 le funzioni del parametro sono state divise in due parametri diversi, per cui non serve modificare il default:&lt;br /&gt;
 optimizer_adaptive_plans            boolean	 TRUE&lt;br /&gt;
 optimizer_adaptive_statistics       boolean	 FALSE&lt;br /&gt;
&lt;br /&gt;
==default bigfile==&lt;br /&gt;
&lt;br /&gt;
 alter database set default bigfile tablespace;&lt;br /&gt;
&lt;br /&gt;
==profilo scadenza password==&lt;br /&gt;
&lt;br /&gt;
==recyclebin cancellazione a tempo==&lt;br /&gt;
&lt;br /&gt;
==pulizia alert e diag con adrci==&lt;br /&gt;
&lt;br /&gt;
==incrementare SDU e BUF_SIZE==&lt;br /&gt;
per incrementare SDU bisogna agire sul listener.ora:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LISTENER =&lt;br /&gt;
  (DESCRIPTION_LIST =&lt;br /&gt;
    (DESCRIPTION =&lt;br /&gt;
      (SDU = 32768)&lt;br /&gt;
      (SEND_BUF_SIZE=32768)&lt;br /&gt;
      (RECV_BUF_SIZE=32768)&lt;br /&gt;
      (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 2483))&lt;br /&gt;
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2483))&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nel database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  alter system set local_listener=&#039;(DESCRIPTION=(SDU=32768)(TDU=32768)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=2483)))&#039; scope=both;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==expdp==&lt;br /&gt;
Eliminare segmenti vuoti prima della export (solo Enterprise Edition):&lt;br /&gt;
 exec DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS();&lt;br /&gt;
Consistente:&lt;br /&gt;
 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039;&lt;br /&gt;
Evitare errori:&lt;br /&gt;
 exclude=statistics&lt;br /&gt;
&lt;br /&gt;
==svuota schema==&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 alter session set recyclebin=off;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,table_name from dba_tables where owner=&#039;&amp;amp;1&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop table &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.table_name || &#039;&amp;quot; cascade constraints&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type !=&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop &#039; || c1.object_type || &#039; &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.object_name || &#039;&amp;quot;&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type =&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     dbms_scheduler.drop_job(c1.owner || &#039;.&#039; || C1.object_name);&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200 linesize 200 trim on trims on&lt;br /&gt;
 col object_name for a40&lt;br /&gt;
 col object_type for a40&lt;br /&gt;
 select object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
==impdp==&lt;br /&gt;
Via db link:&lt;br /&gt;
&lt;br /&gt;
 impdp &amp;quot;&#039;/ as sysdba&#039;&amp;quot; directory=DUMP01 logfile=impdp_dblink_01.log network_link=dblink_impdp01 exclude=statistics \&lt;br /&gt;
 schemas=USER01 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039; transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
via dblink con parfile:&lt;br /&gt;
&lt;br /&gt;
 userid=&amp;quot;/ as sysdba&amp;quot;&lt;br /&gt;
 directory=DPUMP_DIR&lt;br /&gt;
 logfile=impdp_tabella_singola.log&lt;br /&gt;
 network_link=impdp_database_prod&lt;br /&gt;
 tables=esempio.tabella01 &lt;br /&gt;
 remap_schema=ESEMPIO:NUOVOSCHEMA1&lt;br /&gt;
 remap_tablespace=DATI:NUOODATI01&lt;br /&gt;
 flashback_time=&amp;quot;systimestamp&amp;quot;&lt;br /&gt;
 exclude=statistics,grant&lt;br /&gt;
 transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
Opzioni possibili:&lt;br /&gt;
&lt;br /&gt;
 transform=table_compression_clause:&amp;quot;ROW STORE COMPRESS ADVANCED&amp;quot;&lt;br /&gt;
 transform=lob_storage:securefile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systimestamp&amp;lt;/code&amp;gt; ritorna sempre un &amp;lt;code&amp;gt;timestamp with time zone&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==clean impdp/expdp==&lt;br /&gt;
 SELECT &#039;drop table &amp;quot;&#039; || owner_name || &#039;&amp;quot;.&amp;quot;&#039; || job_name || &#039;&amp;quot;;&#039; FROM dba_datapump_jobs where state = &#039;NOT RUNNING&#039;;&lt;br /&gt;
&lt;br /&gt;
=Su Linux=&lt;br /&gt;
&lt;br /&gt;
==verificare con quale gid girano i processi oracle==&lt;br /&gt;
&lt;br /&gt;
 ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup&lt;br /&gt;
&lt;br /&gt;
 ps -u oracle -o stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup | more&lt;br /&gt;
&lt;br /&gt;
Va preso il gid del gruppo egroup o del gruppo rgroup?&lt;br /&gt;
&lt;br /&gt;
==attivare hugepages==&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; (su EL &amp;lt;=5.x) o &amp;lt;code&amp;gt;/etc/sysctl.d/99-oracle.conf&amp;lt;/code&amp;gt; (su EL &amp;gt;= 6.x)&lt;br /&gt;
&lt;br /&gt;
 ### Hugepages&lt;br /&gt;
 vm.hugetlb_shm_group=54322&lt;br /&gt;
 vm.nr_hugepages=1024&lt;br /&gt;
&lt;br /&gt;
==disattivare transparent hugepages==&lt;br /&gt;
&lt;br /&gt;
disable transparent hugepages https://docs.oracle.com/database/121/CWLIN/memry.htm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[ -f /sys/kernel/mm/redhat_transparent_hugepage/enabled ] &amp;amp;&amp;amp; echo never &amp;gt; /sys/kernel/mm/redhat_transparent_hugepage/enabled&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==usare kernel uek==&lt;br /&gt;
&lt;br /&gt;
==preallocazione spazio==&lt;br /&gt;
Disattivare completamente:&lt;br /&gt;
&lt;br /&gt;
 alter system set &amp;quot;_enable_space_preallocation&amp;quot;=0;&lt;br /&gt;
&lt;br /&gt;
oppure ridurre la percentuale:&lt;br /&gt;
 &lt;br /&gt;
 alter system set &amp;quot;_kttext_warning&amp;quot;=5;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMCO (Space Management Coordinator) For Autoextend On Datafiles And How To Disable/Enable (Doc ID 743773.1)&lt;br /&gt;
&lt;br /&gt;
AUTOEXTEND Grows To Full Size Without Reason (Doc ID 1459097.1)&lt;br /&gt;
&lt;br /&gt;
Master Note: Overview of Oracle Segment Storage (Doc ID 1491960.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://ksun-oracle.blogspot.com/2015/12/oracle-bigfile-tablespace-pre.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6128</id>
		<title>Oracle a modo mio</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6128"/>
		<updated>2026-05-15T14:42:37Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* pulizia trace */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Statistiche==&lt;br /&gt;
&lt;br /&gt;
 exec dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;HR&#039;,cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
 exec dbms_stats.gather_database_stats(cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
&lt;br /&gt;
==System Statistics==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 col SNAME for a20&lt;br /&gt;
 col PNAME for a30&lt;br /&gt;
 col PVAL2 for a20&lt;br /&gt;
 select * from sys.aux_stats$;&lt;br /&gt;
 &lt;br /&gt;
 -- raccolta timed statistics&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;START&#039;);&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;STOP&#039;);&lt;br /&gt;
 -- in minuti&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;INTERVAL&#039;,interval=&amp;gt;30);&lt;br /&gt;
&lt;br /&gt;
 -- imposta valori a mano&lt;br /&gt;
 -- importanti da impostare in modalità workload:&lt;br /&gt;
 --   SREADTIM (single block read in ms)&lt;br /&gt;
 --   MREADTIM (multiple block read in ms)&lt;br /&gt;
 --   MRBC     (average multiblock read count in blocks)&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,10);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,20);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,16);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- intervento drastico:&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,1);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,100);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- per cancellare e tornare in modalità noworkload&lt;br /&gt;
 exec dbms_stats.delete_system_stats();&lt;br /&gt;
&lt;br /&gt;
 -- per esportare le system statistics in una tabella&lt;br /&gt;
 exec dbms_stats.export_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- per importare le system statistics da una tabella&lt;br /&gt;
 exec dbms_stats.import_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- oppure&lt;br /&gt;
 exec dbms_stats.restore_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- la tabella va create con&lt;br /&gt;
 exec dbms_stats.create_stat_table( ownname =&amp;gt; &#039;SYS&#039;,stattab =&amp;gt;&#039;TABLE1&#039;,tblspace =&amp;gt; &#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
==aggiunta service names==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 0&lt;br /&gt;
set linesize 200&lt;br /&gt;
set feedback off&lt;br /&gt;
set trim on trims on&lt;br /&gt;
&lt;br /&gt;
spool /tmp/aa.sql&lt;br /&gt;
select &#039;alter system set service_names=&#039;&#039;&#039; || listagg(value,&#039;&#039;&#039;,&#039;&#039;&#039;) within group(order by value) || &#039;&#039;&#039; scope=both sid=&#039;&#039;*&#039;&#039;;&#039; from &lt;br /&gt;
( select value from v$spparameter where name=&#039;service_names&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.mydomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.otherdomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
@/tmp/aa.sql&lt;br /&gt;
!rm /tmp/aa.sql&lt;br /&gt;
&lt;br /&gt;
alter system register;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==audit asm su syslog==&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=TRUE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local0.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
==audit database su syslog==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local6.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_TRAIL=&#039;OS&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Per quali eventi generare record di audit:&lt;br /&gt;
 audit session;&lt;br /&gt;
 audit connect whenever not successful;&lt;br /&gt;
&lt;br /&gt;
==unified audit database ==&lt;br /&gt;
Su syslog solo dalla 18 in poi:&lt;br /&gt;
 alter system set UNIFIED_AUDIT_SYSTEMLOG = &#039;LOCAL6.NOTICE&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
Con la versione 12 solo su tabelle;&lt;br /&gt;
&lt;br /&gt;
Per scrittura immediata audit:&lt;br /&gt;
 BEGIN&lt;br /&gt;
  DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY(&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_WRITE_MODE, &lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_IMMEDIATE_WRITE);&lt;br /&gt;
 END;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Per leggere le policy:&lt;br /&gt;
 set linesize 2000&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 col policy_name for a20&lt;br /&gt;
 col audit_condition for a20&lt;br /&gt;
 col audit_option for a40&lt;br /&gt;
 col object_schema for a20&lt;br /&gt;
 col object_name for a20&lt;br /&gt;
 select * from AUDIT_UNIFIED_POLICIES where policy_name=&#039;ORA_SECURECONFIG&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per intercettare logon e logoff:&lt;br /&gt;
 CREATE AUDIT POLICY LOG_ON_OFF ACTIONS LOGON,LOGOFF;&lt;br /&gt;
 AUDIT POLICY LOG_ON_OFF;&lt;br /&gt;
&lt;br /&gt;
Per leggere i risultati:&lt;br /&gt;
 select audit_type,event_timestamp,action_name,object_name from UNIFIED_AUDIT_TRAIL order by event_timestamp desc;&lt;br /&gt;
&lt;br /&gt;
==db block checking==&lt;br /&gt;
&lt;br /&gt;
Molta attenzione all&#039;utilizzo di risorse ed all&#039;eventuale rallentamento che tale configurazione provoca. Sebbene Oracle dichiari che il calo di performances sia basso, va valutato caso per caso. In alcuni casi e per alcune procedure, si può verificare un calo di prestazioni notevole.&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
11.2&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
=12c=&lt;br /&gt;
Ottimizzazioni 12cR1&lt;br /&gt;
&lt;br /&gt;
==undo temp==&lt;br /&gt;
 alter system set temp_undo_enabled=true scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
== optimizer_adaptive_features ==&lt;br /&gt;
 alter system set optimizer_adaptive_features=false scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Con versione 12.2 le funzioni del parametro sono state divise in due parametri diversi, per cui non serve modificare il default:&lt;br /&gt;
 optimizer_adaptive_plans            boolean	 TRUE&lt;br /&gt;
 optimizer_adaptive_statistics       boolean	 FALSE&lt;br /&gt;
&lt;br /&gt;
==default bigfile==&lt;br /&gt;
&lt;br /&gt;
 alter database set default bigfile tablespace;&lt;br /&gt;
&lt;br /&gt;
==profilo scadenza password==&lt;br /&gt;
&lt;br /&gt;
==recyclebin cancellazione a tempo==&lt;br /&gt;
&lt;br /&gt;
==pulizia alert e diag con adrci==&lt;br /&gt;
&lt;br /&gt;
==incrementare SDU e BUF_SIZE==&lt;br /&gt;
per incrementare SDU bisogna agire sul listener.ora:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LISTENER =&lt;br /&gt;
  (DESCRIPTION_LIST =&lt;br /&gt;
    (DESCRIPTION =&lt;br /&gt;
      (SDU = 32768)&lt;br /&gt;
      (SEND_BUF_SIZE=32768)&lt;br /&gt;
      (RECV_BUF_SIZE=32768)&lt;br /&gt;
      (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 2483))&lt;br /&gt;
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2483))&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nel database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  alter system set local_listener=&#039;(DESCRIPTION=(SDU=32768)(TDU=32768)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=2483)))&#039; scope=both;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==expdp==&lt;br /&gt;
Eliminare segmenti vuoti prima della export (solo Enterprise Edition):&lt;br /&gt;
 exec DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS();&lt;br /&gt;
Consistente:&lt;br /&gt;
 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039;&lt;br /&gt;
Evitare errori:&lt;br /&gt;
 exclude=statistics&lt;br /&gt;
&lt;br /&gt;
==svuota schema==&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 alter session set recyclebin=off;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,table_name from dba_tables where owner=&#039;&amp;amp;1&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop table &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.table_name || &#039;&amp;quot; cascade constraints&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type !=&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop &#039; || c1.object_type || &#039; &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.object_name || &#039;&amp;quot;&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type =&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     dbms_scheduler.drop_job(c1.owner || &#039;.&#039; || C1.object_name);&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200 linesize 200 trim on trims on&lt;br /&gt;
 col object_name for a40&lt;br /&gt;
 col object_type for a40&lt;br /&gt;
 select object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
==impdp==&lt;br /&gt;
Via db link:&lt;br /&gt;
&lt;br /&gt;
 impdp &amp;quot;&#039;/ as sysdba&#039;&amp;quot; directory=DUMP01 logfile=impdp_dblink_01.log network_link=dblink_impdp01 exclude=statistics \&lt;br /&gt;
 schemas=USER01 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039; transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
via dblink con parfile:&lt;br /&gt;
&lt;br /&gt;
 userid=&amp;quot;/ as sysdba&amp;quot;&lt;br /&gt;
 directory=DPUMP_DIR&lt;br /&gt;
 logfile=impdp_tabella_singola.log&lt;br /&gt;
 network_link=impdp_database_prod&lt;br /&gt;
 tables=esempio.tabella01 &lt;br /&gt;
 remap_schema=ESEMPIO:NUOVOSCHEMA1&lt;br /&gt;
 remap_tablespace=DATI:NUOODATI01&lt;br /&gt;
 flashback_time=&amp;quot;systimestamp&amp;quot;&lt;br /&gt;
 exclude=statistics,grant&lt;br /&gt;
 transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
Opzioni possibili:&lt;br /&gt;
&lt;br /&gt;
 transform=table_compression_clause:&amp;quot;ROW STORE COMPRESS ADVANCED&amp;quot;&lt;br /&gt;
 transform=lob_storage:securefile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systimestamp&amp;lt;/code&amp;gt; ritorna sempre un &amp;lt;code&amp;gt;timestamp with time zone&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==clean impdp/expdp==&lt;br /&gt;
 SELECT &#039;drop table &amp;quot;&#039; || owner_name || &#039;&amp;quot;.&amp;quot;&#039; || job_name || &#039;&amp;quot;;&#039; FROM dba_datapump_jobs where state = &#039;NOT RUNNING&#039;;&lt;br /&gt;
&lt;br /&gt;
=Su Linux=&lt;br /&gt;
&lt;br /&gt;
==verificare con quale gid girano i processi oracle==&lt;br /&gt;
&lt;br /&gt;
 ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup&lt;br /&gt;
&lt;br /&gt;
 ps -u oracle -o stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup | more&lt;br /&gt;
&lt;br /&gt;
Va preso il gid del gruppo egroup o del gruppo rgroup?&lt;br /&gt;
&lt;br /&gt;
==attivare hugepages==&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; (su EL &amp;lt;=5.x) o &amp;lt;code&amp;gt;/etc/sysctl.d/99-oracle.conf&amp;lt;/code&amp;gt; (su EL &amp;gt;= 6.x)&lt;br /&gt;
&lt;br /&gt;
 ### Hugepages&lt;br /&gt;
 vm.hugetlb_shm_group=54322&lt;br /&gt;
 vm.nr_hugepages=1024&lt;br /&gt;
&lt;br /&gt;
==disattivare transparent hugepages==&lt;br /&gt;
&lt;br /&gt;
disable transparent hugepages https://docs.oracle.com/database/121/CWLIN/memry.htm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[ -f /sys/kernel/mm/redhat_transparent_hugepage/enabled ] &amp;amp;&amp;amp; echo never &amp;gt; /sys/kernel/mm/redhat_transparent_hugepage/enabled&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==usare kernel uek==&lt;br /&gt;
&lt;br /&gt;
==preallocazione spazio==&lt;br /&gt;
Disattivare completamente:&lt;br /&gt;
&lt;br /&gt;
 alter system set &amp;quot;_enable_space_preallocation&amp;quot;=0;&lt;br /&gt;
&lt;br /&gt;
oppure ridurre la percentuale:&lt;br /&gt;
 &lt;br /&gt;
 alter system set &amp;quot;_kttext_warning&amp;quot;=5;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMCO (Space Management Coordinator) For Autoextend On Datafiles And How To Disable/Enable (Doc ID 743773.1)&lt;br /&gt;
&lt;br /&gt;
AUTOEXTEND Grows To Full Size Without Reason (Doc ID 1459097.1)&lt;br /&gt;
&lt;br /&gt;
Master Note: Overview of Oracle Segment Storage (Doc ID 1491960.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://ksun-oracle.blogspot.com/2015/12/oracle-bigfile-tablespace-pre.html&lt;br /&gt;
&lt;br /&gt;
=pulizia trace con adrci=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ORACLE_HOME=/sw/app/oracle/product/19.0.0.0/db_3&lt;br /&gt;
#ORACLE_SID=CECOPRD1&lt;br /&gt;
#ORAENV_ASK=NO&lt;br /&gt;
#export ORACLE_HOME ORACLE_SID ORAENV_ASK&lt;br /&gt;
#. oraenv&lt;br /&gt;
#unset ORAENV_ASK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /home/oracle/.CECOPRD.env&lt;br /&gt;
&lt;br /&gt;
#ADR_BASE=/oradiag/rdbmsdiag&lt;br /&gt;
#export ADR_BASE&lt;br /&gt;
&lt;br /&gt;
# 21 giorni (504 ore 30240 minuti)&lt;br /&gt;
&lt;br /&gt;
for ADR_BASE in /oradiag/rdbmsdiag /oradiag/griddiag&lt;br /&gt;
do&lt;br /&gt;
echo ADR_BASE=$ADR_BASE&lt;br /&gt;
export ADR_BASE=$ADR_BASE&lt;br /&gt;
sleep 2&lt;br /&gt;
&lt;br /&gt;
adrci exec=&#039;show homes&#039; | grep -v &#039;ADR Homes:&#039; | while read H&lt;br /&gt;
do&lt;br /&gt;
 adrci exec=&amp;quot;set home $H&lt;br /&gt;
set control \(SHORTP_POLICY=504\)&lt;br /&gt;
set control \(LONGP_POLICY=504\)&lt;br /&gt;
show control&lt;br /&gt;
purge -age 30240&lt;br /&gt;
&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6127</id>
		<title>Oracle a modo mio</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6127"/>
		<updated>2026-05-15T13:44:00Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Statistiche==&lt;br /&gt;
&lt;br /&gt;
 exec dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;HR&#039;,cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
 exec dbms_stats.gather_database_stats(cascade=&amp;gt;true,options=&amp;gt;&#039;GATHER STALE&#039;,method_opt=&amp;gt;&#039;FOR ALL COLUMNS SIZE AUTO&#039;,degree=&amp;gt;8);&lt;br /&gt;
&lt;br /&gt;
==System Statistics==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 col SNAME for a20&lt;br /&gt;
 col PNAME for a30&lt;br /&gt;
 col PVAL2 for a20&lt;br /&gt;
 select * from sys.aux_stats$;&lt;br /&gt;
 &lt;br /&gt;
 -- raccolta timed statistics&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;START&#039;);&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;STOP&#039;);&lt;br /&gt;
 -- in minuti&lt;br /&gt;
 exec dbms_stats.gather_system_stats(gathering_mode=&amp;gt;&#039;INTERVAL&#039;,interval=&amp;gt;30);&lt;br /&gt;
&lt;br /&gt;
 -- imposta valori a mano&lt;br /&gt;
 -- importanti da impostare in modalità workload:&lt;br /&gt;
 --   SREADTIM (single block read in ms)&lt;br /&gt;
 --   MREADTIM (multiple block read in ms)&lt;br /&gt;
 --   MRBC     (average multiblock read count in blocks)&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,10);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,20);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,16);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- intervento drastico:&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;SREADTIM&#039;,1);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MREADTIM&#039;,100);&lt;br /&gt;
 exec dbms_stats.set_system_stats(&#039;MBRC&#039;,64);&lt;br /&gt;
&lt;br /&gt;
 -- per cancellare e tornare in modalità noworkload&lt;br /&gt;
 exec dbms_stats.delete_system_stats();&lt;br /&gt;
&lt;br /&gt;
 -- per esportare le system statistics in una tabella&lt;br /&gt;
 exec dbms_stats.export_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- per importare le system statistics da una tabella&lt;br /&gt;
 exec dbms_stats.import_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- oppure&lt;br /&gt;
 exec dbms_stats.restore_system_stats(stattab=&amp;gt;&#039;TABLE1&#039;);&lt;br /&gt;
 -- la tabella va create con&lt;br /&gt;
 exec dbms_stats.create_stat_table( ownname =&amp;gt; &#039;SYS&#039;,stattab =&amp;gt;&#039;TABLE1&#039;,tblspace =&amp;gt; &#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
==aggiunta service names==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 0&lt;br /&gt;
set linesize 200&lt;br /&gt;
set feedback off&lt;br /&gt;
set trim on trims on&lt;br /&gt;
&lt;br /&gt;
spool /tmp/aa.sql&lt;br /&gt;
select &#039;alter system set service_names=&#039;&#039;&#039; || listagg(value,&#039;&#039;&#039;,&#039;&#039;&#039;) within group(order by value) || &#039;&#039;&#039; scope=both sid=&#039;&#039;*&#039;&#039;;&#039; from &lt;br /&gt;
( select value from v$spparameter where name=&#039;service_names&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.mydomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
  union&lt;br /&gt;
  select value || &#039;.otherdomain.com&#039; from v$spparameter where name=&#039;db_name&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
@/tmp/aa.sql&lt;br /&gt;
!rm /tmp/aa.sql&lt;br /&gt;
&lt;br /&gt;
alter system register;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==audit asm su syslog==&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=TRUE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local0.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
==audit database su syslog==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 alter system set AUDIT_SYS_OPERATIONS=FALSE scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_SYSLOG_LEVEL=&#039;local6.info&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set AUDIT_TRAIL=&#039;OS&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Per quali eventi generare record di audit:&lt;br /&gt;
 audit session;&lt;br /&gt;
 audit connect whenever not successful;&lt;br /&gt;
&lt;br /&gt;
==unified audit database ==&lt;br /&gt;
Su syslog solo dalla 18 in poi:&lt;br /&gt;
 alter system set UNIFIED_AUDIT_SYSTEMLOG = &#039;LOCAL6.NOTICE&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
Con la versione 12 solo su tabelle;&lt;br /&gt;
&lt;br /&gt;
Per scrittura immediata audit:&lt;br /&gt;
 BEGIN&lt;br /&gt;
  DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY(&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,&lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_WRITE_MODE, &lt;br /&gt;
   DBMS_AUDIT_MGMT.AUDIT_TRAIL_IMMEDIATE_WRITE);&lt;br /&gt;
 END;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Per leggere le policy:&lt;br /&gt;
 set linesize 2000&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 col policy_name for a20&lt;br /&gt;
 col audit_condition for a20&lt;br /&gt;
 col audit_option for a40&lt;br /&gt;
 col object_schema for a20&lt;br /&gt;
 col object_name for a20&lt;br /&gt;
 select * from AUDIT_UNIFIED_POLICIES where policy_name=&#039;ORA_SECURECONFIG&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per intercettare logon e logoff:&lt;br /&gt;
 CREATE AUDIT POLICY LOG_ON_OFF ACTIONS LOGON,LOGOFF;&lt;br /&gt;
 AUDIT POLICY LOG_ON_OFF;&lt;br /&gt;
&lt;br /&gt;
Per leggere i risultati:&lt;br /&gt;
 select audit_type,event_timestamp,action_name,object_name from UNIFIED_AUDIT_TRAIL order by event_timestamp desc;&lt;br /&gt;
&lt;br /&gt;
==db block checking==&lt;br /&gt;
&lt;br /&gt;
Molta attenzione all&#039;utilizzo di risorse ed all&#039;eventuale rallentamento che tale configurazione provoca. Sebbene Oracle dichiari che il calo di performances sia basso, va valutato caso per caso. In alcuni casi e per alcune procedure, si può verificare un calo di prestazioni notevole.&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=spfile sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
11.2&lt;br /&gt;
&lt;br /&gt;
 alter system set db_block_checking=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
 alter system set db_block_checksum=&#039;FULL&#039; scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
=12c=&lt;br /&gt;
Ottimizzazioni 12cR1&lt;br /&gt;
&lt;br /&gt;
==undo temp==&lt;br /&gt;
 alter system set temp_undo_enabled=true scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
== optimizer_adaptive_features ==&lt;br /&gt;
 alter system set optimizer_adaptive_features=false scope=both sid=&#039;*&#039;;&lt;br /&gt;
&lt;br /&gt;
Con versione 12.2 le funzioni del parametro sono state divise in due parametri diversi, per cui non serve modificare il default:&lt;br /&gt;
 optimizer_adaptive_plans            boolean	 TRUE&lt;br /&gt;
 optimizer_adaptive_statistics       boolean	 FALSE&lt;br /&gt;
&lt;br /&gt;
==default bigfile==&lt;br /&gt;
&lt;br /&gt;
 alter database set default bigfile tablespace;&lt;br /&gt;
&lt;br /&gt;
==profilo scadenza password==&lt;br /&gt;
&lt;br /&gt;
==recyclebin cancellazione a tempo==&lt;br /&gt;
&lt;br /&gt;
==pulizia alert e diag con adrci==&lt;br /&gt;
&lt;br /&gt;
==incrementare SDU e BUF_SIZE==&lt;br /&gt;
per incrementare SDU bisogna agire sul listener.ora:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LISTENER =&lt;br /&gt;
  (DESCRIPTION_LIST =&lt;br /&gt;
    (DESCRIPTION =&lt;br /&gt;
      (SDU = 32768)&lt;br /&gt;
      (SEND_BUF_SIZE=32768)&lt;br /&gt;
      (RECV_BUF_SIZE=32768)&lt;br /&gt;
      (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 2483))&lt;br /&gt;
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2483))&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nel database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  alter system set local_listener=&#039;(DESCRIPTION=(SDU=32768)(TDU=32768)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=2483)))&#039; scope=both;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==expdp==&lt;br /&gt;
Eliminare segmenti vuoti prima della export (solo Enterprise Edition):&lt;br /&gt;
 exec DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS();&lt;br /&gt;
Consistente:&lt;br /&gt;
 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039;&lt;br /&gt;
Evitare errori:&lt;br /&gt;
 exclude=statistics&lt;br /&gt;
&lt;br /&gt;
==svuota schema==&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 alter session set recyclebin=off;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,table_name from dba_tables where owner=&#039;&amp;amp;1&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop table &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.table_name || &#039;&amp;quot; cascade constraints&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
 &lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type !=&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     execute immediate &#039;drop &#039; || c1.object_type || &#039; &#039; || c1.owner || &#039;.&amp;quot;&#039; || c1.object_name || &#039;&amp;quot;&#039;;&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select owner,object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039; and object_type =&#039;JOB&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
    begin&lt;br /&gt;
     dbms_scheduler.drop_job(c1.owner || &#039;.&#039; || C1.object_name);&lt;br /&gt;
     exception&lt;br /&gt;
      when others then&lt;br /&gt;
       null;&lt;br /&gt;
    end;&lt;br /&gt;
   end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200 linesize 200 trim on trims on&lt;br /&gt;
 col object_name for a40&lt;br /&gt;
 col object_type for a40&lt;br /&gt;
 select object_name,object_type from dba_objects where owner=&#039;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
==impdp==&lt;br /&gt;
Via db link:&lt;br /&gt;
&lt;br /&gt;
 impdp &amp;quot;&#039;/ as sysdba&#039;&amp;quot; directory=DUMP01 logfile=impdp_dblink_01.log network_link=dblink_impdp01 exclude=statistics \&lt;br /&gt;
 schemas=USER01 flashback_time=&#039;&amp;quot;to_timestamp_tz(systimestamp)&amp;quot;&#039; transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
via dblink con parfile:&lt;br /&gt;
&lt;br /&gt;
 userid=&amp;quot;/ as sysdba&amp;quot;&lt;br /&gt;
 directory=DPUMP_DIR&lt;br /&gt;
 logfile=impdp_tabella_singola.log&lt;br /&gt;
 network_link=impdp_database_prod&lt;br /&gt;
 tables=esempio.tabella01 &lt;br /&gt;
 remap_schema=ESEMPIO:NUOVOSCHEMA1&lt;br /&gt;
 remap_tablespace=DATI:NUOODATI01&lt;br /&gt;
 flashback_time=&amp;quot;systimestamp&amp;quot;&lt;br /&gt;
 exclude=statistics,grant&lt;br /&gt;
 transform=DISABLE_ARCHIVE_LOGGING:Y,OID:N&lt;br /&gt;
&lt;br /&gt;
Opzioni possibili:&lt;br /&gt;
&lt;br /&gt;
 transform=table_compression_clause:&amp;quot;ROW STORE COMPRESS ADVANCED&amp;quot;&lt;br /&gt;
 transform=lob_storage:securefile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;systimestamp&amp;lt;/code&amp;gt; ritorna sempre un &amp;lt;code&amp;gt;timestamp with time zone&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==clean impdp/expdp==&lt;br /&gt;
 SELECT &#039;drop table &amp;quot;&#039; || owner_name || &#039;&amp;quot;.&amp;quot;&#039; || job_name || &#039;&amp;quot;;&#039; FROM dba_datapump_jobs where state = &#039;NOT RUNNING&#039;;&lt;br /&gt;
&lt;br /&gt;
=Su Linux=&lt;br /&gt;
&lt;br /&gt;
==verificare con quale gid girano i processi oracle==&lt;br /&gt;
&lt;br /&gt;
 ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup&lt;br /&gt;
&lt;br /&gt;
 ps -u oracle -o stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,group,egroup,rgroup,sgroup,fgroup | more&lt;br /&gt;
&lt;br /&gt;
Va preso il gid del gruppo egroup o del gruppo rgroup?&lt;br /&gt;
&lt;br /&gt;
==attivare hugepages==&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; (su EL &amp;lt;=5.x) o &amp;lt;code&amp;gt;/etc/sysctl.d/99-oracle.conf&amp;lt;/code&amp;gt; (su EL &amp;gt;= 6.x)&lt;br /&gt;
&lt;br /&gt;
 ### Hugepages&lt;br /&gt;
 vm.hugetlb_shm_group=54322&lt;br /&gt;
 vm.nr_hugepages=1024&lt;br /&gt;
&lt;br /&gt;
==disattivare transparent hugepages==&lt;br /&gt;
&lt;br /&gt;
disable transparent hugepages https://docs.oracle.com/database/121/CWLIN/memry.htm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[ -f /sys/kernel/mm/redhat_transparent_hugepage/enabled ] &amp;amp;&amp;amp; echo never &amp;gt; /sys/kernel/mm/redhat_transparent_hugepage/enabled&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==usare kernel uek==&lt;br /&gt;
&lt;br /&gt;
==preallocazione spazio==&lt;br /&gt;
Disattivare completamente:&lt;br /&gt;
&lt;br /&gt;
 alter system set &amp;quot;_enable_space_preallocation&amp;quot;=0;&lt;br /&gt;
&lt;br /&gt;
oppure ridurre la percentuale:&lt;br /&gt;
 &lt;br /&gt;
 alter system set &amp;quot;_kttext_warning&amp;quot;=5;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMCO (Space Management Coordinator) For Autoextend On Datafiles And How To Disable/Enable (Doc ID 743773.1)&lt;br /&gt;
&lt;br /&gt;
AUTOEXTEND Grows To Full Size Without Reason (Doc ID 1459097.1)&lt;br /&gt;
&lt;br /&gt;
Master Note: Overview of Oracle Segment Storage (Doc ID 1491960.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://ksun-oracle.blogspot.com/2015/12/oracle-bigfile-tablespace-pre.html&lt;br /&gt;
&lt;br /&gt;
=pulizia trace=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ORACLE_HOME=/sw/app/oracle/product/19.0.0.0/db_3&lt;br /&gt;
#ORACLE_SID=CECOPRD1&lt;br /&gt;
#ORAENV_ASK=NO&lt;br /&gt;
#export ORACLE_HOME ORACLE_SID ORAENV_ASK&lt;br /&gt;
#. oraenv&lt;br /&gt;
#unset ORAENV_ASK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /home/oracle/.CECOPRD.env&lt;br /&gt;
&lt;br /&gt;
#ADR_BASE=/oradiag/rdbmsdiag&lt;br /&gt;
#export ADR_BASE&lt;br /&gt;
&lt;br /&gt;
# 21 giorni (504 ore 30240 minuti)&lt;br /&gt;
&lt;br /&gt;
for ADR_BASE in /oradiag/rdbmsdiag /oradiag/griddiag&lt;br /&gt;
do&lt;br /&gt;
echo ADR_BASE=$ADR_BASE&lt;br /&gt;
export ADR_BASE=$ADR_BASE&lt;br /&gt;
sleep 2&lt;br /&gt;
&lt;br /&gt;
adrci exec=&#039;show homes&#039; | grep -v &#039;ADR Homes:&#039; | while read H&lt;br /&gt;
do&lt;br /&gt;
 adrci exec=&amp;quot;set home $H&lt;br /&gt;
set control \(SHORTP_POLICY=504\)&lt;br /&gt;
set control \(LONGP_POLICY=504\)&lt;br /&gt;
show control&lt;br /&gt;
purge -age 30240&lt;br /&gt;
&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6126</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6126"/>
		<updated>2026-05-14T14:08:56Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Gestione stringhe con caratteri unicode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;èéà°òç½€&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;ÈÉÀ°ÒÇ½€&#039;)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
\00E8\00E9\00E0\00B0\00F2\00E7\00BD\20AC&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6125</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6125"/>
		<updated>2026-05-14T14:07:24Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Gestione stringhe con caratteri unicode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Fernando, tre caffè! Olé!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caff\00E8! Ol\00E9!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select unistr(&#039;Fernando, tre caff\00E8! Ol\00E9!&#039;) as fernando from dual;&lt;br /&gt;
&lt;br /&gt;
FERNANDO&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
Fernando, tre caffè! Olé!&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6124</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6124"/>
		<updated>2026-05-14T14:03:15Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Gestione stringhe con caratteri unicode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Caffé a €1,50&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;CAFFÉA€1,50&#039;)&lt;br /&gt;
---------------------------------------------------------------&lt;br /&gt;
Caff\00E9 a \20AC1,50&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select UNISTR(&#039;Caff\00E9 a \20AC1,50&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
UNISTR(&#039;CAFF\00E9A\20AC1,50&#039;)&lt;br /&gt;
---------------------------------------&lt;br /&gt;
Caffé a €1,50&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6123</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6123"/>
		<updated>2026-05-14T14:02:27Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Character Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
==Gestione stringhe con caratteri unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; select asciistr(&#039;Caffé a €1,50&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
ASCIISTR(&#039;Caffé a €1,50&#039;)&lt;br /&gt;
---------------------------------------------------------------&lt;br /&gt;
Caff\00E9 a \20AC1,50&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; select UNISTR(&#039;Caff\00E9 a \20AC1,50&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
UNISTR(&#039;CAFF\00E9A\20AC1,50&#039;)&lt;br /&gt;
---------------------------------------&lt;br /&gt;
Caffé a €1,50&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6122</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6122"/>
		<updated>2026-05-14T08:14:55Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Controllo Allocazione Spazio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
==creazione acl==&lt;br /&gt;
&lt;br /&gt;
==interrogazioni acl==&lt;br /&gt;
 col host for a40&lt;br /&gt;
 col acl for a45&lt;br /&gt;
 col acl_owner for a10&lt;br /&gt;
 set pagesize 200 linesize 200&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACLS order by host,lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 col principal for a25&lt;br /&gt;
 col privilege for a20&lt;br /&gt;
 col start_date for a4&lt;br /&gt;
 col end_date for a4&lt;br /&gt;
 SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES order by principal,privilege;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select a.host,a.lower_port,p.acl,p.principal,p.privilege,p.is_grant&lt;br /&gt;
  from DBA_NETWORK_ACLS a inner join DBA_NETWORK_ACL_PRIVILEGES p on (a.aclid=p.aclid)&lt;br /&gt;
  order by p.acl,p.principal,a.host,a.lower_port;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT PRINCIPAL, HOST, lower_port, upper_port, acl, &#039;connect&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;connect&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID)  &lt;br /&gt;
 UNION ALL&lt;br /&gt;
 SELECT PRINCIPAL, HOST, NULL lower_port, NULL upper_port, acl, &#039;resolve&#039; AS PRIVILEGE, &lt;br /&gt;
    DECODE(DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, PRINCIPAL, &#039;resolve&#039;), 1,&#039;GRANTED&#039;, 0,&#039;DENIED&#039;, NULL) PRIVILEGE_STATUS&lt;br /&gt;
 FROM DBA_NETWORK_ACLS&lt;br /&gt;
    JOIN DBA_NETWORK_ACL_PRIVILEGES USING (ACL, ACLID);&lt;br /&gt;
&lt;br /&gt;
=Job=&lt;br /&gt;
==Job Immediato==&lt;br /&gt;
&lt;br /&gt;
 col job_name for a50&lt;br /&gt;
 col owner for a20&lt;br /&gt;
 select job_name, owner, enabled from dba_scheduler_jobs;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;il_mio_job&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin execute immediate &#039;&#039;create index owner.index_name on owner.table(col01) online nologging&#039;&#039;; end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;crea indice&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per analizzare uno schema:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
   dbms_scheduler.create_job(&lt;br /&gt;
     job_name    =&amp;gt; &#039;analyze_schema&#039;,&lt;br /&gt;
     job_type    =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
     job_action  =&amp;gt; &#039;begin dbms_stats.gather_schema_stats(ownname=&amp;gt;&#039;&#039;SCHEMA&#039;&#039;,cascade=&amp;gt;true); end;&#039;,&lt;br /&gt;
     enabled     =&amp;gt; TRUE,&lt;br /&gt;
     auto_drop   =&amp;gt; TRUE,&lt;br /&gt;
     comments    =&amp;gt; &#039;analyze&#039;&lt;br /&gt;
   );&lt;br /&gt;
 end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
==Elenco Indici==&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 140&lt;br /&gt;
 col column_name for a30&lt;br /&gt;
 col pos for 99&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col index_name for a35&lt;br /&gt;
 select table_owner || &#039;.&#039; || table_name table_name, index_owner || &#039;.&#039; || index_name index_name, column_name, column_position pos&lt;br /&gt;
  from dba_ind_columns&lt;br /&gt;
  where table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
  order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 140&lt;br /&gt;
set autotrace off&lt;br /&gt;
col column_name for a30&lt;br /&gt;
col pos for 99&lt;br /&gt;
col table_name for a38&lt;br /&gt;
col index_name for a43&lt;br /&gt;
col tbs for a20&lt;br /&gt;
select c.table_owner || &#039;.&#039; || c.table_name table_name, c.index_owner || &#039;.&#039; || c.index_name || &#039; &#039; || i.generated index_name,&lt;br /&gt;
       substr(i.uniqueness,1,1) U, c.column_name, c.column_position pos, i.tablespace_name tbs&lt;br /&gt;
from dba_ind_columns c&lt;br /&gt;
 inner join dba_indexes i on &lt;br /&gt;
 (c.table_owner=i.table_owner and c.table_name=i.table_name and&lt;br /&gt;
  c.index_owner=i.owner and c.index_name=i.index_name)&lt;br /&gt;
where c.table_name=upper(&#039;&amp;amp;&amp;amp;1&#039;)&lt;br /&gt;
order by 1,2,4;&lt;br /&gt;
&lt;br /&gt;
col owner for a40&lt;br /&gt;
col tablespace_name for a40&lt;br /&gt;
select owner,tablespace_name,bytes/(1024*1024) mb from dba_segments where segment_name=upper(&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indici con proprietario diverso==&lt;br /&gt;
 select owner,index_name,table_owner,table_name from dba_indexes where table_owner!=owner;&lt;br /&gt;
&lt;br /&gt;
=Processi e sessioni=&lt;br /&gt;
==verifica valori limite==&lt;br /&gt;
 col resource_name for a40&lt;br /&gt;
 select resource_name,current_utilization,max_utilization,limit_value from v$resource_limit;&lt;br /&gt;
&lt;br /&gt;
==Elenco processi di background==&lt;br /&gt;
&lt;br /&gt;
 select s.sid,  s.process, s.program, p.name from v$session s join v$bgprocess p using (paddr) ;&lt;br /&gt;
&lt;br /&gt;
==sessioni==&lt;br /&gt;
&lt;br /&gt;
===Sessioni Attive===&lt;br /&gt;
&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====versione RAC====&lt;br /&gt;
 set linesize 220&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a35&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial#||&#039;@&#039;||s.inst_id as sid_ser,p.spid,&lt;br /&gt;
  s.username,s.machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from gv$session s&lt;br /&gt;
  left outer join gv$process p on (p.addr=s.paddr and s.inst_id=p.inst_id)&lt;br /&gt;
  where s.type=&#039;USER&#039; and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
====con eventi====&lt;br /&gt;
&lt;br /&gt;
 set linesize 230&lt;br /&gt;
 set pagesize 300&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 col sql_id for a14&lt;br /&gt;
 col prev_sql_id for a14&lt;br /&gt;
 col siw for 9999999&lt;br /&gt;
 col status for a15&lt;br /&gt;
 col event for a32&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,(sysdate-s.sql_exec_start)*86400 sec_exec,substr(s.program,1,20) as program,s.seconds_in_wait as siw,s.event&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
  --and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
  -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status desc,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
===Sessioni ordinate per tipo===&lt;br /&gt;
&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col machine for a21&lt;br /&gt;
 col username for a20&lt;br /&gt;
 col program for a20&lt;br /&gt;
 col sid_ser for a15&lt;br /&gt;
 col spid for a10&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,s.status,&lt;br /&gt;
  s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
  s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
  from v$session s&lt;br /&gt;
  left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
  where s.type=&#039;USER&#039;&lt;br /&gt;
 -- and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
  order by s.status,s.logon_time;&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
 alter session set nls_date_format=&#039;DD-MM-YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 select s.sid ||&#039;,&#039;||s.serial# as sid_ser,p.spid,&lt;br /&gt;
 s.username,substr(s.machine,1,20) as machine,s.sql_id,s.prev_sql_id,&lt;br /&gt;
 s.logon_time,substr(s.program,1,20) as program,s.seconds_in_wait as siw&lt;br /&gt;
 from v$session s&lt;br /&gt;
 left outer join v$process p on (p.addr=s.paddr)&lt;br /&gt;
 where s.type=&#039;USER&#039;&lt;br /&gt;
 and s.status=&#039;ACTIVE&#039;&lt;br /&gt;
 and s.username not in (&#039;SYS&#039;,&#039;DBSNMP&#039;)&lt;br /&gt;
 order by s.logon_time;&lt;br /&gt;
&lt;br /&gt;
==long operations==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
SET LINESize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set autotrace off&lt;br /&gt;
COL sid FORMAT 9999&lt;br /&gt;
COL serial# FORMAT 9999999&lt;br /&gt;
col sid_ser for a12&lt;br /&gt;
COL username FORMAT A30&lt;br /&gt;
COL machine FORMAT A50&lt;br /&gt;
COL prog% FORMAT 999.00&lt;br /&gt;
COL elapsed FORMAT A10&lt;br /&gt;
COL remaining FORMAT A10&lt;br /&gt;
col message for a80&lt;br /&gt;
spool longops2.log&lt;br /&gt;
SELECT s.sid || &#039;,&#039; || s.serial# sid_ser,&lt;br /&gt;
s.username,&lt;br /&gt;
-- s.machine,&lt;br /&gt;
ROUND(sl.elapsed_seconds/60) || &#039;:&#039; || MOD(sl.elapsed_seconds,60) elapsed,&lt;br /&gt;
ROUND(sl.time_remaining/60) || &#039;:&#039; || MOD(sl.time_remaining,60) remaining,&lt;br /&gt;
ROUND(sl.sofar/sl.totalwork*100, 2) &amp;quot;prog%&amp;quot;,&lt;br /&gt;
s.sql_id,&lt;br /&gt;
replace(sl.message,&#039;Blocks done&#039;,&#039;&#039;) as message&lt;br /&gt;
FROM v$session s&lt;br /&gt;
inner join v$session_longops sl on ( s.sid = sl.sid AND s.serial# = sl.serial# AND sl.time_remaining &amp;gt; 0 )&lt;br /&gt;
order by s.sql_id;&lt;br /&gt;
spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 col message for a90&lt;br /&gt;
 col username for a30&lt;br /&gt;
 alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
 spool longops.txt&lt;br /&gt;
 select username,sql_id,start_time,message from&lt;br /&gt;
 (&lt;br /&gt;
  select&lt;br /&gt;
     username,&lt;br /&gt;
     sql_id,&lt;br /&gt;
     opname,&lt;br /&gt;
     start_time,&lt;br /&gt;
     target,&lt;br /&gt;
     sofar,&lt;br /&gt;
     totalwork,&lt;br /&gt;
     units,&lt;br /&gt;
     elapsed_seconds,&lt;br /&gt;
     message&lt;br /&gt;
   from&lt;br /&gt;
        v$session_longops&lt;br /&gt;
     where time_remaining!=0&lt;br /&gt;
  order by start_time desc&lt;br /&gt;
 )&lt;br /&gt;
 where rownum &amp;lt;=16;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rollback==&lt;br /&gt;
 select state,UNDOBLOCKSDONE,UNDOBLOCKSTOTAL, UNDOBLOCKSDONE/UNDOBLOCKSTOTAL*100 from gv$fast_start_transactions;&lt;br /&gt;
&lt;br /&gt;
=Piano della query per sql_id=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = &#039;&amp;amp;1&#039;;&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;,null,&#039;basic&#039;));&lt;br /&gt;
 -- select plan_table_output from table(dbms_xplan.display_cursor(&#039;&amp;amp;1&#039;));&lt;br /&gt;
 select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=&amp;gt;&#039;&amp;amp;1&#039;,cursor_child_no=&amp;gt;&amp;amp;2));&lt;br /&gt;
&lt;br /&gt;
=Storico query che hanno usato più TEMP=&lt;br /&gt;
Richiede AWR.&lt;br /&gt;
&lt;br /&gt;
 select sql_id,max(TEMP_SPACE_ALLOCATED)/(1024*1024*1024) gig&lt;br /&gt;
   from DBA_HIST_ACTIVE_SESS_HISTORY&lt;br /&gt;
  where sample_time &amp;gt; sysdate-2&lt;br /&gt;
    and TEMP_SPACE_ALLOCATED &amp;gt; (500*1024*1024)&lt;br /&gt;
 group by sql_id order by 2;&lt;br /&gt;
&lt;br /&gt;
Versione per statspack:&lt;br /&gt;
&lt;br /&gt;
=Segment Advisor=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200&lt;br /&gt;
 set linesize 200&lt;br /&gt;
 set autotrace off&lt;br /&gt;
 -- select tablespace_name, segment_name, segment_type, partition_name,&lt;br /&gt;
 -- recommendations, c1 from&lt;br /&gt;
 -- table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;));&lt;br /&gt;
 spool segadv.txt&lt;br /&gt;
 select &#039;/*&#039; || recommendations || &#039; */ &#039; || c1 from&lt;br /&gt;
  table(dbms_space.asa_recommendations(&#039;FALSE&#039;, &#039;FALSE&#039;, &#039;FALSE&#039;)) where c1 is not null order by segment_type,reclaimable_space;&lt;br /&gt;
 spool off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Logging=&lt;br /&gt;
&lt;br /&gt;
 -- tabelle&lt;br /&gt;
 set pagesize 0 linesize 200 trim on trims on feedback off echo off timing off&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; logging;&#039; from dba_tables where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; logging;&#039; from dba_indexes where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lobs where owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- tabelle partizionate&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; modify default attributes logging; &#039; from dba_part_tables where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || owner || &#039;.&#039; || index_name || &#039; modify default attributes logging; &#039; from dba_part_indexes where owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify default attributes lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_part_lobs where table_owner!=&#039;SYS&#039; and def_logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
 -- partizioni&lt;br /&gt;
 select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_tab_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
 select &#039;alter index &#039; || index_owner || &#039;.&#039; || index_name || &#039; modify partition &#039; || partition_name || &#039; logging;&#039; from dba_ind_partitions where index_owner!=&#039;SYS&#039; and logging=&#039;NO&#039; and status=&#039;USABLE&#039;;&lt;br /&gt;
  select &#039;alter table &#039; || table_owner || &#039;.&#039; || table_name || &#039; modify partition &#039; || partition_name || &#039; lob (&#039; || column_name || &#039;) (cache logging);&#039; from dba_lob_partitions where table_owner!=&#039;SYS&#039; and logging=&#039;NO&#039;;&lt;br /&gt;
&lt;br /&gt;
=Controllo Allocazione Spazio=&lt;br /&gt;
Questa query controlla lo spazio allocato, e lo confronta con lo spazio di massima crescita dei datafiles.&lt;br /&gt;
Utile per evidenziare casi in cui è necessario aggiungere altri datafiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,sum(bytes)/(1024*1024) mbs, count(*) nsegs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024) max,sum(bytes)/(1024*1024) mba&lt;br /&gt;
             from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
        s.nsegs,&lt;br /&gt;
	round(f.max) max,&lt;br /&gt;
	round(s.mbs) mbs,&lt;br /&gt;
	round(f.max-s.mbs) sdiff,&lt;br /&gt;
	round(((f.max-s.mbs)/f.max)*100) pcts,&lt;br /&gt;
	round(f.mba) mba,&lt;br /&gt;
	round(f.mba-s.mbs) shrinkable,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pctsrnk&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 10;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,count(*) nf,round(sum(bytes)/(1024*1024)) mba,round(sum(case when maxbytes=0 then bytes else maxbytes end)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
        f.nf nfiles,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Versioni vecchie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set pagesize 200&lt;br /&gt;
set linesize 200&lt;br /&gt;
&lt;br /&gt;
with &lt;br /&gt;
 segs as (select tablespace_name,round(sum(bytes)/(1024*1024)) mbs from dba_segments group by tablespace_name),&lt;br /&gt;
 files as (select tablespace_name,count(file_name) nfiles,round(sum(maxbytes)/(1024*1024)) max,round(sum(bytes)/(1024*1024)) mba from dba_data_files group by tablespace_name)&lt;br /&gt;
select	t.tablespace_name,&lt;br /&gt;
	t.block_size,&lt;br /&gt;
	f.nfiles,&lt;br /&gt;
	f.max,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	s.mbs,&lt;br /&gt;
	f.mba-s.mbs diff,&lt;br /&gt;
	f.max-f.mba mdiff,&lt;br /&gt;
	round(((f.max-f.mba)/f.max)*100) pcta,&lt;br /&gt;
	round(((f.mba-s.mbs)/f.mba)*100) pcts&lt;br /&gt;
from dba_tablespaces t &lt;br /&gt;
inner join files f on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
left outer join segs s on (t.tablespace_name=s.tablespace_name)&lt;br /&gt;
order by 7;&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
 tf as (select tablespace_name,round(sum(bytes)/(1024*1024)) mba,round(sum(maxbytes)/(1024*1024)) max from dba_temp_files group by tablespace_name)&lt;br /&gt;
select	g.group_name,&lt;br /&gt;
	t.tablespace_name,&lt;br /&gt;
	f.mba,&lt;br /&gt;
	f.max,&lt;br /&gt;
	round(s.allocated_space/(1024*1024)) mballoc,&lt;br /&gt;
	round(s.free_space/(1024*1024)) mbfree&lt;br /&gt;
   from tf f&lt;br /&gt;
 left outer join dba_tablespace_groups g on (g.tablespace_name=f.tablespace_name)&lt;br /&gt;
 left outer join dba_temp_free_space s on (s.tablespace_name=f.tablespace_name)&lt;br /&gt;
 right outer join dba_tablespaces t on (t.tablespace_name=f.tablespace_name)&lt;br /&gt;
 where t.contents=&#039;TEMPORARY&#039;&lt;br /&gt;
 order by 1,2,3;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
       TBS.MB_TBS,&lt;br /&gt;
       SEG.MB_SEG,&lt;br /&gt;
       TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
       TBS.TABLESPACE_NAME&lt;br /&gt;
  from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
               round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
               f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_data_files f&lt;br /&gt;
         group by f.tablespace_name) TBS,&lt;br /&gt;
       (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
               s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
          from dba_segments s&lt;br /&gt;
         group by s.tablespace_name) SEG&lt;br /&gt;
  where SEG.tablespace_name=TBS.tablespace_name;&lt;br /&gt;
&lt;br /&gt;
 select TBS.MB_MAX,&lt;br /&gt;
      TBS.MB_TBS,&lt;br /&gt;
      SEG.MB_SEG,&lt;br /&gt;
      TBS.MB_MAX-SEG.MB_SEG MB_FREE,&lt;br /&gt;
      100-(100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0)) USED,&lt;br /&gt;
      100*(TBS.MB_MAX-SEG.MB_SEG)/nullif(TBS.MB_MAX,0) FREE,&lt;br /&gt;
      TBS.TABLESPACE_NAME&lt;br /&gt;
 from (select round(sum(f.maxbytes)/(1024*1024)) MB_MAX,&lt;br /&gt;
              round(sum(f.user_bytes)/(1024*1024)) MB_TBS,&lt;br /&gt;
              f.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_data_files f&lt;br /&gt;
        group by f.tablespace_name) TBS,&lt;br /&gt;
      (select round(sum(s.bytes)/(1024*1024)) MB_SEG,&lt;br /&gt;
              s.tablespace_name TABLESPACE_NAME&lt;br /&gt;
         from dba_segments s&lt;br /&gt;
        group by s.tablespace_name) SEG&lt;br /&gt;
 where SEG.tablespace_name=TBS.tablespace_name&lt;br /&gt;
  order by 5;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoextend datafiles==&lt;br /&gt;
&lt;br /&gt;
Autoextend datafiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_data_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database datafile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Autoextend tempfiles:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select file_id from dba_temp_files)&lt;br /&gt;
  loop&lt;br /&gt;
    execute immediate &#039;alter database tempfile &#039; || c1.file_id || &#039; autoextend on next 128M maxsize unlimited&#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Shrink datafiles==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 1000 pagesize 0 feedback off trimspool on&lt;br /&gt;
with&lt;br /&gt;
 hwm as (&lt;br /&gt;
  -- get highest block id from each datafiles ( from x$ktfbue as we don&#039;t need all joins from dba_extents )&lt;br /&gt;
  select /*+ materialize */ ktfbuesegtsn ts#,ktfbuefno relative_fno,max(ktfbuebno+ktfbueblks-1) hwm_blocks&lt;br /&gt;
  from sys.x$ktfbue group by ktfbuefno,ktfbuesegtsn&lt;br /&gt;
 ),&lt;br /&gt;
 hwmts as (&lt;br /&gt;
  -- join ts# with tablespace_name&lt;br /&gt;
  select name tablespace_name,relative_fno,hwm_blocks&lt;br /&gt;
  from hwm join v$tablespace using(ts#)&lt;br /&gt;
 ),&lt;br /&gt;
 hwmdf as (&lt;br /&gt;
  -- join with datafiles, put 5M minimum for datafiles with no extents&lt;br /&gt;
  select file_name,nvl(hwm_blocks*(bytes/blocks),5*1024*1024)&lt;br /&gt;
hwm_bytes,bytes,autoextensible,maxbytes&lt;br /&gt;
  from hwmts right join dba_data_files using(tablespace_name,relative_fno)&lt;br /&gt;
 )&lt;br /&gt;
select&lt;br /&gt;
 case when autoextensible=&#039;YES&#039; and maxbytes&amp;gt;=bytes&lt;br /&gt;
 then -- we generate resize statements only if autoextensible can grow back to current size&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)||&#039;M */ &#039;&lt;br /&gt;
   ||&#039;alter database datafile &#039;&#039;&#039;||file_name||&#039;&#039;&#039; resize &#039;||ceil(hwm_bytes/1024/1024)||&#039;M;&#039;&lt;br /&gt;
 else -- generate only a comment when autoextensible is off&lt;br /&gt;
  &#039;/* reclaim &#039;||to_char(ceil((bytes-hwm_bytes)/1024/1024),999999)&lt;br /&gt;
   ||&#039;M from &#039;||to_char(ceil(bytes/1024/1024),999999)&lt;br /&gt;
   ||&#039;M after setting autoextensible maxsize higher than current size for file &#039;&lt;br /&gt;
   || file_name||&#039; */&#039;&lt;br /&gt;
 end SQL&lt;br /&gt;
from hwmdf&lt;br /&gt;
where&lt;br /&gt;
 bytes-hwm_bytes&amp;gt;1024*1024 -- resize only if at least 1MB can be reclaimed&lt;br /&gt;
order by bytes-hwm_bytes desc&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schedula pulizia recycle bin==&lt;br /&gt;
Cancella dal recyclebin tutti gli oggetti cancellati da almeno 3 giorni&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_SCHEDULER.create_job (&lt;br /&gt;
    job_name        =&amp;gt; &#039;purge_recyclebin_3days&#039;,&lt;br /&gt;
    job_type        =&amp;gt; &#039;PLSQL_BLOCK&#039;,&lt;br /&gt;
    job_action      =&amp;gt; &#039;&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select owner,type,OBJECT_NAME from dba_recyclebin where to_date(DROPTIME,&#039;&#039;YYYY-MM-DD:HH24:MI:SS&#039;&#039;) &amp;lt; sysdate-3 and CAN_PURGE=&#039;&#039;YES&#039;&#039;)&lt;br /&gt;
   loop&lt;br /&gt;
     begin&lt;br /&gt;
       execute immediate &#039;&#039;purge &#039;&#039; || c1.type || &#039;&#039; &#039;&#039; || c1.owner || &#039;&#039;.&amp;quot;&#039;&#039; || c1.object_name || &#039;&#039;&amp;quot;&#039;&#039;;&lt;br /&gt;
       exception&lt;br /&gt;
        when others then&lt;br /&gt;
          null;&lt;br /&gt;
     end;&lt;br /&gt;
   end loop;&lt;br /&gt;
end;&lt;br /&gt;
&#039;,&lt;br /&gt;
    start_date      =&amp;gt; SYSTIMESTAMP,&lt;br /&gt;
    repeat_interval =&amp;gt; &#039;freq=daily; byhour=0; byminute=0; bysecond=0;&#039;,&lt;br /&gt;
    enabled         =&amp;gt; TRUE);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ricerca files orfani ASM=&lt;br /&gt;
&lt;br /&gt;
http://anjo.pt/wp/keyword-oracle/2013/02/26/find-orphan-asm-files/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFINE ASMGROUP=&amp;quot;DGDATA&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 50000&lt;br /&gt;
col reference_index noprint&lt;br /&gt;
col type format a15&lt;br /&gt;
col files format a80&lt;br /&gt;
&lt;br /&gt;
WITH v_asmgroup AS (SELECT group_number FROM v$asm_diskgroup WHERE name=&#039;&amp;amp;ASMGROUP&#039;),&lt;br /&gt;
     v_parentindex AS (SELECT parent_index &lt;br /&gt;
                    FROM v$asm_alias &lt;br /&gt;
              WHERE group_number = (SELECT group_number FROM v_asmgroup) &lt;br /&gt;
                AND alias_index=0),&lt;br /&gt;
  v_asmfiles AS (SELECT file_number, type &lt;br /&gt;
              FROM v$asm_file &lt;br /&gt;
           WHERE group_number = (SELECT group_number FROM v_asmgroup)),&lt;br /&gt;
 v_dbname AS (SELECT &#039;/&#039;||upper(db_unique_name)||&#039;/&#039; dbname from v$database)&lt;br /&gt;
SELECT &#039;rm &#039;|| files files FROM -- this line show the delete command&lt;br /&gt;
(&lt;br /&gt;
  SELECT &#039;+&amp;amp;ASMGROUP&#039;||files files, type &lt;br /&gt;
  FROM (SELECT upper(sys_connect_by_path(aa.name,&#039;/&#039;)) files, aa.reference_index, b.type&lt;br /&gt;
        FROM (SELECT file_number,alias_directory,name, reference_index, parent_index &lt;br /&gt;
        FROM v$asm_alias) aa,&lt;br /&gt;
             (SELECT parent_index FROM v_parentindex) a,&lt;br /&gt;
             (SELECT file_number, type FROM v_asmfiles) b&lt;br /&gt;
  WHERE aa.file_number=b.file_number(+)&lt;br /&gt;
    AND aa.alias_directory=&#039;N&#039;&lt;br /&gt;
   -- missing PARAMETERFILE, DATAGUARDCONFIG&lt;br /&gt;
   AND b.type in (&#039;DATAFILE&#039;,&#039;ONLINELOG&#039;,&#039;CONTROLFILE&#039;,&#039;TEMPFILE&#039;)&lt;br /&gt;
  START WITH aa.PARENT_INDEX=a.parent_index&lt;br /&gt;
  CONNECT BY PRIOR aa.reference_index=aa.parent_index)&lt;br /&gt;
  WHERE substr(files,instr(files,&#039;/&#039;,1,1),instr(files,&#039;/&#039;,1,2)-instr(files,&#039;/&#039;,1,1)+1) = (select dbname FROM v_dbname)&lt;br /&gt;
MINUS (&lt;br /&gt;
  SELECT upper(name) files, &#039;DATAFILE&#039; type FROM v$datafile&lt;br /&gt;
    UNION ALL &lt;br /&gt;
  SELECT upper(name) files, &#039;TEMPFILE&#039; type FROM v$tempfile&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(name) files, &#039;CONTROLFILE&#039; type FROM v$controlfile WHERE name like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
    UNION ALL&lt;br /&gt;
 SELECT upper(member) files, &#039;ONLINELOG&#039; type FROM v$logfile WHERE member like &#039;+&amp;amp;ASMGROUP%&#039;&lt;br /&gt;
)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=constraints=&lt;br /&gt;
&lt;br /&gt;
Per vedere le colonne. Va raffinata:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039;(&#039; ||  u.column_name || &#039;)&#039;&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_cons_columns u on (u.owner=c.owner and u.constraint_name=c.constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Per vedere le referenze tra tabelle:&lt;br /&gt;
&lt;br /&gt;
 select c.constraint_name || &#039; &#039; || c.table_name || &#039; -&amp;gt; &#039; ||  u.table_name&lt;br /&gt;
 from dba_constraints c&lt;br /&gt;
 inner join dba_constraints u on (u.owner=c.r_owner and u.constraint_name=c.r_constraint_name)&lt;br /&gt;
 where c.constraint_type=&#039;R&#039;&lt;br /&gt;
 and (c.table_name = &#039;&amp;amp;&amp;amp;1&#039; or u.table_name=&#039;&amp;amp;&amp;amp;1&#039;);&lt;br /&gt;
&lt;br /&gt;
 select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,VALIDATED from dba_constraints where table_name=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
=Get DDL=&lt;br /&gt;
 set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
 column ddl format a1000&lt;br /&gt;
 begin&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;SQLTERMINATOR&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PRETTY&#039;,true);&lt;br /&gt;
   dbms_metadata.set_transform_param(dbms_metadata.session_transform,&#039;PARTITIONING&#039;,true);&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
==Tabelle==&lt;br /&gt;
 select dbms_metadata.get_ddl(object_type=&amp;gt;&#039;TABLE&#039;,schema=&amp;gt;&#039;SCHEMA_NAME&#039;,name=&amp;gt;&#039;TABLE_NAME&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&lt;br /&gt;
Vecchio metodo (si può migliorare gestendo la grant option):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set pagesize 0 linesize 200 trim on trims on tab off feedback off&lt;br /&gt;
spool privilegi_esportati.sql&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; to &#039; || grantee || &#039;;&#039; from dba_sys_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || GRANTED_ROLE || &#039; to &#039; || grantee || &#039;;&#039; from dba_role_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
select &#039;grant &#039; || privilege || &#039; on &#039; || owner || &#039;.&amp;quot;&#039; || table_name || &#039;&amp;quot; to &#039; || grantee || &#039;;&#039; from dba_tab_privs where grantee in (&#039;USER1&#039;);&lt;br /&gt;
spool off&lt;br /&gt;
set pagesize 200 feedback on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metodo più efficace:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse Grants 2==&lt;br /&gt;
&lt;br /&gt;
Elenco delle grants concesse all&#039;utente. Utile quando l&#039;utente va ricreato, ad esempio in caso di import.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set long 2000000 longchunksize 20000 pagesize 0 linesize 1000 feedback off verify off trimspool on&lt;br /&gt;
column ddl format a1000&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
     dbms_metadata.set_transform_param (dbms_metadata.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
 &lt;br /&gt;
variable v_username VARCHAR2(30);&lt;br /&gt;
 &lt;br /&gt;
exec:v_username := upper(&#039;UTENTE01&#039;);&lt;br /&gt;
 &lt;br /&gt;
spool grants_UTENTE01.sql&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;UTENTE01&#039;) FROM dual;&lt;br /&gt;
&lt;br /&gt;
select dbms_metadata.get_granted_ddl(&#039;ROLE_GRANT&#039;, rp.grantee) AS ddl&lt;br /&gt;
  from   dba_role_privs rp&lt;br /&gt;
  where  rp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;SYSTEM_GRANT&#039;, sp.grantee) AS ddl&lt;br /&gt;
  from   dba_sys_privs sp&lt;br /&gt;
  where  sp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 union all&lt;br /&gt;
  select dbms_metadata.get_granted_ddl(&#039;OBJECT_GRANT&#039;, tp.grantee) AS ddl&lt;br /&gt;
  from   dba_tab_privs tp&lt;br /&gt;
  where  tp.grantee = :v_username&lt;br /&gt;
  and    rownum = 1&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
spool off;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clear screen&lt;br /&gt;
accept uname prompt &#039;Enter User Name : &#039;&lt;br /&gt;
accept outfile prompt  &#039; Output filename : &#039;&lt;br /&gt;
&lt;br /&gt;
spool &amp;amp;&amp;amp;outfile..gen&lt;br /&gt;
&lt;br /&gt;
SET LONG 20000 LONGCHUNKSIZE 20000 PAGESIZE 0 LINESIZE 1000 FEEDBACK OFF VERIFY OFF TRIMSPOOL ON&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;SQLTERMINATOR&#039;, true);&lt;br /&gt;
   DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, &#039;PRETTY&#039;, true);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
SELECT dbms_metadata.get_ddl(&#039;USER&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) FROM dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;SYSTEM_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;ROLE_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
SELECT DBMS_METADATA.GET_GRANTED_DDL(&#039;OBJECT_GRANT&#039;,&#039;&amp;amp;&amp;amp;uname&#039;) from dual;&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Locked Objects=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter session set nls_date_format=&#039;DD/MM/YYYY HH24:MI:SS&#039;;&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a30&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, s.inst_id, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S, GV$PROCESS P, GV$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID  and l.inst_id=s.inst_id)&lt;br /&gt;
AND (S.PADDR = P.ADDR  and s.inst_id=p.inst_id)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS and s.inst_id=sq.inst_id)&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,S.MACHINE, S.PORT, &lt;br /&gt;
S.LOGON_TIME, SQ.SQL_FULLTEXT &lt;br /&gt;
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P, V$SQL SQ &lt;br /&gt;
WHERE L.OBJECT_ID = O.OBJECT_ID &lt;br /&gt;
AND (L.SESSION_ID = S.SID)&lt;br /&gt;
AND (S.PADDR = P.ADDR)&lt;br /&gt;
AND (S.SQL_ADDRESS = SQ.ADDRESS)&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==lock==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set linesize 190&lt;br /&gt;
set pagesize 200&lt;br /&gt;
col blocker for a30&lt;br /&gt;
col sid_serial for a15&lt;br /&gt;
col blockee for a30&lt;br /&gt;
&lt;br /&gt;
col object_name for a30&lt;br /&gt;
col machine for a45&lt;br /&gt;
col osuser for a15&lt;br /&gt;
&lt;br /&gt;
select c.owner,&lt;br /&gt;
   c.object_name,&lt;br /&gt;
   c.object_type,&lt;br /&gt;
   b.sid,&lt;br /&gt;
   b.serial#,&lt;br /&gt;
   b.status,&lt;br /&gt;
   b.osuser,&lt;br /&gt;
   b.machine&lt;br /&gt;
from&lt;br /&gt;
   v$locked_object a ,&lt;br /&gt;
   v$session b,&lt;br /&gt;
   dba_objects c,&lt;br /&gt;
   v$lock l&lt;br /&gt;
where b.sid = a.session_id&lt;br /&gt;
  and a.object_id = c.object_id&lt;br /&gt;
  and l.sid=b.sid&lt;br /&gt;
  and (l.block=1 or l.request &amp;gt; 0 )&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=a.sid) blocker,&lt;br /&gt;
a.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=a.sid) sid_serial,&lt;br /&gt;
&#039; is blocking &#039;,&lt;br /&gt;
(select username || &#039; - &#039; || osuser from v$session where sid=b.sid) blockee,&lt;br /&gt;
b.sid || &#039;, &#039; ||&lt;br /&gt;
(select serial# from v$session where sid=b.sid) sid_serial&lt;br /&gt;
from v$lock a, v$lock b&lt;br /&gt;
where a.block = 1&lt;br /&gt;
and b.request &amp;gt; 0&lt;br /&gt;
and a.id1 = b.id1&lt;br /&gt;
and a.id2 = b.id2;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select s1.username || &#039;@&#039; || s1.machine&lt;br /&gt;
|| &#039; ( SID=&#039; || s1.sid || &#039; )  is blocking &#039;&lt;br /&gt;
|| s2.username || &#039;@&#039; || s2.machine || &#039; ( SID=&#039; || s2.sid || &#039; ) &#039;&lt;br /&gt;
AS blocking_status&lt;br /&gt;
from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2 ;&lt;br /&gt;
set heading off&lt;br /&gt;
select &#039;SQL STATEMENT BLOCCANTI:&#039; as SQL_STATEMENT_BLOCCANTI from dual;&lt;br /&gt;
set heading on&lt;br /&gt;
select a.username,a.sid, a.serial#, b.sql_text&lt;br /&gt;
from v$session a, v$sqlarea b&lt;br /&gt;
where a.sql_address=b.address and a.sid in ( select&lt;br /&gt;
s1.sid&lt;br /&gt;
 from v$lock l1, v$session s1, v$lock l2, v$session s2&lt;br /&gt;
where s1.sid=l1.sid and s2.sid=l2.sid&lt;br /&gt;
 and l1.BLOCK=1 and l2.request &amp;gt; 0&lt;br /&gt;
 and l1.id1 = l2.id1&lt;br /&gt;
 and l2.id2 = l2.id2) ;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tablespaces Read Only==&lt;br /&gt;
&lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read only;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;ONLINE&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
  &lt;br /&gt;
 select &#039;alter tablespace &#039; || tablespace_name || &#039; read write;&#039; from dba_tablespaces where contents=&#039;PERMANENT&#039; &lt;br /&gt;
  and status=&#039;READ ONLY&#039; and tablespace_name not in (&#039;SYSTEM&#039;,&#039;SYSAUX&#039;);&lt;br /&gt;
&lt;br /&gt;
=Character Set=&lt;br /&gt;
&lt;br /&gt;
 col PROPERTY_NAME for a30&lt;br /&gt;
 col PROPERTY_VALUE for a40&lt;br /&gt;
 col DESCRIPTION for a60&lt;br /&gt;
 select * from database_properties where PROPERTY_NAME in (&#039;NLS_CHARACTERSET&#039;, &#039;NLS_NCHAR_CHARACTERSET&#039;);&lt;br /&gt;
&lt;br /&gt;
=Redefine Online=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
set timing on&lt;br /&gt;
drop table USER.EESKFILECOMUNICAZIONE_CP;&lt;br /&gt;
purge dba_recyclebin;&lt;br /&gt;
&lt;br /&gt;
-- verifica se è utilizzabile&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.CAN_REDEF_TABLE(&#039;USER&#039;,&#039;EESKFILECOMUNICAZIONE&#039;,DBMS_REDEFINITION.CONS_USE_PK);&lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
-- organization index tablespace ODSSOLTBS overflow tablespace ODSSOLTBS&lt;br /&gt;
create table USER.EESKFILECOMUNICAZIONE_CP (IDSKFILE NUMBER(18),FBODY BLOB)&lt;br /&gt;
 lob(FBODY) store as securefile (enable storage in row nocache nologging deduplicate compress high tablespace ODSLOBTBS)&lt;br /&gt;
 partition by range (IDSKFILE) interval (5000000) ( partition values less than (5000000) )&lt;br /&gt;
 compress for oltp tablespace ODSLOBTBS nologging;&lt;br /&gt;
&lt;br /&gt;
-- insert /*+ append */ into USER.EESKFILECOMUNICAZIONE_CP&lt;br /&gt;
-- select * from USER.EESKFILECOMUNICAZIONE;&lt;br /&gt;
&lt;br /&gt;
alter table USER.EESKFILECOMUNICAZIONE_CP enable row movement;&lt;br /&gt;
alter session force parallel dml parallel 8;&lt;br /&gt;
alter session force parallel query parallel 8;&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.start_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.sync_interim_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
-- Copy dependents.&lt;br /&gt;
SET SERVEROUTPUT ON&lt;br /&gt;
DECLARE&lt;br /&gt;
  l_num_errors PLS_INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  DBMS_REDEFINITION.copy_table_dependents(&lt;br /&gt;
    uname               =&amp;gt; &#039;USER&#039;,&lt;br /&gt;
    orig_table          =&amp;gt; &#039;EESKFILECOMUNICAZIONE&#039;,&lt;br /&gt;
    int_table           =&amp;gt; &#039;EESKFILECOMUNICAZIONE_CP&#039;,&lt;br /&gt;
    copy_indexes        =&amp;gt; 1,             -- Default&lt;br /&gt;
    copy_triggers       =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_constraints    =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    copy_privileges     =&amp;gt; TRUE,          -- Default&lt;br /&gt;
    ignore_errors       =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    num_errors          =&amp;gt; l_num_errors,&lt;br /&gt;
    copy_statistics     =&amp;gt; FALSE,         -- Default&lt;br /&gt;
    copy_mvlog          =&amp;gt; FALSE);        -- Default&lt;br /&gt;
    &lt;br /&gt;
  DBMS_OUTPUT.put_line(&#039;num_errors=&#039; || l_num_errors); &lt;br /&gt;
END;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
EXEC DBMS_REDEFINITION.finish_redef_table(uname=&amp;gt;&#039;USER&#039;, orig_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE&#039;, int_table=&amp;gt;&#039;EESKFILECOMUNICAZIONE_CP&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
</feed>