Oracle 一些实用的DBA语句

--查询LOB的大小和所在表空间
SELECT A.TABLE_NAME,
       A.COLUMN_NAME,
       B.SEGMENT_NAME,
       B.SEGMENT_TYPE,
       B.TABLESPACE_NAME,
       round((B.BYTES / 1024 / 1024 / 1024),2)
  FROM USER_LOBS A, USER_SEGMENTS B
WHERE A.SEGMENT_NAME = B.SEGMENT_NAME
ORDER BY B.BYTES DESC;

--查询查询一个表空间上所有表的大小
select us.segment_name, us.segment_type,us.tablespace_name,
  us.tablespace_name,
  round((us.BYTES/1024/1024/1024),2)
  from user_segments us
 where us.tablespace_name = ‘‘;

--查询特定一些表的大小,可以更换查询关键字
select segment_name,
       alt.OWNER
       tablespace_name,
       segment_type,
       round((BYTES /1024/1024/1024), 2) as "大小(GB)"
  from user_segments, all_tables alt
 where segment_type = ‘TABLE‘
   and segment_name like ‘%%‘
   and alt.TABLE_NAME = segment_name
   order by tablespace_name, BYTES desc;

--查询当前表空间的使用情况
SELECT a.tablespace_name "表空间名",
       total/1024/1024 表空间大小,
       trunc((free/1024/1024),2) 表空间剩余大小,
       trunc(((total - free)/1024/1024),2) 表空间使用大小,
       ROUND((total - free) / total, 4) * 100 "使用率%"
  FROM (SELECT tablespace_name, SUM(bytes) free
          FROM DBA_FREE_SPACE
         GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) total
          FROM DBA_DATA_FILES
         GROUP BY tablespace_name) b
 WHERE a.tablespace_name = b.tablespace_name;

?/*查询锁表情况*/select sess.sid,     sess.serial#,     lo.oracle_username,     lo.os_user_name,     ao.object_name,     lo.locked_mode     from v$locked_object lo,     dba_objects ao,     v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid

  

?/*1 统计数据表的num_row  2 统计索引列的distinct_keys  3 计算distinct_keys/num_rows的值,  该值越接近1,则列的选择度越高,  索引的效率就越高*/ analyze table schema.tablename compute statistics for all indexes for all columns; --收集最新的信息 select ut.num_rows, ui.distinct_keys, round((ui.distinct_keys/ut.num_rows), 2) from user_indexes ui, user_tables ut where ui.table_name = upper(‘tablename‘) and ui.index_name = upper(‘indexname‘) and ut.table_name = ui.table_name; /*比较笨的办法,纯手工统计,计算*/select count(*) from schema.tablename; --统计出了表的总行数select distinct(ind_row) from schema.tablename; --统计索引所在列的distinct值--之后就是纯手工计算了

?/*查询等待事件*/SELECT event,       sum(decode(wait_time, 0, 1, 0)) "当前等待",       sum(decode(wait_time, 0, 0, 1)) "当前未在等待",       count(*) "Total"  FROM v$session_wait GROUP BY event ORDER BY count(*) desc;  select a.EVENT, count(*)  from v$session_wait a group by a.EVENT, a.WAIT_CLASS# order by count(*) desc;<br><br>

--查询占用UNDO的用户相关情况
SELECT S.USERNAME, U.NAME, S.SID, S.SERIAL#
FROM V$TRANSACTION T, V$ROLLSTAT R, V$ROLLNAME U, V$SESSION S
WHERE S.TADDR = T.ADDR
AND T.XIDUSN = R.USN
AND R.USN = U.USN
ORDER BY S.USERNAME;

  --锁定、解锁账户语句
   alter user username account lock;
   alter user username account unlock;
   --修改用户密码,如果遇到ORA-28001错误也可如此解决
   alter user username identified by password;
   --手工扩大一个数据文件
   alter database datafile ‘/data/data_file1.dbf‘ resize 10G;
?
时间: 2024-10-12 23:23:49

Oracle 一些实用的DBA语句的相关文章

Oracle数据库实用函数

实用函数 DECODE 语法如下: DECODE(value, if1, then1, if2,then2,if3,then3, . . . else )  Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果.当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1:如果value等于if2,Decode函数结果是then2:等等.事实上,可以给出多个if/then 配对.如果value结果不等于给出的任何配对时,Decode 结果就返回els

ORACLE基本定义、操作语句

ORACLE基本定义.操作语句 一.           表 1.创建表 CREATE TABLE TAB_NAME ( COL_01  VARCHAR2(10) NOT NULL, COL_02  NUMBER(8,2), COL_03  DATE ); 2.添加主键约束 ALTER TABLE TAB_NAME ADD CONSTRAINT PK_COL_01 PRIMARY KEY(COL_01); 3.添加唯一性约束 ALTER TABLE TAB_NAME ADD CONSTRAINT

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第4/5套:Oracle SQL语言之查询语句.主要学习Oracle数据库SQL查询限制排序.Oracle SQL联接查询.Oracle SQL子查询等. 视频学习地址: http://edu.51cto.com/course/course_id-8047.html Oracle SQL语

Oracle EBS-SQL (SYS-13):查询DBA在系统中的打补丁信息.SQL

查询DBA在系统中的打补丁信息 1. select * from ad_patch_drivers          /*查看已经打了哪些Patch*/ 2. select * from ad_patch_runs             /*查看打patch的时间,目录等信息*/ 3. select * from ad_patch_driver_langs /*查看patch的语言*/ 4. 查询补丁名称.语言.打Patch的开始时间.打Patch的完成时间: SELECT driver.dr

检查Oracle 中死事务的语句

SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ 2 KTUXESTA Status, KTUXECFL Flags ,KTUXESIZ 3 FROM x$ktuxe 4 WHERE ktuxesta!='INACTIVE'; KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- ---------- ----------------

oracle数据库删除数据Delete语句和Truncate语句的对比

oracle数据库删除数据Delete语句和Truncate语句的对比 当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分别介绍. 一.delete语句 (1)有条件删除    语法格式:delete [from]  table_name  [where condition]; 如:删除users表中的userid为‘001’的数据:delete from users where userid='001'; (2)无条

oracle物理体系相关查询语句

1.查看SGA和PGA 这里看到SGA和PGA大小为0是因为在oracle 11g中,推出了memory_target这个参数,memory_target参数指定的内存会自动分配内存给SGA与PGA: 查看memory_target: sga_max_size=3200M表示当数据库运行是的内存超过sga_target的大小时,操作系统OS能够分配再分配内存给SGA,但大小不能超过3200M: 2.查看共享池与数据缓冲区 共享池与数据缓冲区大小为0是因为oracle设置为SGA自动管理,共享池与

查询Oracle正在执行的sql语句

--查询Oracle正在执行的sql语句及执行该语句的用户 [sql] view plain copy SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value

[转载] ORACLE 多表关联 UPDATE 语句

为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码 1 --客户资料表 2 create table customers 3 ( 4 customer_id number(8) not null, -- 客户标示 5 city_name varchar2(10) not null, -- 所在城市 6 customer_type char(2) not null, -- 客户类型 7 ... 8 ) 9 create unique index P