Oracle数据库中如何正确的查看sql

本文介绍了Oracle数据库中的实用SQL查询语句,包括查看SQL、表的状态、数据库字符集等,还提供了表空间管理、用户管理及表字段修改的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下的文章主要讲述的是Oracle数据库中如何正确的查看sql,以及查询表的相关状态,下面就是文章的抓哟内容的介绍,如果你对其相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了。


  1. selectuo.OBJECT_NAME,uo.OBJECT_ID,lo.Oracle_USERNAME,lo.LOCKED_MODEfrom
  2. user_objectsuo,v$locked_objectlowhereuo.OBJECT_ID=lo.OBJECT_ID;

查看数据库字符集


  1. select*fromnls_database_parameters;

查看表创建,修改时间


  1. select*fromALL_OBJECTSwhereobject_name=upper('tname');

每个表所占空间


  1. selectSegment_Name,round(Sum(bytes)/1024/1024,0)"MBytes"
  2. FromUser_ExtentsGroupBySegment_Nameorderby"MBytes"desc;

查询正在执行的存储过程


  1. select*fromdba_ddl_lockswhereowner='USERNAME';

查看表空间的使用情况


  1. selecta.tablespace_name,round(a.bytes/(1024*1024),2) "TotalMB",round(b.bytes/(1024*1024),2)"UsedMB",
  2. round(c.bytes/(1024*1024),2)"FreeMB", round((b.bytes*100)/a.bytes,2)||'%'"%Used",
  3. round((c.bytes*100)/a.bytes,2)||'%'"%Free"
  4. fromsys.sm$ts_availa,sys.sm$ts_usedb,sys.sm$ts_freec
  5. wherea.tablespace_name=b.tablespace_nameanda.tablespace_name=c.tablespace_name;

加\解锁:


  1. locktabledeptinsharemode;

仍然解不了,用以下方法:


  1. SELECTsid,serial#,username,osuserFROMv$session;
  2. ALTERSYSTEMKILLSESSION'sid,serial';
  3. example:
  4. ALTERSYSTEMKILLSESSION'131,33574';

如果对象被锁住了,用Oracle的ALTER SYSTEM KILL SESSION 'SID,SERIAL#'不一定会将SESSION KILL掉,会报


  1. SQL>altersystemkillsession'200,18325'
  2. *
  3. ERRORatline1:
  4. ORA-00031:sessionmarkedforkill

这样的错误,所以可以在操作系统级上KILL掉进程


  1. select'kill-9'||a.spid"xxx"fromv$processa,v$sessionb wherea.addr=b.paddrandb.status='KILLED';

查找出被标志为KILLED的SESSION的操作系统进程号。

增加表空间,文件


  1. ALTERTABLESPACEbgtablespace01
  2. ADDDATAFILE'/opt/Oracle/oradata/orcl/ bgtablespace01/bgtablespace0190.dbf'SIZE5120M;

更改用户表空间


  1. alteruserusermodifydefaulttablespacebgtablespace01;

Oracle中针对大表增加有默认值的字段的操作方法


  1. ALTERTABLEtab_largeaddcol_newNumber(9)Default1;

该语句会对所有记录进行填值操作,对于现场tab_large中存在3000W条左右数据,该步骤需要执行数小时。

可以将该语句改为:


  1. ALTERTABLEtab_largeaddcol_newNumber(9);
  2. ALTERTABLEtab_largemodifycol_newnumber(9)default1;

该语句只会对新增的记录进行填值操作,只需要数秒。

如果需要对原来的值进行操作,可以在升级后进行update操作,这样能够节省大量的升级时间。

增加数据库用户


  1. createusersjzqidentifiedbysjzq123default tablespaceBGTABLESPACE01TemporaryTABLESPACETemp;
  2. grantconnecttosjzq;
  3. grantselectonabc.tnametosjzq;

以上的相关内容就是对Oracle数据库查看sql的介绍,望你能有所收获。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值