常用的sql(oracle)

一、查看表空间

select a.tablespace_name,
round(a.bytes/(1024*1024*1024),2)  total,
round(b.bytes/(1024*1024*1024),2)||'G' used,
round(c.bytes/(1024*1024*1024),2)||'G' free,
round((b.bytes*100)/a.bytes,2)||'%' "%USED",
round((c.bytes*100)/a.bytes,2)||'%' "%free" 
from sys.sm$ts_avail a,sys.sm$ts_used b,sys.sm$ts_free c
where a.tablespace_name=b.tablespace_name and a.tablespace_name=c.tablespace_name

二、查看表空间占用率

SELECT dts.tablespace_name 表空间, NVL(ddf.bytes / 1024 / 1024, 0) 共计,
       NVL(ddf.bytes - NVL(dfs.bytes, 0), 0)/1024/1024 已用,
       NVL(dfs.bytes / 1024 / 1024, 0) 空闲,
       TO_CHAR(NVL((ddf.bytes - NVL(dfs.bytes, 0)) / ddf.bytes * 100, 0), '990.00') 使用率
FROM 
dba_tablespaces dts, 
(select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) ddf, 
(select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) dfs 
WHERE   dts.tablespace_name = ddf.tablespace_name(+) 
AND     dts.tablespace_name = dfs.tablespace_name(+) 
AND     NOT (dts.extent_management like 'LOCAL' AND dts.contents like 'TEMPORARY')
order by 5;

三、结束锁死的进程

--1.查询哪些对象被锁:
select o.OWNER||'.'||object_name,machine,s.SID,s.SERIAL#,'alter system kill session '''||s.SID||','||s.SERIAL#||''' immediate;' kk, s.CLIENT_INFO ip ,s.LOGON_TIME
from v$locked_object l, dba_objects o, v$session s
where l.OBJECT_ID=o.OBJECT_ID and l.SESSION_ID=s.SID;
--2.杀死进程:
alter system kill session '1012,16413' immediate;
--3.查询已经杀死的进程
select a.SPID,b.SID,b.SERIAL#,b.USERNAME from v$process a,v$session b where  a.ADDR=b.PADDR and b.STATUS='KILLED'

如果查看进程状态为killed但是资源没有被释放。spid为数据库服务器的进程号,在服务器上kill掉

四、查看哪些存储过程被锁

--1.查V$db_Object_Cache
select * from V$db_Object_Cache t where t.NAME='PK_TELLHOW_POWERCUT' AND T.LOCKS!='0' 
--2.查SID值
SELECT /*+rule*/ SID, a.OBJECT,a.OWNER,'alter system kill session '''||SID||','||(select b.SERIAL# from V$SESSION b where b.SID=a.sid)||''' immediate;' from V$ACCESS a where a.OBJECT='PK_TELLHOW_POWERCUT';
--3.查b.SID,b.SERIAL#
select b.SID,b.SERIAL# from V$SESSION b where b.SID='339';
--4.杀进程
alter system kill session '1479,23715' immediate;

五、查询kettle

select tr.name,
       tr.created_date,
       to_char(tr.description),
       to_char(tr.extended_description),
       to_char(a.value_str),
       a.code
  from KETTLE.R_TRANSFORMATION tr, KETTLE.R_STEP_ATTRIBUTE a
 where tr.id_transformation = a.id_transformation
      --and a.code='sql'
   and lower(a.value_str) like '%pbdb.th_dev_byqxx%'
 order by tr.created_date desc;

六、查询kettle的job

select * from kettle.r_job j,kettle.r_jobentry je,kettle.r_jobentry_attribute ja 
where j.id_job=je.id_job and j.id_job=ja.id_job and je.id_jobentry=ja.id_jobentry
and lower(ja.value_str) like '%ythxs_loss_sub%'

七、查询数据库job

select * from dba_jobs t where t.WHAT like '%pk_pbjc%'

八、添加表分区

alter table pbdb.th_ex_data_gbfz_detail  add partition P202112 values less than (TO_DATE('2022-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

九、数据库用户锁定解锁

ALTER USER PMCS_JOB ACCOUNT UNLOCK
grant create session to PMCS_JOB

十、查询数据库所有用户创建的sql

select t.username, to_char(dbms_metadata.get_ddl('USER',t.username)) from dba_users t;

十一、查询数据库所有表空间创建的sql

select t.TABLESPACE_NAME, to_char(dbms_metadata.get_ddl('TABLESPACE',t.TABLESPACE_NAME)) from dba_tablespaces t 

十二、查看索引是否生效

select   owner,table_name,index_name,status
   from     dba_indexes
    where    owner = 'PBDB'
   and      table_name = 'TH_EX_DATA_GBGDY_DETAIL';
  • N/A :说明这个是分区索引需要查user_ind_partitions或者user_ind_subpartitions来确定每个分区是否可用;
  • VAILD :说明这个索引可用;
  • UNUSABLE:说明这个索引不可用;
  • USABLE :说明这个索引的分区是可用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值