<?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-04-07T18:00:01Z</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=6121</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6121"/>
		<updated>2025-07-31T09:57:08Z</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;
&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(maxbytes)/(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(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.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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6120</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6120"/>
		<updated>2025-05-12T08:53:27Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* comportamenti strani= */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
parametri di startup linea di comando (controllare sulla documentazione cosa fanno e come si usano):&lt;br /&gt;
 --innodb-dedicated-server&lt;br /&gt;
 --memlock&lt;br /&gt;
&lt;br /&gt;
====Modificabili solo nel file di configurazione, serve poi riavvio istanza:====&lt;br /&gt;
&lt;br /&gt;
 set persist_only disabled_storage_engines=&amp;quot;MyISAM,BLACKHOLE,FEDERATED,ARCHIVE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Con linux serve configurazione hugepages:&lt;br /&gt;
 set persist_only large_pages=ON;&lt;br /&gt;
&lt;br /&gt;
con 8.4 dovrebbe essere già default:&lt;br /&gt;
 set persist_only innodb_flush_method=O_DIRECT;&lt;br /&gt;
&lt;br /&gt;
 set persist_only global_connection_memory_limit=536870912;&lt;br /&gt;
 set persist_only global-connection-memory-tracking=TRUE;&lt;br /&gt;
&lt;br /&gt;
====Modificabili a caldo:====&lt;br /&gt;
 set persist innodb_buffer_pool_size=536870912;&lt;br /&gt;
 set persist innodb_redo_log_capacity = 8589934592;&lt;br /&gt;
&lt;br /&gt;
====uso memoria====&lt;br /&gt;
&lt;br /&gt;
 innodb_buffer_pool_size&lt;br /&gt;
 + key_buffer_size&lt;br /&gt;
 + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size)&lt;br /&gt;
 + max_connections*2MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====comportamenti strani====&lt;br /&gt;
se si configurano hugepages (ma forse anche se non), alcune operazioni fanno allocare memoria, che non viene rilasciata.&lt;br /&gt;
l&#039;operazione &amp;quot;add constrain foreign key&amp;quot; su tabella grande produce questo effetto&lt;br /&gt;
&lt;br /&gt;
forse usando libjemalloc2 il problema si risolve&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Tuning_Mysql&amp;diff=6119</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6119"/>
		<updated>2025-05-12T08:53:11Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
parametri di startup linea di comando (controllare sulla documentazione cosa fanno e come si usano):&lt;br /&gt;
 --innodb-dedicated-server&lt;br /&gt;
 --memlock&lt;br /&gt;
&lt;br /&gt;
====Modificabili solo nel file di configurazione, serve poi riavvio istanza:====&lt;br /&gt;
&lt;br /&gt;
 set persist_only disabled_storage_engines=&amp;quot;MyISAM,BLACKHOLE,FEDERATED,ARCHIVE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Con linux serve configurazione hugepages:&lt;br /&gt;
 set persist_only large_pages=ON;&lt;br /&gt;
&lt;br /&gt;
con 8.4 dovrebbe essere già default:&lt;br /&gt;
 set persist_only innodb_flush_method=O_DIRECT;&lt;br /&gt;
&lt;br /&gt;
 set persist_only global_connection_memory_limit=536870912;&lt;br /&gt;
 set persist_only global-connection-memory-tracking=TRUE;&lt;br /&gt;
&lt;br /&gt;
====Modificabili a caldo:====&lt;br /&gt;
 set persist innodb_buffer_pool_size=536870912;&lt;br /&gt;
 set persist innodb_redo_log_capacity = 8589934592;&lt;br /&gt;
&lt;br /&gt;
====uso memoria====&lt;br /&gt;
&lt;br /&gt;
 innodb_buffer_pool_size&lt;br /&gt;
 + key_buffer_size&lt;br /&gt;
 + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size)&lt;br /&gt;
 + max_connections*2MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====comportamenti strani=====&lt;br /&gt;
se si configurano hugepages (ma forse anche se non), alcune operazioni fanno allocare memoria, che non viene rilasciata.&lt;br /&gt;
l&#039;operazione &amp;quot;add constrain foreign key&amp;quot; su tabella grande produce questo effetto&lt;br /&gt;
&lt;br /&gt;
forse usando libjemalloc2 il problema si risolve&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Tuning_Mysql&amp;diff=6118</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6118"/>
		<updated>2025-05-12T07:55:32Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
parametri di startup linea di comando (controllare sulla documentazione cosa fanno e come si usano):&lt;br /&gt;
 --innodb-dedicated-server&lt;br /&gt;
 --memlock&lt;br /&gt;
&lt;br /&gt;
====Modificabili solo nel file di configurazione, serve poi riavvio istanza:====&lt;br /&gt;
&lt;br /&gt;
 set persist_only disabled_storage_engines=&amp;quot;MyISAM,BLACKHOLE,FEDERATED,ARCHIVE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Con linux serve configurazione hugepages:&lt;br /&gt;
 set persist_only large_pages=ON;&lt;br /&gt;
&lt;br /&gt;
con 8.4 dovrebbe essere già default:&lt;br /&gt;
 set persist_only innodb_flush_method=O_DIRECT;&lt;br /&gt;
&lt;br /&gt;
 set persist_only global_connection_memory_limit=536870912;&lt;br /&gt;
 set persist_only global-connection-memory-tracking=TRUE;&lt;br /&gt;
&lt;br /&gt;
====Modificabili a caldo:====&lt;br /&gt;
 set persist innodb_buffer_pool_size=536870912;&lt;br /&gt;
 set persist innodb_redo_log_capacity = 8589934592;&lt;br /&gt;
&lt;br /&gt;
====uso memoria====&lt;br /&gt;
&lt;br /&gt;
 innodb_buffer_pool_size&lt;br /&gt;
 + key_buffer_size&lt;br /&gt;
 + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size)&lt;br /&gt;
 + max_connections*2MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====comportamenti strani=====&lt;br /&gt;
se si configurano hugepages (ma forse anche se non), alcune operazioni fanno allocare memoria, che non viene rilasciata.&lt;br /&gt;
l&#039;operazione &amp;quot;add constrain foreign key&amp;quot; su tabella grande produce questo effetto&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Tuning_Mysql&amp;diff=6117</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6117"/>
		<updated>2025-05-12T07:55:04Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
parametri di startup linea di comando (controllare sulla documentazione cosa fanno e come si usano):&lt;br /&gt;
 --innodb-dedicated-server&lt;br /&gt;
 --memlock&lt;br /&gt;
&lt;br /&gt;
====Modificabili solo nel file di configurazione, serve poi riavvio istanza:====&lt;br /&gt;
&lt;br /&gt;
 set persist_only disabled_storage_engines=&amp;quot;MyISAM,BLACKHOLE,FEDERATED,ARCHIVE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Con linux serve configurazione hugepages:&lt;br /&gt;
 set persist_only large_pages=ON;&lt;br /&gt;
&lt;br /&gt;
con 8.4 dovrebbe essere già default:&lt;br /&gt;
 set persist_only innodb_flush_method=O_DIRECT;&lt;br /&gt;
&lt;br /&gt;
 set persist_only global_connection_memory_limit=536870912;&lt;br /&gt;
 set persist_only global-connection-memory-tracking=TRUE;&lt;br /&gt;
&lt;br /&gt;
====Modificabili a caldo:====&lt;br /&gt;
 set persist innodb_buffer_pool_size=536870912;&lt;br /&gt;
 set persist innodb_redo_log_capacity = 8589934592;&lt;br /&gt;
&lt;br /&gt;
====uso memoria====&lt;br /&gt;
&lt;br /&gt;
 innodb_buffer_pool_size&lt;br /&gt;
 + key_buffer_size&lt;br /&gt;
 + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size)&lt;br /&gt;
 + max_connections*2MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====comportamenti strani=====&lt;br /&gt;
se si configurano hugepages (ma forse anche se non), alcune operazioni fanno allocare memoria, che non viene rilasciata.&lt;br /&gt;
l&#039;operazione &amp;quot;add constraiin foreign key&amp;quot; su tabella grande produce questo effetto&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Postgres_Patroni&amp;diff=6116</id>
		<title>Postgres Patroni</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Postgres_Patroni&amp;diff=6116"/>
		<updated>2025-04-24T12:29:35Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Creata pagina con &amp;quot;[https://patroni.readthedocs.io/en/latest/index.html patroni]  Categoria:Postgres Categoria:Database&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://patroni.readthedocs.io/en/latest/index.html patroni]&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Postgres]]&lt;br /&gt;
[[Categoria:Database]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Postgres_Repmgr&amp;diff=6115</id>
		<title>Postgres Repmgr</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Postgres_Repmgr&amp;diff=6115"/>
		<updated>2025-04-24T12:23:23Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.repmgr.org/ repmgr]&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Postgres]]&lt;br /&gt;
[[Categoria:Database]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Postgres_Repmgr&amp;diff=6114</id>
		<title>Postgres Repmgr</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Postgres_Repmgr&amp;diff=6114"/>
		<updated>2025-04-24T12:21:56Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Creata pagina con &amp;quot;  Categoria:Postgres Categoria:Database&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Postgres]]&lt;br /&gt;
[[Categoria:Database]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Mysql_Query_Varie&amp;diff=6113</id>
		<title>Mysql Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Mysql_Query_Varie&amp;diff=6113"/>
		<updated>2025-04-14T12:06:39Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Impostazione password==&lt;br /&gt;
 IDENTIFIED WITH mysql_native_password AS &#039;hash&#039;;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Tuning_Mysql&amp;diff=6112</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6112"/>
		<updated>2025-03-31T23:28:57Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
parametri di startup linea di comando (controllare sulla documentazione cosa fanno e come si usano):&lt;br /&gt;
 --innodb-dedicated-server&lt;br /&gt;
 --memlock&lt;br /&gt;
&lt;br /&gt;
====Modificabili solo nel file di configurazione, serve poi riavvio istanza:====&lt;br /&gt;
&lt;br /&gt;
 set persist_only disabled_storage_engines=&amp;quot;MyISAM,BLACKHOLE,FEDERATED,ARCHIVE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Con linux serve configurazione hugepages:&lt;br /&gt;
 set persist_only large_pages=ON;&lt;br /&gt;
&lt;br /&gt;
con 8.4 dovrebbe essere già default:&lt;br /&gt;
 set persist_only innodb_flush_method=O_DIRECT;&lt;br /&gt;
&lt;br /&gt;
 set persist_only global_connection_memory_limit=536870912;&lt;br /&gt;
 set persist_only global-connection-memory-tracking=TRUE;&lt;br /&gt;
&lt;br /&gt;
====Modificabili a caldo:====&lt;br /&gt;
 set persist innodb_buffer_pool_size=536870912;&lt;br /&gt;
 set persist innodb_redo_log_capacity = 8589934592;&lt;br /&gt;
&lt;br /&gt;
====uso memoria====&lt;br /&gt;
&lt;br /&gt;
 innodb_buffer_pool_size&lt;br /&gt;
 + key_buffer_size&lt;br /&gt;
 + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size)&lt;br /&gt;
 + max_connections*2MB&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Tuning_Mysql&amp;diff=6111</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6111"/>
		<updated>2025-03-31T22:50:44Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
parametri di startup linea di comando (controllare sulla documentazione cosa fanno e come si usano):&lt;br /&gt;
 --innodb-dedicated-server&lt;br /&gt;
 --memlock&lt;br /&gt;
&lt;br /&gt;
====Modificabili solo nel file di configurazione, serve poi riavvio istanza:====&lt;br /&gt;
&lt;br /&gt;
 set persist_only disabled_storage_engines=&amp;quot;MyISAM,BLACKHOLE,FEDERATED,ARCHIVE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Con linux serve configurazione hugepages:&lt;br /&gt;
 set persist_only large_pages=ON;&lt;br /&gt;
&lt;br /&gt;
con 8.4 dovrebbe essere già default:&lt;br /&gt;
 set persist_only innodb_flush_method=O_DIRECT;&lt;br /&gt;
&lt;br /&gt;
====Modificabili a caldo:====&lt;br /&gt;
 set persist innodb_buffer_pool_size=536870912;&lt;br /&gt;
 set persist innodb_redo_log_capacity = 8589934592;&lt;br /&gt;
&lt;br /&gt;
====uso memoria====&lt;br /&gt;
&lt;br /&gt;
 innodb_buffer_pool_size&lt;br /&gt;
 + key_buffer_size&lt;br /&gt;
 + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size)&lt;br /&gt;
 + max_connections*2MB&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Tuning_Mysql&amp;diff=6110</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6110"/>
		<updated>2025-03-31T22:48:13Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
parametri di startup linea di comando (controllare sulla documentazione cosa fanno e come si usano):&lt;br /&gt;
 --innodb-dedicated-server&lt;br /&gt;
 --memlock&lt;br /&gt;
&lt;br /&gt;
====Modificabili solo nel file di configurazione, serve poi riavvio istanza:====&lt;br /&gt;
&lt;br /&gt;
 set persist_only disabled_storage_engines=&amp;quot;MyISAM,BLACKHOLE,FEDERATED,ARCHIVE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Con linux serve configurazione hugepages:&lt;br /&gt;
 set persist_only large_pages=ON;&lt;br /&gt;
&lt;br /&gt;
con 8.4 dovrebbe essere già default:&lt;br /&gt;
 set persist_only innodb_flush_method=O_DIRECT;&lt;br /&gt;
&lt;br /&gt;
====Modificabili a caldo:====&lt;br /&gt;
 set persist innodb_buffer_pool_size=536870912;&lt;br /&gt;
 set persist innodb_redo_log_capacity = 8589934592;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Tuning_Mysql&amp;diff=6109</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6109"/>
		<updated>2025-03-31T22:46:16Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
====Modificabili solo nel file di configurazione, serve poi riavvio istanza:====&lt;br /&gt;
&lt;br /&gt;
 set persist_only disabled_storage_engines=&amp;quot;MyISAM,BLACKHOLE,FEDERATED,ARCHIVE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Con linux serve configurazione hugepages:&lt;br /&gt;
 set persist_only large_pages=ON;&lt;br /&gt;
&lt;br /&gt;
con 8.4 dovrebbe essere già default:&lt;br /&gt;
 set persist_only innodb_flush_method=O_DIRECT;&lt;br /&gt;
&lt;br /&gt;
====Modificabili a caldo:====&lt;br /&gt;
 set persist innodb_buffer_pool_size=536870912;&lt;br /&gt;
 set persist innodb_redo_log_capacity = 8589934592;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Tuning_Mysql&amp;diff=6108</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6108"/>
		<updated>2025-03-31T22:45:32Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
Modificabili solo nel file di configurazione, serve poi riavvio istanza:&lt;br /&gt;
&lt;br /&gt;
 set persist_only disabled_storage_engines=&amp;quot;MyISAM,BLACKHOLE,FEDERATED,ARCHIVE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Con linux serve configurazione hugepages:&lt;br /&gt;
 set persist_only large_pages=ON;&lt;br /&gt;
&lt;br /&gt;
con 8.4 dovrebbe essere già default:&lt;br /&gt;
 set persist_only innodb_flush_method=O_DIRECT;&lt;br /&gt;
&lt;br /&gt;
Modificabili a caldo:&lt;br /&gt;
 set persist innodb_buffer_pool_size=536870912;&lt;br /&gt;
 set persist innodb_redo_log_capacity = 8589934592;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Tuning_Mysql&amp;diff=6107</id>
		<title>Tuning Mysql</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Tuning_Mysql&amp;diff=6107"/>
		<updated>2025-03-31T22:35:50Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Creata pagina con &amp;quot;==innodb (8.0+)== Impostazioni per avere un database che usa solo InnoDB:      Categoria:Database Categoria:Mysql Categoria:OpenSource&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==innodb (8.0+)==&lt;br /&gt;
Impostazioni per avere un database che usa solo InnoDB:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Mysql]]&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=Query_Varie&amp;diff=6106</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6106"/>
		<updated>2025-01-09T11:27:44Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* versione RAC */&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;
&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(maxbytes)/(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(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.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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_sql_patch&amp;diff=6105</id>
		<title>Oracle sql patch</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_sql_patch&amp;diff=6105"/>
		<updated>2024-12-10T14:28:51Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://oracle-base.com/articles/11g/sql-repair-advisor-11g&lt;br /&gt;
&lt;br /&gt;
How to Create a SQL Patch to add Hints to Application SQL Statements (Doc ID 1931944.1)&lt;br /&gt;
&lt;br /&gt;
 DECLARE&lt;br /&gt;
  l_patch_name  VARCHAR2(32767);&lt;br /&gt;
 BEGIN&lt;br /&gt;
  -- SQL ID&lt;br /&gt;
  l_patch_name := SYS.DBMS_SQLDIAG.create_sql_patch(&lt;br /&gt;
    sql_id    =&amp;gt; &#039;85m4pf9c6m791&#039;,&lt;br /&gt;
    hint_text =&amp;gt; &#039;FIRST_ROWS&#039;,&lt;br /&gt;
    name      =&amp;gt; &#039;first_rows_query_nagios_space&#039;);&lt;br /&gt;
 END;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Per cancellarla:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  DBMS_SQLDIAG.drop_sql_patch(name =&amp;gt; &#039;first_rows_query_nagios_space&#039;);&lt;br /&gt;
 end;&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_sql_patch&amp;diff=6104</id>
		<title>Oracle sql patch</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_sql_patch&amp;diff=6104"/>
		<updated>2024-12-10T14:25:32Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://oracle-base.com/articles/11g/sql-repair-advisor-11g&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 DECLARE&lt;br /&gt;
  l_patch_name  VARCHAR2(32767);&lt;br /&gt;
 BEGIN&lt;br /&gt;
  -- SQL ID&lt;br /&gt;
  l_patch_name := SYS.DBMS_SQLDIAG.create_sql_patch(&lt;br /&gt;
    sql_id    =&amp;gt; &#039;85m4pf9c6m791&#039;,&lt;br /&gt;
    hint_text =&amp;gt; &#039;FIRST_ROWS&#039;,&lt;br /&gt;
    name      =&amp;gt; &#039;first_rows_query_nagios_space&#039;);&lt;br /&gt;
 END;&lt;br /&gt;
 /&lt;br /&gt;
&lt;br /&gt;
Per cancellarla:&lt;br /&gt;
&lt;br /&gt;
 begin&lt;br /&gt;
  DBMS_SQLDIAG.drop_sql_patch(name =&amp;gt; &#039;first_rows_query_nagios_space&#039;);&lt;br /&gt;
 end;&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_sql_patch&amp;diff=6103</id>
		<title>Oracle sql patch</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_sql_patch&amp;diff=6103"/>
		<updated>2024-12-10T14:23:09Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Creata pagina con &amp;quot;   https://oracle-base.com/articles/11g/sql-repair-advisor-11g    DECLARE   l_patch_name  VARCHAR2(32767);  BEGIN   -- SQL ID   l_patch_name := SYS.DBMS_SQLDIAG.create_sql_patch(     sql_id    =&amp;gt; &amp;#039;85m4pf9c6m791&amp;#039;,     hint_text =&amp;gt; &amp;#039;FIRST_ROWS&amp;#039;,     name      =&amp;gt; &amp;#039;first_rows_query_nagios_space&amp;#039;);  END;  /    Categoria:Database Categoria:Oracle&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://oracle-base.com/articles/11g/sql-repair-advisor-11g&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 DECLARE&lt;br /&gt;
  l_patch_name  VARCHAR2(32767);&lt;br /&gt;
 BEGIN&lt;br /&gt;
  -- SQL ID&lt;br /&gt;
  l_patch_name := SYS.DBMS_SQLDIAG.create_sql_patch(&lt;br /&gt;
    sql_id    =&amp;gt; &#039;85m4pf9c6m791&#039;,&lt;br /&gt;
    hint_text =&amp;gt; &#039;FIRST_ROWS&#039;,&lt;br /&gt;
    name      =&amp;gt; &#039;first_rows_query_nagios_space&#039;);&lt;br /&gt;
 END;&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_unexpire_password&amp;diff=6102</id>
		<title>Oracle unexpire password</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_unexpire_password&amp;diff=6102"/>
		<updated>2024-11-07T08:33:10Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* modifica del profilo default */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Interroga=&lt;br /&gt;
Per vedere se ci sono utenti con password scaduta o in scadenza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,account_status from dba_users where account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) order by username;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elenca gli utenti soggetti a scadenza password ma con password non ancora scaduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,expiry_date,account_status from dba_users where expiry_date is not null and account_status IN (&#039;OPEN&#039;,&#039;EXPIRED(GRACE)&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per vedere se ci sono account bloccati:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status in (&#039;LOCKED(TIMED)&#039;,&#039;LOCKED&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A volte gli account non di sistema vanno in expired &amp;amp; locked:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,account_status,created,lock_date from dba_users where account_status !=&#039;OPEN&#039; order by created;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Normalmente gli account di sistema sono in stato &amp;lt;code&amp;gt;&#039;EXPIRED &amp;amp; LOCKED&#039;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
da &amp;lt;code&amp;gt;SQLPLUS&amp;lt;/code&amp;gt; bisogna disattivare l&#039;opzione &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; per consentire valori con &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set define off&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status=&#039;EXPIRED &amp;amp; LOCKED&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Unlock=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter user &amp;lt;username&amp;gt; account unlock;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Visualizza stato utenti=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
col username for a25&lt;br /&gt;
col profile for a30&lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
select USERNAME,ACCOUNT_STATUS,PROFILE from dba_users;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Imposta per evitare la scadenza=&lt;br /&gt;
Per database singoli e PDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per CDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile c##nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile c##nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modifica del profilo default===&lt;br /&gt;
&lt;br /&gt;
Verifica profilo di default:&lt;br /&gt;
&lt;br /&gt;
 set linesize 200 pagesize 200&lt;br /&gt;
 col profile for a30&lt;br /&gt;
 col limit for a20&lt;br /&gt;
 select * from dba_profiles where profile=&#039;DEFAULT&#039;;&lt;br /&gt;
&lt;br /&gt;
Modifica profilo di default:&lt;br /&gt;
&lt;br /&gt;
 alter profile DEFAULT limit PASSWORD_LIFE_TIME unlimited PASSWORD_GRACE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
 alter profile DEFAULT limit PASSWORD_LIFE_TIME unlimited PASSWORD_GRACE_TIME unlimited;&lt;br /&gt;
&lt;br /&gt;
=Password Unexpire=&lt;br /&gt;
&lt;br /&gt;
==Versione 10G==&lt;br /&gt;
Non usare su versione 11 o successive.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 11G==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 400&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is not null and t2.spare4 is not null&lt;br /&gt;
 union&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is null and t2.spare4 is not null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PL/SQL===&lt;br /&gt;
(Bisogna scrivere un unica procedura che gestisca tutti e tre i casi)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G 11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;)&lt;br /&gt;
               and t1.password_versions=&#039;11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 12C==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in (&#039;12C &#039;,&#039;11G &#039;,&#039;11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039;  || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in &#039;10G 11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===versione singola===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;) )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Versione con cambio di profilo===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.profile=&#039;DOMAIN_USERS&#039;&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;))&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile default&#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile DOMAIN_USERS&#039;;&lt;br /&gt;
&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse users==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039; ;&#039;&lt;br /&gt;
  from dba_users t1, sys.user$ t2&lt;br /&gt;
 where t2.name=t1.username&lt;br /&gt;
   and username in (select username from dba_users where oracle_maintained=&#039;N&#039; and authentication_type=&#039;PASSWORD&#039; and username not like &#039;C##%&#039;);&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 dbms_metadata.get_ddl( object_type=&amp;gt;&#039;USER&#039;, name=&amp;gt;&#039;USER1&#039;) from dual;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ripristina password==&lt;br /&gt;
Nel caso che il profilo utente non consenta il riutilizzo di password o l&#039;utilizzo di password fuori regola:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
create profile PASSWORD_UNLIMITED limit&lt;br /&gt;
 PASSWORD_LIFE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_MAX UNLIMITED&lt;br /&gt;
 PASSWORD_VERIFY_FUNCTION NULL&lt;br /&gt;
 INACTIVE_ACCOUNT_TIME UNLIMITED;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
variable PP varchar2(120);&lt;br /&gt;
begin&lt;br /&gt;
 select profile into :PP from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select :PP from dual;&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 profile password_unlimited;&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 identified by &amp;quot;&amp;amp;&amp;amp;2&amp;quot; account unlock;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
 execute immediate &#039;alter user &amp;amp;&amp;amp;1 profile &#039; || :PP;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&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_unexpire_password&amp;diff=6101</id>
		<title>Oracle unexpire password</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_unexpire_password&amp;diff=6101"/>
		<updated>2024-11-07T08:30:58Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* modifica del profilo default */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Interroga=&lt;br /&gt;
Per vedere se ci sono utenti con password scaduta o in scadenza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,account_status from dba_users where account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) order by username;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elenca gli utenti soggetti a scadenza password ma con password non ancora scaduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,expiry_date,account_status from dba_users where expiry_date is not null and account_status IN (&#039;OPEN&#039;,&#039;EXPIRED(GRACE)&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per vedere se ci sono account bloccati:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status in (&#039;LOCKED(TIMED)&#039;,&#039;LOCKED&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A volte gli account non di sistema vanno in expired &amp;amp; locked:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,account_status,created,lock_date from dba_users where account_status !=&#039;OPEN&#039; order by created;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Normalmente gli account di sistema sono in stato &amp;lt;code&amp;gt;&#039;EXPIRED &amp;amp; LOCKED&#039;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
da &amp;lt;code&amp;gt;SQLPLUS&amp;lt;/code&amp;gt; bisogna disattivare l&#039;opzione &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; per consentire valori con &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set define off&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status=&#039;EXPIRED &amp;amp; LOCKED&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Unlock=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter user &amp;lt;username&amp;gt; account unlock;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Visualizza stato utenti=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
col username for a25&lt;br /&gt;
col profile for a30&lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
select USERNAME,ACCOUNT_STATUS,PROFILE from dba_users;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Imposta per evitare la scadenza=&lt;br /&gt;
Per database singoli e PDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per CDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile c##nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile c##nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modifica del profilo default===&lt;br /&gt;
&lt;br /&gt;
Verifica profilo di default:&lt;br /&gt;
&lt;br /&gt;
 col profile for a30&lt;br /&gt;
 col limit for a20&lt;br /&gt;
 select * from dba_profiles where profile=&#039;DEFAULT&#039;;&lt;br /&gt;
&lt;br /&gt;
Modifica profilo di default:&lt;br /&gt;
&lt;br /&gt;
 alter profile DEFAULT limit PASSWORD_LIFE_TIME unlimited PASSWORD_GRACE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
 alter profile DEFAULT limit PASSWORD_LIFE_TIME unlimited PASSWORD_GRACE_TIME unlimited;&lt;br /&gt;
&lt;br /&gt;
=Password Unexpire=&lt;br /&gt;
&lt;br /&gt;
==Versione 10G==&lt;br /&gt;
Non usare su versione 11 o successive.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 11G==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 400&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is not null and t2.spare4 is not null&lt;br /&gt;
 union&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is null and t2.spare4 is not null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PL/SQL===&lt;br /&gt;
(Bisogna scrivere un unica procedura che gestisca tutti e tre i casi)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G 11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;)&lt;br /&gt;
               and t1.password_versions=&#039;11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 12C==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in (&#039;12C &#039;,&#039;11G &#039;,&#039;11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039;  || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in &#039;10G 11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===versione singola===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;) )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Versione con cambio di profilo===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.profile=&#039;DOMAIN_USERS&#039;&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;))&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile default&#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile DOMAIN_USERS&#039;;&lt;br /&gt;
&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse users==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039; ;&#039;&lt;br /&gt;
  from dba_users t1, sys.user$ t2&lt;br /&gt;
 where t2.name=t1.username&lt;br /&gt;
   and username in (select username from dba_users where oracle_maintained=&#039;N&#039; and authentication_type=&#039;PASSWORD&#039; and username not like &#039;C##%&#039;);&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 dbms_metadata.get_ddl( object_type=&amp;gt;&#039;USER&#039;, name=&amp;gt;&#039;USER1&#039;) from dual;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ripristina password==&lt;br /&gt;
Nel caso che il profilo utente non consenta il riutilizzo di password o l&#039;utilizzo di password fuori regola:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
create profile PASSWORD_UNLIMITED limit&lt;br /&gt;
 PASSWORD_LIFE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_MAX UNLIMITED&lt;br /&gt;
 PASSWORD_VERIFY_FUNCTION NULL&lt;br /&gt;
 INACTIVE_ACCOUNT_TIME UNLIMITED;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
variable PP varchar2(120);&lt;br /&gt;
begin&lt;br /&gt;
 select profile into :PP from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select :PP from dual;&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 profile password_unlimited;&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 identified by &amp;quot;&amp;amp;&amp;amp;2&amp;quot; account unlock;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
 execute immediate &#039;alter user &amp;amp;&amp;amp;1 profile &#039; || :PP;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&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_unexpire_password&amp;diff=6100</id>
		<title>Oracle unexpire password</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_unexpire_password&amp;diff=6100"/>
		<updated>2024-11-07T08:26:40Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Imposta per evitare la scadenza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Interroga=&lt;br /&gt;
Per vedere se ci sono utenti con password scaduta o in scadenza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,account_status from dba_users where account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) order by username;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elenca gli utenti soggetti a scadenza password ma con password non ancora scaduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,expiry_date,account_status from dba_users where expiry_date is not null and account_status IN (&#039;OPEN&#039;,&#039;EXPIRED(GRACE)&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per vedere se ci sono account bloccati:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status in (&#039;LOCKED(TIMED)&#039;,&#039;LOCKED&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A volte gli account non di sistema vanno in expired &amp;amp; locked:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,account_status,created,lock_date from dba_users where account_status !=&#039;OPEN&#039; order by created;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Normalmente gli account di sistema sono in stato &amp;lt;code&amp;gt;&#039;EXPIRED &amp;amp; LOCKED&#039;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
da &amp;lt;code&amp;gt;SQLPLUS&amp;lt;/code&amp;gt; bisogna disattivare l&#039;opzione &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; per consentire valori con &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set define off&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status=&#039;EXPIRED &amp;amp; LOCKED&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Unlock=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter user &amp;lt;username&amp;gt; account unlock;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Visualizza stato utenti=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
col username for a25&lt;br /&gt;
col profile for a30&lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
select USERNAME,ACCOUNT_STATUS,PROFILE from dba_users;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Imposta per evitare la scadenza=&lt;br /&gt;
Per database singoli e PDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per CDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile c##nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile c##nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===modifica del profilo default===&lt;br /&gt;
 alter profile DEFAULT limit PASSWORD_LIFE_TIME unlimited PASSWORD_GRACE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
 alter profile DEFAULT limit PASSWORD_LIFE_TIME unlimited PASSWORD_GRACE_TIME unlimited;&lt;br /&gt;
&lt;br /&gt;
=Password Unexpire=&lt;br /&gt;
&lt;br /&gt;
==Versione 10G==&lt;br /&gt;
Non usare su versione 11 o successive.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 11G==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 400&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is not null and t2.spare4 is not null&lt;br /&gt;
 union&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is null and t2.spare4 is not null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PL/SQL===&lt;br /&gt;
(Bisogna scrivere un unica procedura che gestisca tutti e tre i casi)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G 11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;)&lt;br /&gt;
               and t1.password_versions=&#039;11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 12C==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in (&#039;12C &#039;,&#039;11G &#039;,&#039;11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039;  || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in &#039;10G 11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===versione singola===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;) )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Versione con cambio di profilo===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.profile=&#039;DOMAIN_USERS&#039;&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;))&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile default&#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile DOMAIN_USERS&#039;;&lt;br /&gt;
&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse users==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039; ;&#039;&lt;br /&gt;
  from dba_users t1, sys.user$ t2&lt;br /&gt;
 where t2.name=t1.username&lt;br /&gt;
   and username in (select username from dba_users where oracle_maintained=&#039;N&#039; and authentication_type=&#039;PASSWORD&#039; and username not like &#039;C##%&#039;);&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 dbms_metadata.get_ddl( object_type=&amp;gt;&#039;USER&#039;, name=&amp;gt;&#039;USER1&#039;) from dual;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ripristina password==&lt;br /&gt;
Nel caso che il profilo utente non consenta il riutilizzo di password o l&#039;utilizzo di password fuori regola:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
create profile PASSWORD_UNLIMITED limit&lt;br /&gt;
 PASSWORD_LIFE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_MAX UNLIMITED&lt;br /&gt;
 PASSWORD_VERIFY_FUNCTION NULL&lt;br /&gt;
 INACTIVE_ACCOUNT_TIME UNLIMITED;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
variable PP varchar2(120);&lt;br /&gt;
begin&lt;br /&gt;
 select profile into :PP from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select :PP from dual;&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 profile password_unlimited;&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 identified by &amp;quot;&amp;amp;&amp;amp;2&amp;quot; account unlock;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
 execute immediate &#039;alter user &amp;amp;&amp;amp;1 profile &#039; || :PP;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&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=6099</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6099"/>
		<updated>2024-07-17T14:46:14Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* sessioni */&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;
&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;
&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,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(maxbytes)/(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(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.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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6098</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6098"/>
		<updated>2024-07-17T14:45:48Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* versione RAC= */&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;
&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;
&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,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(maxbytes)/(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(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.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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6097</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6097"/>
		<updated>2024-07-17T14:45:33Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* sessioni */&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;
&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;
&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,s.logon_time;&lt;br /&gt;
&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(maxbytes)/(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(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.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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6096</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6096"/>
		<updated>2024-06-06T13:39:47Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* ACL */&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;
&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;
&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,s.logon_time;&lt;br /&gt;
&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(maxbytes)/(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(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.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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6095</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6095"/>
		<updated>2024-06-06T12:56:17Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* ACL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
&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;
&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;
&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,s.logon_time;&lt;br /&gt;
&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(maxbytes)/(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(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.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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6094</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6094"/>
		<updated>2024-06-06T12:49:53Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Job */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ACL=&lt;br /&gt;
&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;
=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;
&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;
&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,s.logon_time;&lt;br /&gt;
&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(maxbytes)/(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(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.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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6093</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6093"/>
		<updated>2024-03-26T11:49:56Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Reverse Grants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
&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;
&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,s.logon_time;&lt;br /&gt;
&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(maxbytes)/(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(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.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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6092</id>
		<title>Query Varie</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Query_Varie&amp;diff=6092"/>
		<updated>2024-03-26T11:48:39Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Reverse Grants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
&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;
&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,s.logon_time;&lt;br /&gt;
&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(maxbytes)/(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(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.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:&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>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_a_modo_mio&amp;diff=6091</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=6091"/>
		<updated>2024-03-26T11:28:22Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* svuota schema */&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;
&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=6090</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=6090"/>
		<updated>2024-03-26T11:27:28Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* svuota schema */&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;
&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=Categoria:MS_SQL_Server&amp;diff=6089</id>
		<title>Categoria:MS SQL Server</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Categoria:MS_SQL_Server&amp;diff=6089"/>
		<updated>2024-03-22T14:37:39Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Categoria:Database&amp;diff=6088</id>
		<title>Categoria:Database</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Categoria:Database&amp;diff=6088"/>
		<updated>2024-03-22T14:36:33Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Database&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Oracle]]&lt;br /&gt;
[[Categoria:Postgres]]&lt;br /&gt;
[[Categoria:DB2]]&lt;br /&gt;
[[Categoria:Mysql]]&lt;br /&gt;
[[Categoria:MS SQL Server]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Categoria:MS_SQL_Server&amp;diff=6087</id>
		<title>Categoria:MS SQL Server</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Categoria:MS_SQL_Server&amp;diff=6087"/>
		<updated>2024-03-22T14:35:57Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Creata pagina con &amp;quot;==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Login_Extra_Dominio_MS_SQL_Server&amp;diff=6086</id>
		<title>Login Extra Dominio MS SQL Server</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Login_Extra_Dominio_MS_SQL_Server&amp;diff=6086"/>
		<updated>2024-03-22T14:35:47Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Modo 1==&lt;br /&gt;
&lt;br /&gt;
 runas /netonly /noprofile /user:domain\username &amp;quot;c:\path\ssms.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modo 2==&lt;br /&gt;
&lt;br /&gt;
Credential Manager&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.mssqltips.com/sqlservertip/3250/connect-to-sql-servers-in-another-domain-using-windows-authentication/&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:MS SQL Server]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Login_Extra_Dominio_MS_SQL_Server&amp;diff=6085</id>
		<title>Login Extra Dominio MS SQL Server</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Login_Extra_Dominio_MS_SQL_Server&amp;diff=6085"/>
		<updated>2024-03-22T14:34:48Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Creata pagina con &amp;quot;   Categoria:Database Categoria:MS SQL Server&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:MS SQL Server]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=File_aperti_e_cancellati&amp;diff=6082</id>
		<title>File aperti e cancellati</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=File_aperti_e_cancellati&amp;diff=6082"/>
		<updated>2024-01-04T12:06:50Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Creata pagina con &amp;quot;  Why is space not being freed from disk after deleting a file in Red Hat Enterprise Linux? Solution Verified - Updated February 13 2022 at 3:06 AM - English Environment  Red Hat Enterprise Linux (RHEL) Issue      Why is space not being freed from disk after deleting a file in Red Hat Enterprise Linux?     When deleting a large file or files, the file is deleted successfully but the size of the filesystem does not reflect the change.     I&amp;#039;ve deleted some files but the a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Why is space not being freed from disk after deleting a file in Red Hat Enterprise Linux?&lt;br /&gt;
Solution Verified - Updated February 13 2022 at 3:06 AM - English&lt;br /&gt;
Environment&lt;br /&gt;
&lt;br /&gt;
Red Hat Enterprise Linux (RHEL)&lt;br /&gt;
Issue&lt;br /&gt;
&lt;br /&gt;
    Why is space not being freed from disk after deleting a file in Red Hat Enterprise Linux?&lt;br /&gt;
    When deleting a large file or files, the file is deleted successfully but the size of the filesystem does not reflect the change.&lt;br /&gt;
    I&#039;ve deleted some files but the amount of free space on the filesystem has not changed.&lt;br /&gt;
&lt;br /&gt;
    The OS was holding several very large log files open with some as large as ~30G. The file was previously deleted, but only stopping and restarting the jvm/java process released the disk space. The lsof command shows the following output before restarting the java process&lt;br /&gt;
    Raw&lt;br /&gt;
&lt;br /&gt;
    COMMAND     PID      USER   FD      TYPE    DEVICE   SIZE/OFF       NODE NAME&lt;br /&gt;
    : &lt;br /&gt;
    java      49097    awdmw   77w      REG     253,6 33955068440    1283397 /opt/jboss/jboss-eap-5/jboss-as/server/all/log/server.log (deleted)&lt;br /&gt;
&lt;br /&gt;
    When you perform a df, the storage shows 90+% utilized, however, there is not really that much written to that space.&lt;br /&gt;
&lt;br /&gt;
Resolution&lt;br /&gt;
&lt;br /&gt;
Graceful shutdown of relevant process&lt;br /&gt;
&lt;br /&gt;
First, obtain a list of deleted files which are still held open by applications:&lt;br /&gt;
Raw&lt;br /&gt;
&lt;br /&gt;
$ lsof | egrep &amp;quot;deleted|COMMAND&amp;quot;&lt;br /&gt;
COMMAND       PID    TID TASKCMD     USER   FD  TYPE  DEVICE    SIZE/OFF      NODE NAME&lt;br /&gt;
ora         25575   8194 oracle    oracle   33   REG   65,65  4294983680  31014933 /oradata/DATAPRE/file.dbf (deleted)&lt;br /&gt;
&lt;br /&gt;
Note: check either the filesystem path within NAME field or the device number under DEVICE to match the filesystem of interest.&lt;br /&gt;
&lt;br /&gt;
The lsof output shows the process with pid 25575 has kept file /oradata/DATAPRE/file.dbf open with file descriptor (fd) number 33.&lt;br /&gt;
&lt;br /&gt;
After a file has been identified, free the file used space by shutting down the affected process. If a graceful shutdown does not work, then issue the kill command to forcefully stop it by referencing the PID.&lt;br /&gt;
&lt;br /&gt;
Truncate File Size&lt;br /&gt;
&lt;br /&gt;
Alternatively, it is possible to force the system to de-allocate the space consumed by an in-use file by forcing the system to truncate the file via the proc file system. This is an advanced technique and should only be carried out when the administrator is certain that this will cause no adverse effects to running processes. Applications may not be designed to deal elegantly with this situation and may produce inconsistent or undefined behavior when files that are in use are abruptly truncated in this manner.&lt;br /&gt;
Raw&lt;br /&gt;
&lt;br /&gt;
$ echo &amp;gt; /proc/pid/fd/fd_number&lt;br /&gt;
&lt;br /&gt;
For example, from the lsof output above:&lt;br /&gt;
Raw&lt;br /&gt;
&lt;br /&gt;
$ file /proc/25575/fd/33&lt;br /&gt;
/proc/25575/fd/33: broken symbolic link to `/oradata/DATAPRE/file.dbf (deleted)&#039;&lt;br /&gt;
$ echo &amp;gt; /proc/25575/fd/33&lt;br /&gt;
&lt;br /&gt;
The same reason will cause different disk usage from du command and df command, please refer to Why does df show bigger disk usage than du?&lt;br /&gt;
&lt;br /&gt;
To identify the used file size (in blocks), use the command below:&lt;br /&gt;
Raw&lt;br /&gt;
&lt;br /&gt;
# lsof -Fn -Fs |grep -B1 -i deleted | grep ^s  | cut -c 2- | awk &#039;{s+=$1} END {print s}&#039;&lt;br /&gt;
&lt;br /&gt;
Root Cause&lt;br /&gt;
&lt;br /&gt;
On Linux or Unix systems, deleting a file via rm or through a file manager application will unlink the file from the file system&#039;s directory structure; however, if the file is still open (in use by a running process) it will still be accessible to this process and will continue to occupy space on disk. Therefore such processes may need to be restarted before that file&#039;s space will be cleared up on the filesystem.&lt;br /&gt;
Diagnostic Steps&lt;br /&gt;
&lt;br /&gt;
Log Reaper will allow you to visualize and quickly narrow down the lsof data to exactly the subset you want to see&lt;br /&gt;
&lt;br /&gt;
    Product(s) Red Hat Enterprise Linux &lt;br /&gt;
&lt;br /&gt;
    Component lsof &lt;br /&gt;
&lt;br /&gt;
    Category Learn more &lt;br /&gt;
&lt;br /&gt;
    Tags file_systems kernel rhel &lt;br /&gt;
&lt;br /&gt;
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.&lt;br /&gt;
7 Comments &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://access.redhat.com/solutions/2316&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Linux]]&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_Dataguard&amp;diff=6081</id>
		<title>Oracle Dataguard</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_Dataguard&amp;diff=6081"/>
		<updated>2023-11-28T14:02:15Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creazione dataguard=&lt;br /&gt;
&lt;br /&gt;
=Dataguard Broker=&lt;br /&gt;
Creazione della configurazione (da eseguire sul primario)&lt;br /&gt;
&lt;br /&gt;
 dgmgrl  &amp;lt;&amp;lt; EOF&lt;br /&gt;
 connect sys/password@SID01_P&lt;br /&gt;
 create configuration &#039;BROKER1&#039; as primary database is &#039;SID01_P&#039; connect identifier is &#039;SID01_P&#039;;&lt;br /&gt;
 add database &#039;SID01_S&#039; as connect identifier is &#039;SID01_S&#039; maintained as physical;&lt;br /&gt;
 enable configuration;&lt;br /&gt;
 show configuration;&lt;br /&gt;
 exit;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verifica dello stato:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DGMGRL&amp;gt; show database SID01_S&lt;br /&gt;
&lt;br /&gt;
Database - SID01_S&lt;br /&gt;
&lt;br /&gt;
  Role:               PHYSICAL STANDBY&lt;br /&gt;
  Intended State:     APPLY-ON&lt;br /&gt;
  Transport Lag:      0 seconds (computed 1 second ago)&lt;br /&gt;
  Apply Lag:          3 days 4 hours 38 minutes 27 seconds (computed 1 second ago)&lt;br /&gt;
  Average Apply Rate: 27.00 KByte/s&lt;br /&gt;
  Real Time Query:    OFF&lt;br /&gt;
  Instance(s):&lt;br /&gt;
    SID01&lt;br /&gt;
&lt;br /&gt;
  Database Error(s):&lt;br /&gt;
    ORA-16766: Redo Apply is stopped&lt;br /&gt;
&lt;br /&gt;
  Database Warning(s):&lt;br /&gt;
    ORA-16853: apply lag has exceeded specified threshold&lt;br /&gt;
&lt;br /&gt;
Database Status:&lt;br /&gt;
ERROR&lt;br /&gt;
&lt;br /&gt;
DGMGRL&amp;gt; edit database SID01_S set state=&#039;apply-off&#039;;&lt;br /&gt;
Succeeded.&lt;br /&gt;
DGMGRL&amp;gt; edit database SID01_S set state=&#039;apply-on&#039;;&lt;br /&gt;
Succeeded.&lt;br /&gt;
DGMGRL&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Cancellazione archivelog nel db secondario=&lt;br /&gt;
&lt;br /&gt;
https://www.dbi-services.com/blog/archivelog-deletion-policy-for-standby-database-in-oracle-data-guard/&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_unexpire_password&amp;diff=6080</id>
		<title>Oracle unexpire password</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_unexpire_password&amp;diff=6080"/>
		<updated>2023-11-14T10:34:32Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Versione 11G */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Interroga=&lt;br /&gt;
Per vedere se ci sono utenti con password scaduta o in scadenza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,account_status from dba_users where account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) order by username;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elenca gli utenti soggetti a scadenza password ma con password non ancora scaduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,expiry_date,account_status from dba_users where expiry_date is not null and account_status IN (&#039;OPEN&#039;,&#039;EXPIRED(GRACE)&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per vedere se ci sono account bloccati:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status in (&#039;LOCKED(TIMED)&#039;,&#039;LOCKED&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A volte gli account non di sistema vanno in expired &amp;amp; locked:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,account_status,created,lock_date from dba_users where account_status !=&#039;OPEN&#039; order by created;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Normalmente gli account di sistema sono in stato &amp;lt;code&amp;gt;&#039;EXPIRED &amp;amp; LOCKED&#039;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
da &amp;lt;code&amp;gt;SQLPLUS&amp;lt;/code&amp;gt; bisogna disattivare l&#039;opzione &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; per consentire valori con &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set define off&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status=&#039;EXPIRED &amp;amp; LOCKED&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Unlock=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter user &amp;lt;username&amp;gt; account unlock;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Visualizza stato utenti=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
col username for a25&lt;br /&gt;
col profile for a30&lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
select USERNAME,ACCOUNT_STATUS,PROFILE from dba_users;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Imposta per evitare la scadenza=&lt;br /&gt;
Per database singoli e PDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per CDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile c##nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile c##nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Password Unexpire=&lt;br /&gt;
&lt;br /&gt;
==Versione 10G==&lt;br /&gt;
Non usare su versione 11 o successive.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 11G==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 400&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is not null and t2.spare4 is not null&lt;br /&gt;
 union&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is null and t2.spare4 is not null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PL/SQL===&lt;br /&gt;
(Bisogna scrivere un unica procedura che gestisca tutti e tre i casi)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G 11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;)&lt;br /&gt;
               and t1.password_versions=&#039;11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 12C==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in (&#039;12C &#039;,&#039;11G &#039;,&#039;11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039;  || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in &#039;10G 11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===versione singola===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;) )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Versione con cambio di profilo===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.profile=&#039;DOMAIN_USERS&#039;&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;))&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile default&#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile DOMAIN_USERS&#039;;&lt;br /&gt;
&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse users==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039; ;&#039;&lt;br /&gt;
  from dba_users t1, sys.user$ t2&lt;br /&gt;
 where t2.name=t1.username&lt;br /&gt;
   and username in (select username from dba_users where oracle_maintained=&#039;N&#039; and authentication_type=&#039;PASSWORD&#039; and username not like &#039;C##%&#039;);&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 dbms_metadata.get_ddl( object_type=&amp;gt;&#039;USER&#039;, name=&amp;gt;&#039;USER1&#039;) from dual;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ripristina password==&lt;br /&gt;
Nel caso che il profilo utente non consenta il riutilizzo di password o l&#039;utilizzo di password fuori regola:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
create profile PASSWORD_UNLIMITED limit&lt;br /&gt;
 PASSWORD_LIFE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_MAX UNLIMITED&lt;br /&gt;
 PASSWORD_VERIFY_FUNCTION NULL&lt;br /&gt;
 INACTIVE_ACCOUNT_TIME UNLIMITED;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
variable PP varchar2(120);&lt;br /&gt;
begin&lt;br /&gt;
 select profile into :PP from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select :PP from dual;&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 profile password_unlimited;&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 identified by &amp;quot;&amp;amp;&amp;amp;2&amp;quot; account unlock;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
 execute immediate &#039;alter user &amp;amp;&amp;amp;1 profile &#039; || :PP;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&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=6079</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=6079"/>
		<updated>2023-11-08T11:24:53Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* impdp */&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;.&#039; || c1.table_name || &#039; 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;.&#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;
 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;
&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=6078</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=6078"/>
		<updated>2023-11-08T11:23:36Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* impdp */&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;.&#039; || c1.table_name || &#039; 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;.&#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;
 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_daol_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;
&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_LOB&amp;diff=6077</id>
		<title>Oracle LOB</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_LOB&amp;diff=6077"/>
		<updated>2023-11-08T11:20:35Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; with c1 as (select trunc(dbms_lob.getlength(XML_TO_NETA)/4000) as gruppo from COMMON.AB_TRACKING) select gruppo,count(*) from c1 group by gruppo;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 with c1 as&lt;br /&gt;
  (select case when lungh between 0 and 3999 then &#039;inrow&#039;&lt;br /&gt;
               when lungh between 4000 and 8192 then &#039;chunk&#039;&lt;br /&gt;
               when lungh is null then &#039;empty&#039;&lt;br /&gt;
              else &#039;bigger&#039; end lunghezza&lt;br /&gt;
       from (select dbms_lob.getlength(DATA) as lungh from STAMPATORE.QUEUETABLE ))&lt;br /&gt;
 select lunghezza,count(*) from c1 group by lunghezza;&lt;br /&gt;
&lt;br /&gt;
=expdp/impdp=&lt;br /&gt;
&lt;br /&gt;
=compressione/deduplica=&lt;br /&gt;
&lt;br /&gt;
=securfile/basicfile=&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Oracle]]&lt;br /&gt;
[[Categoria:Database]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Postgres_Sessioni&amp;diff=6076</id>
		<title>Postgres Sessioni</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Postgres_Sessioni&amp;diff=6076"/>
		<updated>2023-10-26T13:41:51Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Elenca le sessioni */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Elenca le sessioni==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select pid as process_id, &lt;br /&gt;
       usename as username, &lt;br /&gt;
       datname as database_name, &lt;br /&gt;
       client_addr as client_address, &lt;br /&gt;
       application_name,&lt;br /&gt;
       backend_start,&lt;br /&gt;
       state,&lt;br /&gt;
       state_change&lt;br /&gt;
 from pg_stat_activity;&lt;br /&gt;
&lt;br /&gt;
==Terminare sessione==&lt;br /&gt;
&lt;br /&gt;
 select pg_terminate_backend(pid);&lt;br /&gt;
&lt;br /&gt;
Oppure usando la tabella:&lt;br /&gt;
&lt;br /&gt;
 select pg_terminate_backend(pid)&lt;br /&gt;
 from pg_stat_activity&lt;br /&gt;
 where pid = &#039;18765&#039;;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Postgres]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Postgres_Sessioni&amp;diff=6075</id>
		<title>Postgres Sessioni</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Postgres_Sessioni&amp;diff=6075"/>
		<updated>2023-10-26T13:40:53Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Terminare sessione */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Elenca le sessioni=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select pid as process_id, &lt;br /&gt;
       usename as username, &lt;br /&gt;
       datname as database_name, &lt;br /&gt;
       client_addr as client_address, &lt;br /&gt;
       application_name,&lt;br /&gt;
       backend_start,&lt;br /&gt;
       state,&lt;br /&gt;
       state_change&lt;br /&gt;
 from pg_stat_activity;&lt;br /&gt;
&lt;br /&gt;
==Terminare sessione==&lt;br /&gt;
&lt;br /&gt;
 select pg_terminate_backend(pid);&lt;br /&gt;
&lt;br /&gt;
Oppure usando la tabella:&lt;br /&gt;
&lt;br /&gt;
 select pg_terminate_backend(pid)&lt;br /&gt;
 from pg_stat_activity&lt;br /&gt;
 where pid = &#039;18765&#039;;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Postgres]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Postgres_Sessioni&amp;diff=6074</id>
		<title>Postgres Sessioni</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Postgres_Sessioni&amp;diff=6074"/>
		<updated>2023-10-26T13:18:20Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Elenca le sessioni */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Elenca le sessioni=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 select pid as process_id, &lt;br /&gt;
       usename as username, &lt;br /&gt;
       datname as database_name, &lt;br /&gt;
       client_addr as client_address, &lt;br /&gt;
       application_name,&lt;br /&gt;
       backend_start,&lt;br /&gt;
       state,&lt;br /&gt;
       state_change&lt;br /&gt;
 from pg_stat_activity;&lt;br /&gt;
&lt;br /&gt;
==Terminare sessione==&lt;br /&gt;
&lt;br /&gt;
 select pg_terminate_backend(pid) &lt;br /&gt;
 from pg_stat_activity&lt;br /&gt;
 where pid = &#039;18765&#039;;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Postgres]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>http://www.emigar.com/wiki/index.php?title=Oracle_unexpire_password&amp;diff=6073</id>
		<title>Oracle unexpire password</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_unexpire_password&amp;diff=6073"/>
		<updated>2023-10-26T10:43:09Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* versione singola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Interroga=&lt;br /&gt;
Per vedere se ci sono utenti con password scaduta o in scadenza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,account_status from dba_users where account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) order by username;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elenca gli utenti soggetti a scadenza password ma con password non ancora scaduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,expiry_date,account_status from dba_users where expiry_date is not null and account_status IN (&#039;OPEN&#039;,&#039;EXPIRED(GRACE)&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per vedere se ci sono account bloccati:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status in (&#039;LOCKED(TIMED)&#039;,&#039;LOCKED&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A volte gli account non di sistema vanno in expired &amp;amp; locked:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,account_status,created,lock_date from dba_users where account_status !=&#039;OPEN&#039; order by created;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Normalmente gli account di sistema sono in stato &amp;lt;code&amp;gt;&#039;EXPIRED &amp;amp; LOCKED&#039;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
da &amp;lt;code&amp;gt;SQLPLUS&amp;lt;/code&amp;gt; bisogna disattivare l&#039;opzione &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; per consentire valori con &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set define off&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status=&#039;EXPIRED &amp;amp; LOCKED&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Unlock=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter user &amp;lt;username&amp;gt; account unlock;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Visualizza stato utenti=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
col username for a25&lt;br /&gt;
col profile for a30&lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
select USERNAME,ACCOUNT_STATUS,PROFILE from dba_users;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Imposta per evitare la scadenza=&lt;br /&gt;
Per database singoli e PDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per CDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile c##nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile c##nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Password Unexpire=&lt;br /&gt;
&lt;br /&gt;
==Versione 10G==&lt;br /&gt;
Non usare su versione 11 o successive.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 11G==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 400&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is not null and t2.spare4 is not null;&lt;br /&gt;
&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is null and t2.spare4 is not null;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PL/SQL===&lt;br /&gt;
(Bisogna scrivere un unica procedura che gestisca tutti e tre i casi)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G 11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;)&lt;br /&gt;
               and t1.password_versions=&#039;11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 12C==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in (&#039;12C &#039;,&#039;11G &#039;,&#039;11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039;  || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in &#039;10G 11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===versione singola===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;) )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Versione con cambio di profilo===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.profile=&#039;DOMAIN_USERS&#039;&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;))&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile default&#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile DOMAIN_USERS&#039;;&lt;br /&gt;
&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse users==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039; ;&#039;&lt;br /&gt;
  from dba_users t1, sys.user$ t2&lt;br /&gt;
 where t2.name=t1.username&lt;br /&gt;
   and username in (select username from dba_users where oracle_maintained=&#039;N&#039; and authentication_type=&#039;PASSWORD&#039; and username not like &#039;C##%&#039;);&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 dbms_metadata.get_ddl( object_type=&amp;gt;&#039;USER&#039;, name=&amp;gt;&#039;USER1&#039;) from dual;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ripristina password==&lt;br /&gt;
Nel caso che il profilo utente non consenta il riutilizzo di password o l&#039;utilizzo di password fuori regola:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
create profile PASSWORD_UNLIMITED limit&lt;br /&gt;
 PASSWORD_LIFE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_MAX UNLIMITED&lt;br /&gt;
 PASSWORD_VERIFY_FUNCTION NULL&lt;br /&gt;
 INACTIVE_ACCOUNT_TIME UNLIMITED;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
variable PP varchar2(120);&lt;br /&gt;
begin&lt;br /&gt;
 select profile into :PP from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select :PP from dual;&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 profile password_unlimited;&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 identified by &amp;quot;&amp;amp;&amp;amp;2&amp;quot; account unlock;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
 execute immediate &#039;alter user &amp;amp;&amp;amp;1 profile &#039; || :PP;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&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_unexpire_password&amp;diff=6072</id>
		<title>Oracle unexpire password</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_unexpire_password&amp;diff=6072"/>
		<updated>2023-10-26T10:42:46Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* versione singola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Interroga=&lt;br /&gt;
Per vedere se ci sono utenti con password scaduta o in scadenza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,account_status from dba_users where account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) order by username;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elenca gli utenti soggetti a scadenza password ma con password non ancora scaduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,expiry_date,account_status from dba_users where expiry_date is not null and account_status IN (&#039;OPEN&#039;,&#039;EXPIRED(GRACE)&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per vedere se ci sono account bloccati:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status in (&#039;LOCKED(TIMED)&#039;,&#039;LOCKED&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A volte gli account non di sistema vanno in expired &amp;amp; locked:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,account_status,created,lock_date from dba_users where account_status !=&#039;OPEN&#039; order by created;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Normalmente gli account di sistema sono in stato &amp;lt;code&amp;gt;&#039;EXPIRED &amp;amp; LOCKED&#039;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
da &amp;lt;code&amp;gt;SQLPLUS&amp;lt;/code&amp;gt; bisogna disattivare l&#039;opzione &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; per consentire valori con &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set define off&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status=&#039;EXPIRED &amp;amp; LOCKED&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Unlock=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter user &amp;lt;username&amp;gt; account unlock;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Visualizza stato utenti=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
col username for a25&lt;br /&gt;
col profile for a30&lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
select USERNAME,ACCOUNT_STATUS,PROFILE from dba_users;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Imposta per evitare la scadenza=&lt;br /&gt;
Per database singoli e PDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per CDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile c##nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile c##nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Password Unexpire=&lt;br /&gt;
&lt;br /&gt;
==Versione 10G==&lt;br /&gt;
Non usare su versione 11 o successive.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 11G==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 400&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is not null and t2.spare4 is not null;&lt;br /&gt;
&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is null and t2.spare4 is not null;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PL/SQL===&lt;br /&gt;
(Bisogna scrivere un unica procedura che gestisca tutti e tre i casi)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G 11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;)&lt;br /&gt;
               and t1.password_versions=&#039;11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 12C==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in (&#039;12C &#039;,&#039;11G &#039;,&#039;11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039;  || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in &#039;10G 11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===versione singola===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;) )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Versione con cambio di profilo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.profile=&#039;DOMAIN_USERS&#039;&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions in (&#039;11G 12C &#039;,&#039;10G 11G 12C &#039;))&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile default&#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile DOMAIN_USERS&#039;;&lt;br /&gt;
&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse users==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039; ;&#039;&lt;br /&gt;
  from dba_users t1, sys.user$ t2&lt;br /&gt;
 where t2.name=t1.username&lt;br /&gt;
   and username in (select username from dba_users where oracle_maintained=&#039;N&#039; and authentication_type=&#039;PASSWORD&#039; and username not like &#039;C##%&#039;);&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 dbms_metadata.get_ddl( object_type=&amp;gt;&#039;USER&#039;, name=&amp;gt;&#039;USER1&#039;) from dual;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ripristina password==&lt;br /&gt;
Nel caso che il profilo utente non consenta il riutilizzo di password o l&#039;utilizzo di password fuori regola:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
create profile PASSWORD_UNLIMITED limit&lt;br /&gt;
 PASSWORD_LIFE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_MAX UNLIMITED&lt;br /&gt;
 PASSWORD_VERIFY_FUNCTION NULL&lt;br /&gt;
 INACTIVE_ACCOUNT_TIME UNLIMITED;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
variable PP varchar2(120);&lt;br /&gt;
begin&lt;br /&gt;
 select profile into :PP from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select :PP from dual;&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 profile password_unlimited;&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 identified by &amp;quot;&amp;amp;&amp;amp;2&amp;quot; account unlock;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
 execute immediate &#039;alter user &amp;amp;&amp;amp;1 profile &#039; || :PP;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&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_unexpire_password&amp;diff=6071</id>
		<title>Oracle unexpire password</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_unexpire_password&amp;diff=6071"/>
		<updated>2023-10-26T10:41:26Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* versione singola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Interroga=&lt;br /&gt;
Per vedere se ci sono utenti con password scaduta o in scadenza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,account_status from dba_users where account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) order by username;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elenca gli utenti soggetti a scadenza password ma con password non ancora scaduta&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,expiry_date,account_status from dba_users where expiry_date is not null and account_status IN (&#039;OPEN&#039;,&#039;EXPIRED(GRACE)&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per vedere se ci sono account bloccati:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status in (&#039;LOCKED(TIMED)&#039;,&#039;LOCKED&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A volte gli account non di sistema vanno in expired &amp;amp; locked:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 200 pagesize 200&lt;br /&gt;
col username for a30&lt;br /&gt;
col profile for a40&lt;br /&gt;
select username,profile,account_status,created,lock_date from dba_users where account_status !=&#039;OPEN&#039; order by created;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Normalmente gli account di sistema sono in stato &amp;lt;code&amp;gt;&#039;EXPIRED &amp;amp; LOCKED&#039;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
da &amp;lt;code&amp;gt;SQLPLUS&amp;lt;/code&amp;gt; bisogna disattivare l&#039;opzione &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; per consentire valori con &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set define off&lt;br /&gt;
select username,profile,created,lock_date from dba_users where account_status=&#039;EXPIRED &amp;amp; LOCKED&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Unlock=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alter user &amp;lt;username&amp;gt; account unlock;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Visualizza stato utenti=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
col username for a25&lt;br /&gt;
col profile for a30&lt;br /&gt;
set linesize 200&lt;br /&gt;
set pagesize 200&lt;br /&gt;
select USERNAME,ACCOUNT_STATUS,PROFILE from dba_users;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Imposta per evitare la scadenza=&lt;br /&gt;
Per database singoli e PDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per CDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create profile c##nopasswdexpire_profile limit PASSWORD_LIFE_TIME unlimited FAILED_LOGIN_ATTEMPTS unlimited PASSWORD_VERIFY_FUNCTION null;&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
for c1 in (select username from dba_users where profile=&#039;DEFAULT&#039; and account_status!=&#039;EXPIRED &amp;amp; LOCKED&#039;)&lt;br /&gt;
loop&lt;br /&gt;
  begin&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.username || &#039; profile c##nopasswdexpire_profile&#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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Password Unexpire=&lt;br /&gt;
&lt;br /&gt;
==Versione 10G==&lt;br /&gt;
Non usare su versione 11 o successive.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 11G==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set linesize 400&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is not null and t2.spare4 is not null;&lt;br /&gt;
&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.spare4 || &#039;&#039;&#039;;&#039;&lt;br /&gt;
 from dba_users t1, sys.user$ t2 where t2.name=t1.username and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) and t2.password is null and t2.spare4 is not null;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PL/SQL===&lt;br /&gt;
(Bisogna scrivere un unica procedura che gestisca tutti e tre i casi)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G 11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;)&lt;br /&gt;
               and t1.password_versions=&#039;11G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Versione 12C==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions=&#039;10G &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in (&#039;12C &#039;,&#039;11G &#039;,&#039;11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039;  || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 begin&lt;br /&gt;
  for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
               from dba_users t1, sys.user$ t2 &lt;br /&gt;
              where t2.name=t1.username &lt;br /&gt;
                and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
                and t1.password_versions in &#039;10G 11G 12C &#039;)&lt;br /&gt;
  loop&lt;br /&gt;
   execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  end loop;&lt;br /&gt;
 end;&lt;br /&gt;
 /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===versione singola===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username &lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and (t1.password_versions=&#039;10G 11G 12C &#039; or t1.password_versions=&#039;10G 11G 12C &#039;) )&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Versione con cambio di profilo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
 for c1 in (select t1.username u,t2.password p,t2.spare4 s &lt;br /&gt;
              from dba_users t1, sys.user$ t2 &lt;br /&gt;
             where t2.name=t1.username&lt;br /&gt;
               and t1.profile=&#039;DOMAIN_USERS&#039;&lt;br /&gt;
               and t1.account_status in (&#039;EXPIRED&#039;,&#039;EXPIRED(GRACE)&#039;) &lt;br /&gt;
               and (t1.password_versions=&#039;10G 11G 12C &#039; or t1.password_versions=&#039;10G 11G 12C &#039;))&lt;br /&gt;
 loop&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile default&#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; identified by values &#039;&#039;&#039; || c1.p || &#039;;&#039; || c1.s || &#039;&#039;&#039; &#039;;&lt;br /&gt;
  execute immediate &#039;alter user &#039; || c1.u || &#039; profile DOMAIN_USERS&#039;;&lt;br /&gt;
&lt;br /&gt;
 end loop;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reverse users==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select &#039;alter user &#039; || t1.username || &#039; identified by values &#039;&#039;&#039; || t2.password || &#039;;&#039; || t2.spare4 || &#039;&#039;&#039; ;&#039;&lt;br /&gt;
  from dba_users t1, sys.user$ t2&lt;br /&gt;
 where t2.name=t1.username&lt;br /&gt;
   and username in (select username from dba_users where oracle_maintained=&#039;N&#039; and authentication_type=&#039;PASSWORD&#039; and username not like &#039;C##%&#039;);&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 dbms_metadata.get_ddl( object_type=&amp;gt;&#039;USER&#039;, name=&amp;gt;&#039;USER1&#039;) from dual;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ripristina password==&lt;br /&gt;
Nel caso che il profilo utente non consenta il riutilizzo di password o l&#039;utilizzo di password fuori regola:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
set define off&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
create profile PASSWORD_UNLIMITED limit&lt;br /&gt;
 PASSWORD_LIFE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_TIME UNLIMITED&lt;br /&gt;
 PASSWORD_REUSE_MAX UNLIMITED&lt;br /&gt;
 PASSWORD_VERIFY_FUNCTION NULL&lt;br /&gt;
 INACTIVE_ACCOUNT_TIME UNLIMITED;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
variable PP varchar2(120);&lt;br /&gt;
begin&lt;br /&gt;
 select profile into :PP from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select :PP from dual;&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&lt;br /&gt;
&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 profile password_unlimited;&lt;br /&gt;
alter user &amp;amp;&amp;amp;1 identified by &amp;quot;&amp;amp;&amp;amp;2&amp;quot; account unlock;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
 execute immediate &#039;alter user &amp;amp;&amp;amp;1 profile &#039; || :PP;&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;br /&gt;
select profile from dba_users where username=&#039;&amp;amp;&amp;amp;1&#039;;&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_Partitioning&amp;diff=6070</id>
		<title>Oracle Partitioning</title>
		<link rel="alternate" type="text/html" href="http://www.emigar.com/wiki/index.php?title=Oracle_Partitioning&amp;diff=6070"/>
		<updated>2023-10-17T13:31:52Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* converti da partizionamento manuale a partizionamento automatico */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=impdp=&lt;br /&gt;
Importare una partizione su una tabella (che potrebbe essere anche una tabella partizionata, ma con schema di partizionamento diverso)&lt;br /&gt;
&lt;br /&gt;
 tables=&amp;quot;HR.EMP:P2016_53&amp;quot;&lt;br /&gt;
 table_exists_action=append&lt;br /&gt;
 partition_options=merge&lt;br /&gt;
 data_options=TRUST_EXISTING_TABLE_PARTITIONS&lt;br /&gt;
&lt;br /&gt;
=Elenca tabelle=&lt;br /&gt;
&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200 linesize 200 trim on trims on&lt;br /&gt;
 col owner for a30&lt;br /&gt;
 col table_name for a30&lt;br /&gt;
 col autolist for a4&lt;br /&gt;
 col interval for a30&lt;br /&gt;
 -- select owner,table_name from dba_tables where partitioned=&#039;YES&#039; and owner not in (&#039;SYS&#039;,&#039;SYSTEM&#039;);&lt;br /&gt;
 select owner,table_name,partitioning_type,autolist,interval from dba_part_tables where owner not in (&#039;SYS&#039;,&#039;SYSTEM&#039;,&#039;AUDSYS&#039;);&lt;br /&gt;
&lt;br /&gt;
=Converti Tabelle=&lt;br /&gt;
==converti da partizionamento manuale a partizionamento automatico==&lt;br /&gt;
 --&lt;br /&gt;
 set pagesize 200 linesize 200 trim on trims on&lt;br /&gt;
 select &#039;alter table &#039; || owner || &#039;.&#039; || table_name || &#039; set partitioning automatic;&#039;&lt;br /&gt;
  from dba_part_tables where partitioning_type=&#039;LIST&#039; and autolist!=&#039;YES&#039; and owner not in (&#039;SYS&#039;,&#039;SYSTEM&#039;,&#039;AUDSYS&#039;);&lt;br /&gt;
&lt;br /&gt;
=Indici=&lt;br /&gt;
&lt;br /&gt;
=Spazio disco=&lt;br /&gt;
&lt;br /&gt;
=ILM=&lt;br /&gt;
(ADO richiede licenza Advanced Compression)&lt;br /&gt;
&lt;br /&gt;
 alter table PART_TABLE ilm add policy compress basic segment after 14 days of creation;&lt;br /&gt;
 alter table PART_TABLE ilm add policy compress basic segment after 14 days of no modification;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Database]]&lt;br /&gt;
[[Categoria:Oracle]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
</feed>