Oracle 常用脚本整理

一、统计表所占空间大小(表容量)

/*一般情况下,表所占空间分为三部分:表数据、表索引、表blob字段数据*/
--1 统计含(blob字段)的单表所占用的空间

SELECT TABLE_NAME, SUM(SIZE_MB)
  FROM (SELECT A.SEGMENT_NAME AS TABLE_NAME,
               SUM(BYTES) / 1024 / 1024 SIZE_MB
          FROM USER_SEGMENTS A
         GROUP BY A.SEGMENT_NAME  --文本信息容量
        UNION ALL
        SELECT A.TABLE_NAME, SUM(B.BYTES) / 1024 / 1024 SIZE_MB
          FROM USER_LOBS A, USER_SEGMENTS B
         WHERE A.SEGMENT_NAME = B.SEGMENT_NAME
         GROUP BY A.TABLE_NAME)   --lob字段容量
 WHERE TABLE_NAME = ‘&table_name‘
 GROUP BY TABLE_NAME
 ORDER BY 2 DESC;

--2 统计含(blob字段)的表所占用的空间

SELECT TABLE_NAME, SUM(SIZE_MB)
  FROM (SELECT A.SEGMENT_NAME AS TABLE_NAME,
               SUM(BYTES) / 1024 / 1024 SIZE_MB
          FROM USER_SEGMENTS A
         GROUP BY A.SEGMENT_NAME  --文本信息容量
        UNION ALL
        SELECT A.TABLE_NAME, SUM(B.BYTES) / 1024 / 1024 SIZE_MB
          FROM USER_LOBS A, USER_SEGMENTS B
         WHERE A.SEGMENT_NAME = B.SEGMENT_NAME
         GROUP BY A.TABLE_NAME)   --lob字段容量
 GROUP BY TABLE_NAME
 ORDER BY 2 DESC;
 
--3 统计不含lob字段的表所占空间

SELECT A.SEGMENT_NAME AS TABLE_NAME,
       SUM(BYTES) / 1024 / 1024 SIZE_MB
FROM USER_SEGMENTS A
WHERE A.segment_type = ‘TABLE‘
GROUP BY A.SEGMENT_NAME ;

二、统计数据文件使用率
select b.file_name 物理文件名,
          b.tablespace_name 表空间,
          b.AUTOEXTENSIBLE,
          b.MAXBYTES,
          b.bytes / 1024 / 1024 大小M,
          (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,
       substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率      
  from dba_free_space a, dba_data_files b
 where a.file_id = b.file_id
 --and b.tablespace_name in(‘TBS_CRJ_SQ‘,‘TBS_CRJ_RZ_INDEX‘)
 group by b.tablespace_name, b.AUTOEXTENSIBLE,b.MAXBYTES, b.file_name, b.bytes
 order by b.tablespace_name

三、查看表空间是否已满
select
  a.tablespace_name,trunc(sum(a.bytes)/1024/1024) total,
  trunc(sum(a.bytes)/1024/1024 - sum(b.bytes)/1024/1024) used,
  trunc(sum(b.bytes)/1024/1024) free,
  to_char(trunc((sum(a.bytes)/1024/1024 - sum(b.bytes)/1024/1024)/(sum(a.bytes)/1024/1024),4)*100)||‘%‘ pused,
  to_char(trunc((sum(b.bytes)/1024/1024)/(sum(a.bytes)/1024/1024),4)*100)||‘%‘ pfree
from
  (select sum(bytes) bytes,tablespace_name from dba_data_files group by tablespace_name) a,
  (select sum(bytes) bytes,tablespace_name from dba_free_space group by tablespace_name) b
where a.tablespace_name=b.tablespace_name(+)
group by a.tablespace_name
order by to_number(rtrim(pused,‘%‘)) desc;

四、杀进程

select a.MACHINE,a.PROGRAM,a.SID,a.SERIAL#,a.STATUS,b.SQL_TEXT,
‘alter system kill session‘||‘‘‘‘||a.SID||‘,‘||a.SERIAL#||‘‘‘immediate ;‘kill_sql
from v$session a , v$sql b
where a.USERNAME is not null
and a.SQL_ID=b.SQL_ID;

五、SCN查询
select version,
       to_char(SYSDATE, ‘YYYY/MM/DD HH24:MI:SS‘) DATE_TIME,
       ((((((to_number(to_char(sysdate,‘YYYY‘))-1988)*12*31*24*60*60)+
       ((to_number(to_char(sysdate, ‘MM‘)) - 1) * 31 * 24 * 60 * 60) +
       (((to_number(to_char(sysdate, ‘DD‘)) - 1)) * 24 * 60 * 60) +
       (to_number(to_char(sysdate, ‘HH24‘)) * 60 * 60) +
       (to_number(to_char(sysdate, ‘MI‘)) * 60) +
       (to_number(to_char(sysdate, ‘SS‘)))) * (16 * 1024)) -
       dbms_flashback.get_system_change_number) /
       (16 * 1024 * 60 * 60 * 24)) headroom
  from v$instance;

--SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ FROM x$ksppi x, x$ksppcv y WHERE x.indx = y.indx AND x.ksppinm LIKE ‘%_external_scn_rejection_threshold_hours%‘;
--alter system set  "_external_scn_rejection_threshold_hours"=8;

六、数据库用户

--1、用户挂起(锁定用户)
alter user crjapp  account lock;

--2、用户解锁
alter user crjapp  account unlock;

--3、删除用户
drop user user_name cascade ;

时间: 2024-10-29 19:10:05

Oracle 常用脚本整理的相关文章

Oracle 常用语句整理

Oracle 常用语句整理 最近做了份大型数据库作业.遇到了一些问题,在网上找的很是辛苦,于是,将一些常用的语句记录下来,方便大家学习.都是一些基本的东西.如果忘了,可以来看看. 1.创建临时表空间 create temporary tablespace car_data //car_data,表空间名 tempfile 'C:\Users\Administrator\Desktop\car_data.dbf'//表空间路径 size 50m autoextend on next 50m max

Oracle常用语法整理

因本人是刚进入开发不久的新人,所以平时整理了一些常用的oracle语法,现分享如下:

Oracle常用函数整理

wm_concat(lie[,',','|'])列转行 rount(lie,2)保留小数点

ORACLE常用脚本示例

create table DBO.INDEX_POLICY_TBL( ID NUMBER(10) NOT NULL PRIMARY KEY, POLICY_ID NUMBER(10,0) default (-1) NOT NULL, ALARM_COUNT NUMBER(10) default (0) NOT NULL); ALTER TABLE DBO.INDEX_POLICY_TBL ADD(C_NAME_1 VARCHAR2(64 CHAR) NOT NULL, C_NAME_2 VARC

SQLSERVER常用脚本整理

数据库存储空间查询(数据库的大小及数据库中各个表的数据量和每行记录大小) IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = Object_id(N'[dbo].[tablespaceinfo]') AND Objectproperty(id, N'IsUserTable') = 1) CREATE TABLE tablespaceinfo --创建结果存储表 ( nameinfo VARCHAR(50), rowsinfo INT, r

【原创】MySQL常用脚本整理

#1.查看表容量空间 SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_ROWS,ROUND(DATA_LENGTH/1024/1024/1024) AS 'data_size(G)',ROUND(INDEX_LENGTH/1024/1024/1024) AS 'index_size(G)',ROUND(DATA_FREE/1024/1024/1024) AS 'free_size(G)' FROM information_schema.tables WHERE TABL

Oracle常用脚本

1.查看每周生成的归档量 select logtime, count(*), round(sum(blocks * block_size) / 1024 / 1024) mbsize from (select trunc(first_time, 'dd') as logtime, a.BLOCKS, a.BLOCK_SIZE from v$archived_log a where a.DEST_ID = 1 and a.FIRST_TIME > trunc(sysdate - 7)) group

oracle 常用安装脚本以及步骤

oracle 常用脚本以及语句 一.oracle 安装10G 单机初始化环境: #!/bin/bash #关闭selinuxsed -i 's\SELINUX=enforcing\SELINUX=disabled\' /etc/selinux/configsetenforce 0 #关闭防火墙service iptables stopchkconfig iptables off #配置/etc/hosts文件 添加cat >> /etc/hosts<<EOF 172.16.0.19

MYSQL数据库常用知识整理

Evernote Export MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQL备份与恢复 MYSQL的基本操作:增删查改 MYSQL的基本故障判断与处理 MYSQL的调优 MYSQL主主.主从复制的实现 MYSQL大数据备份和恢复 数据文件的损坏与修复 什么是MYSQL MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被广泛地应用在Internet上的中