DBA常用sql(一)
--监控索引是否使用 alter index &index_name monitoring usage; alter index &index_name nomonitoring usage; select * from v$object_usage where index_name = &index_name;
--求数据文件的I/O分布 select df.name,phyrds,phywrts,phyblkrd,phyblkwrt,singleblkrds,readtim,writetim from v$filestat fs,v$dbfile df where fs.file#=df.file# order by df.name;
--求某个隐藏参数的值 col ksppinm format a54 col ksppstvl format a54 select ksppinm, ksppstvl from x$ksppi pi, x$ksppcv cv where cv.indx=pi.indx and pi.ksppinm like '_%' escape '' and pi.ksppinm like '%meer%';
--求系统中较大的latch select name,sum(gets),sum(misses),sum(sleeps),sum(wait_time) from v$latch_children group by name having sum(gets) > 50 order by 2;
--求归档日志的切换频率(生产系统可能时间会很长) select start_recid,start_time,end_recid,end_time,minutes from (select test.*, rownum as rn from (select b.recid start_recid,to_char(b.first_time,'yyyy-mm-dd hh24:mi:ss') start_time, a.recid end_recid,to_char(a.first_time,'yyyy-mm-dd hh24:mi:ss') end_time,round(((a.first_time-b.first_time)*24)*60,2) minutes from v$log_history a,v$log_history b where a.recid=b.recid+1 and b.first_time > sysdate - 1 order by a.first_time desc) test) y where y.rn < 30
--求回滚段正在处理的事务 select a.name,b.xacts,c.sid,c.serial#,d.sql_text from v$rollname a,v$rollstat b,v$session c,v$sqltext d,v$transaction e where a.usn=b.usn and b.usn=e.xidusn and c.taddr=e.addr and c.sql_address=d.address and c.sql_hash_value=d.hash_value order by a.name,c.sid,d.piece;
--求出无效的对象 select 'alter procedure '||object_name||' compile;' from dba_objects where status='INVALID' and wner='&' and object_type in ('PACKAGE','PACKAGE BODY'); / select owner,object_name,object_type,status from dba_objects where status='INVALID';
--求process/session的状态 select p.pid,p.spid,s.program,s.sid,s.serial# from v$process p,v$session s where s.paddr=p.addr;
--求当前session的状态 select sn.name,ms.value from v$mystat ms,v$statname sn where ms.s
相关文档:
现在发现SQL语句确实是太强大了,以后遇到问题要尽量先好好思考下,不要按照最笨的方法来做!
1.从tblFaultDetailTemp表中,找到ID=14的项,并将所列出的四个字段的值拷贝到tblFaultDetail表中
Insert into tblFaultDetail(Code,FileType,FaultCode,FaultRect) select Code,FileType,FaultCode,FaultRect from tblF ......
润乾报表可以通过SQL检索和复杂SQL生成数据集。当SQL中需要传入多个参数时,要在设计器中通过 配置-参数 定义相应的参数,然后再把SQL中需要参数的地方替换成?,最后还要在SQL编辑器中添加对应?的参数。这样当SQL中有多少个问号,我们就需要添加多少个参数。当SQL中用到的参数比较少时,操作起来还比较方便。但当业务比较复 ......
方法一:
select distinct name from tablename
方法二:
select min(fid),name,sex from tablename group by name
总计:
select distinct name from tablename 打开重复记录的单个字段
select * from tablename where fid in(Select min(fid) from tablename group by name)打开重复记录的所有字段值
select ......
---------数学函数
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截取)
S:select cast(-1.002 as int) v ......
有时候,在工作中会遇到将一个数据库中表的数据导到另一个数据库的表中,但是工具又没有提供这样的功能
下面能通过SQL语句生成Insert语句,再插入到另一个数据库中。
MSSQL:
SELECT 'INSERT INTO StatInfo(UserName,CardId,Address,WageCount,Pension)'+
' VALUES('''+a.UserName+''','''+a.CardId+''','''+a.Ad ......