常用sql

Oracle数据库管理与优化技巧

http://www.sosdb.com/tech/oracle_rac/56bbs2.htm
===========================================================Schema Change:
sqlplus system/oracle123@"192.168.4.75:15021/etmsprod"
select * from dba_tab_privs where owner like 'ETMS%' and grantee not like 'ETMS%';
select * from dba_tab_privs where owner not like 'ETMS%' and grantee like 'ETMS%';
col owner for a10
col referenced_owner for a10
col referenced_name for a20
col referenced_link_name for a20
select owner,type,name,referenced_owner,referenced_type,referenced_name from dba_dependencies where owner like 'ETMS%' order by 1,2,3
select owner,type,name,referenced_owner,referenced_type,referenced_name from dba_dependencies where referenced_owner like 'ETMS%' order by 1,2,3

col ddl format a100
set long 10000 longc 10000
select dbms_metadata.get_ddl('TRIGGER',trigger_name,'ETMSDATA') ||';' "DDL" from dba_triggers
where owner='ETMSDATA';
===========================================================
1.    Select sql_text,sql_id from v$sql where sql_text like ‘% EPP_ORDER_CNTR drop%’;
确认当前执行的语句SQLID
2.    Select sid,serial#,event,p1,p2 from v$session where sql_id=’xxx’;
正在执行该SQL的session,也就是当前执行drop的session的等待事件状态
1.    Select sql_text,sql_id from v$sql where sql_text like ‘% EPP_ORDER_CNTR drop%’;
确认当前执行的语句SQLID
2.    Select sid,serial#,event,p1,p2 from v$session where sql_id=’xxx’;
正在执行该SQL的session,也就是当前执行drop的session的等待事件状态
SQL> select sid,username,event,blocking_session,seconds_in_wait, wait_time from v$session where state in ('WAITING') and wait_class != 'Idle';
SQL> select waiting_session,holding_session from dba_waiters;


select sql_text,hash_value from v$sqltext where sql_text like '%EPP_ORDER_CNTR drop column charge_code%' order by piece;
select s.sid,s.serial#,s.sql_hash_value,s.status,w.event,w.p1,w.p2 from v$session s,v$session_wait w where w.sid=s.sid and s.sql_hash_value=&hash_value;

select 'blocker('||wb.holding_session||':'||sb.username||')-sql:'||qb.sql_text blockers,
       'waiter ('||wb.waiting_session||':'||sw.username||')-sql:'||qw.sql_text waiters
from  dba_waiters wb,
      v$session   sb,
      v$session   sw,
      v$sqlarea   qb,
      v$sqlarea   qw
where wb.holding_session=sb.sid
and   wb.waiting_session=sw.sid
and   sb.prev_sql_addr=qb.address
and   sw.sql_address=qw.address
and   wb.mode_held<>'None'


select p.spid pid,
s.sid,
s.SERIAL#,
s.username,
w.event,
w.p1,
w.P1TEXT,
w.p2,
w.P2TEXT,
w.p3,
w.P3TEXT,
sq.SQL_TEXT,
w.WAIT_TIME,
w.SECONDS_IN_WAIT,
w.STATE
from v$session_wait w, v$session s, v$process p, v$sql sq
where event not like 'SQL%' and w.sid = s.sid and s.paddr = p.addr and
s.SQL_ADDRESS = sq.ADDRESS and s.SQL_HASH_VALUE = sq.HASH_VALUE

/死锁检测
sqlplus system/oracle123@\"192.168.2.166:15022/amsprod\"
select object_name,machine,s.sid,s.serial# from v$locked_object k, dba_objects o,v$session s where k.object_id=o.object_id and k.session_id=s.sid;

SELECT    bs.username "Blocking User", bs.username "DB User",
          ws.username "Waiting User", bs.SID "SID", ws.SID "WSID",
          bs.serial# "Serial#", bs.sql_address "address",
          bs.sql_hash_value "Sql hash", bs.program "Blocking App",
          ws.program "Waiting App", bs.machine "Blocking Machine",
          ws.machine "Waiting Machine", bs.osuser "Blocking OS User",
          ws.osuser "Waiting OS User", bs.serial# "Serial#",
          ws.serial# "WSerial#",
          DECODE (wk.TYPE,
                  'MR', 'Media Recovery',
                  'RT', 'Redo Thread',
                  'UN', 'USER Name',
                  'TX', 'Transaction',
                  'TM', 'DML',
                  'UL', 'PL/SQL USER LOCK',
                  'DX', 'Distributed Xaction',
                  'CF', 'Control FILE',
                  'IS', 'Instance State',
                  'FS', 'FILE SET',
                  'IR', 'Instance Recovery',
                  'ST', 'Disk SPACE Transaction',
                  'TS', 'Temp Segment',
                  'IV', 'Library Cache Invalidation',
                  'LS', 'LOG START OR Switch',
                  'RW', 'ROW Wait',
                  'SQ', 'Sequence Number',
                  'TE', 'Extend TABLE',
                  'TT', 'Temp TABLE',
                  wk.TYPE
                 ) lock_type,
          DECODE (hk.lmode,
                  0, 'None',
                  1, 'NULL',
                  2, 'ROW-S (SS)',
                  3, 'ROW-X (SX)',
                  4, 'SHARE',
                  5, 'S/ROW-X (SSX)',
                  6, 'EXCLUSIVE',
                  TO_CHAR (hk.lmode)
                 ) mode_held,
          DECODE (wk.request,
                  0, 'None',
                  1, 'NULL',
                  2, 'ROW-S (SS)',
                  3, 'ROW-X (SX)',
                  4, 'SHARE',
                  5, 'S/ROW-X (SSX)',
                  6, 'EXCLUSIVE',
                  TO_CHAR (wk.request)
                 ) mode_requested,
          TO_CHAR (hk.id1) lock_id1, TO_CHAR (hk.id2) lock_id2,
          DECODE
             (hk.BLOCK,
              0, 'NOT Blocking',          /**//* Not blocking any other processes */
              1, 'Blocking',              /**//* This lock blocks other processes */
              2, 'Global',           /**//* This lock is global, so we can't tell */
              TO_CHAR (hk.BLOCK)
             ) blocking_others
     FROM v$lock hk, v$session bs, v$lock wk, v$session ws
    WHERE hk.BLOCK = 1
      AND hk.lmode != 0
      AND hk.lmode != 1
      AND wk.request != 0
      AND wk.TYPE(+) = hk.TYPE
      AND wk.id1(+) = hk.id1
      AND wk.id2(+) = hk.id2
      AND hk.SID = bs.SID(+)
      AND wk.SID = ws.SID(+)
      AND (bs.username IS NOT NULL)
      AND (bs.username <> 'SYSTEM')
      AND (bs.username <> 'SYS')
ORDER BY 1;
/
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
/
select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object);
select sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object));
/

mcs慢语句捕捉:
alter session set nls_date_format = 'YYYY-MON-DD HH24:MI:SS';
set pagesize 0
set linesize 1000
col xxx for 99999
select sid, serial#,osuser,machine,terminal,program from v$session
where machine='test\ISD-2D6BG2X';
Annie?Zhang
test\ISD-2D6BG2X
ISD-2D6BG2X
plsqldev.exe


SET LINESIZE 100
SET PAGESIZE 50000
COL USERNAME FOR A10
COL machine FOR A15
COL sql_text FOR A50
select
substr(s.username,1,18) username,
s.sid,s.serial#,s.machine,y.sql_text
from v$session s,v$process p,v$transaction t,v$rollstat r,v$rollname n,v$sql y
where s.paddr = p.addr
and s.taddr = t.addr (+)
and t.xidusn = r.usn (+)
and r.usn = n.usn (+)
and s.username is not null
and s.sql_address=y.address
and s.sid=&sid
order by s.sid,s.serial#,s.username,s.status

mcsuat    15023    192.168.195.55    testmcsu



select S.logon_time,S.sid,S.serial#,S.terminal,S.program,T.piece,T.sql_text
from v$session S,v$sqltext T
where T.address=S.sql_address
and S.machine='testmcsu' and S.username='MCSUSR'
order by S.logon_time,S.sid,T.piece
/
select S.logon_time,S.sid,S.serial#,S.terminal,S.program,T.piece,T.sql_text
from v$session S,v$sqltext T
where T.sql_id=S.sql_id
and machine='test\ISD-2D6BG2X'
order by S.logon_time,S.sid,T.piece
/

---
select S.logon_time,S.sid,S.serial#,S.terminal,S.program,T.piece,T.sql_text
from V$SESSION S,V$SQLTEXT T
where T.sql_id=S.prev_sql_id
and machine='test\ISD-2D6BG2X'
order by S.LOGON_TIME,S.sid,T.piece
/

select S.LOGON_TIME,S.sid,S.SERIAL#,S.TERMINAL,S.program,T.piece,T.SQL_TEXT
from v$session S,v$sqltext T
where T.ADDRESS=S.PREV_SQL_ADDR
and S.machine='testmcsu' and S.username='MCSUSR'
order by S.LOGON_TIME,S.sid,T.piece
/
-----格式调整
SQL> alter session set nls_date_format = 'YYYY-MON-DD HH24:MI:SS';
SQL> set pagesize 0
SQL> set linesize 1000
select S.logon_time,S.sid,S.serial#,T.piece,T.sql_text
from v$session S,v$sqltext T
where T.address=S.sql_address
and S.machine='testmcsu' and S.username='MCSUSR' and S.logon_time > to_date('2015-JUL-27 13:40:00','YYYY-MON-DD HH24:MI:SS')
order by S.logon_time,S.sid,T.piece
/
select S.logon_time,S.sid,S.serial#,T.piece,T.sql_text
from v$session S,v$sqltext T
where T.sql_id=S.prev_sql_id
and S.machine='testmcsu' and S.username='MCSUSR' and S.logon_time > to_date('2015-JUL-27 13:40:00','YYYY-MON-DD HH24:MI:SS')
order by S.logon_time,S.sid,T.piece
/历史执行语句
select S.session_id,S.program,S.machine,S.sample_time,T.last_active_time,T.sql_text
from v$active_session_history S, v$sqlstats T
where T.sql_id = S.sql_id
and upper(T.sql_text) like upper('%INSERT%UNITCONFIG%')
/
---典型格式
select
  'create or replace synonym '|| o.object_name ||' for &v_syn_owner..'||o.object_name||';'
from     all_objects o
where    o.owner =  upper('&v_syn_owner')
and      user    != upper('&v_syn_owner')
and      o.object_type in ('TABLE', 'VIEW', 'SEQUENCE', 'PACKAGE','PROCEDURE','FUNCTION')
and      not exists
  (select null
   from   user_synonyms s
   where  s.table_owner = o.owner
   and    s.table_name  = o.object_name)
order by o.object_name
/
select TO_CHAR(CREATED,'YYYY-MON-DD') time, object_type, COUNT(*) from DBA_OBJECTS
where OWNER='MVO'
group by TO_CHAR(CREATED,'YYYY-MON-DD'), OBJECT_TYPE
order by TO_CHAR(CREATED,'YYYY-MON-DD') desc
/

 

select * from table(dbms_xplan.display_cursor('3gbpb4x7s4r4n',0,'runstats_last'));

select * from dba_tables where table_name='TASK_HANDLING_RESEARCH';

转载于:https://www.cnblogs.com/feiyun8616/p/6281381.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值