Oracle 表空间管理和优化 1. TOM大神的表查询和授权语句create or replace procedure SHOW_SPACE(P_SEGNAME IN VARCHAR2,

Oracle 表空间管理和优化

1. TOM大神的表查询和授权语句

create or replace procedure SHOW_SPACE(P_SEGNAME IN VARCHAR2,

P_OWNER IN VARCHAR2 DEFAULT USER,

P_TYPE IN VARCHAR2 DEFAULT 'TABLE',

P_PARTITION IN VARCHAR2 DEFAULT NULL)

-- THIS PROCEDURE USES AUTHID CURRENT USER SO IT CAN QUERY DBA_*

-- VIEWS USING PRIVILEGES FROM A ROLE AND SO IT CAN BE INSTALLED

-- ONCE PER DATABASE, INSTEAD OF ONCE PER USER WHO WANTED TO USE IT.

AUTHID CURRENT_USER AS

L_FREE_BLKS NUMBER;

L_TOTAL_BLOCKS NUMBER;

L_TOTAL_BYTES NUMBER;

L_UNUSED_BLOCKS NUMBER;

L_UNUSED_BYTES NUMBER;

L_LASTUSEDEXTFILEID NUMBER;

L_LASTUSEDEXTBLOCKID NUMBER;

L_LAST_USED_BLOCK NUMBER;

L_SEGMENT_SPACE_MGMT VARCHAR2(255);

L_UNFORMATTED_BLOCKS NUMBER;

L_UNFORMATTED_BYTES NUMBER;

L_FS1_BLOCKS NUMBER;

L_FS1_BYTES NUMBER;

L_FS2_BLOCKS NUMBER;

L_FS2_BYTES NUMBER;

L_FS3_BLOCKS NUMBER;

L_FS3_BYTES NUMBER;

L_FS4_BLOCKS NUMBER;

L_FS4_BYTES NUMBER;

L_FULL_BLOCKS NUMBER;

L_FULL_BYTES NUMBER;

-- INLINE PROCEDURE TO PRINT OUT NUMBERS NICELY FORMATTED

-- WITH A SIMPLE LABEL.

PROCEDURE P(P_LABEL IN VARCHAR2, P_NUM IN NUMBER) IS

BEGIN

DBMS_OUTPUT.PUT_LINE(RPAD(P_LABEL, 40, '.') ||

TO_CHAR(P_NUM, '999,999,999,999'));

END;

BEGIN

-- THIS QUERY IS EXECUTED DYNAMICALLY IN ORDER TO ALLOW THIS PROCEDURE

-- TO BE CREATED BY A USER WHO HAS ACCESS TO DBA_SEGMENTS/TABLESPACES

-- VIA A ROLE AS IS CUSTOMARY.

-- NOTE: AT RUNTIME, THE INVOKER MUST HAVE ACCESS TO THESE TWO

-- VIEWS!

-- THIS QUERY DETERMINES IF THE OBJECT IS AN ASSM OBJECT OR NOT.

BEGIN

EXECUTE IMMEDIATE 'SELECT TS.SEGMENT_SPACE_MANAGEMENT

FROM DBA_SEGMENTS SEG, DBA_TABLESPACES TS

WHERE SEG.SEGMENT_NAME = :P_SEGNAME

AND (:P_PARTITION IS NULL OR

SEG.PARTITION_NAME = :P_PARTITION)

AND SEG.OWNER = :P_OWNER

AND SEG.TABLESPACE_NAME = TS.TABLESPACE_NAME'

INTO L_SEGMENT_SPACE_MGMT

USING P_SEGNAME, P_PARTITION, P_PARTITION, P_OWNER;

EXCEPTION

WHEN TOO_MANY_ROWS THEN

DBMS_OUTPUT.PUT_LINE('THIS MUST BE A PARTITIONED TABLE, USE P_PARTITION => ');

RETURN;

END;

-- IF THE OBJECT IS IN AN ASSM TABLESPACE, WE MUST USE THIS API

-- CALL TO GET SPACE INFORMATION; ELSE WE USE THE FREE_BLOCKS

-- API FOR THE USER MANAGED SEGMENTS.

IF L_SEGMENT_SPACE_MGMT = 'AUTO' THEN

DBMS_SPACE.SPACE_USAGE(P_OWNER,

P_SEGNAME,

P_TYPE,

L_UNFORMATTED_BLOCKS,

L_UNFORMATTED_BYTES,

L_FS1_BLOCKS,

L_FS1_BYTES,

L_FS2_BLOCKS,

L_FS2_BYTES,

L_FS3_BLOCKS,

L_FS3_BYTES,

L_FS4_BLOCKS,

L_FS4_BYTES,

L_FULL_BLOCKS,

L_FULL_BYTES,

P_PARTITION);

P('UNFORMATTED BLOCKS ', L_UNFORMATTED_BLOCKS);

P('FS1 BLOCKS (0-25) ', L_FS1_BLOCKS);

P('FS2 BLOCKS (25-50) ', L_FS2_BLOCKS);

P('FS3 BLOCKS (50-75) ', L_FS3_BLOCKS);

P('FS4 BLOCKS (75-100)', L_FS4_BLOCKS);

P('FULL BLOCKS ', L_FULL_BLOCKS);

ELSE

DBMS_SPACE.FREE_BLOCKS(SEGMENT_OWNER => P_OWNER,

SEGMENT_NAME => P_SEGNAME,

SEGMENT_TYPE => P_TYPE,

FREELIST_GROUP_ID => 0,

FREE_BLKS => L_FREE_BLKS);

P('FREE BLOCKS', L_FREE_BLKS);

END IF;

-- AND THEN THE UNUSED SPACE API CALL TO GET THE REST OF THE

-- INFORMATION.

DBMS_SPACE.UNUSED_SPACE(SEGMENT_OWNER => P_OWNER,

SEGMENT_NAME => P_SEGNAME,

SEGMENT_TYPE => P_TYPE,

PARTITION_NAME => P_PARTITION,

TOTAL_BLOCKS => L_TOTAL_BLOCKS,

TOTAL_BYTES => L_TOTAL_BYTES,

UNUSED_BLOCKS => L_UNUSED_BLOCKS,

UNUSED_BYTES => L_UNUSED_BYTES,

LAST_USED_EXTENT_FILE_ID => L_LASTUSEDEXTFILEID,

LAST_USED_EXTENT_BLOCK_ID => L_LASTUSEDEXTBLOCKID,

LAST_USED_BLOCK => L_LAST_USED_BLOCK);

P('TOTAL BLOCKS', L_TOTAL_BLOCKS);

P('TOTAL BYTES', L_TOTAL_BYTES);

P('TOTAL MBYTES', TRUNC(L_TOTAL_BYTES / 1024 / 1024));

P('UNUSED BLOCKS', L_UNUSED_BLOCKS);

P('UNUSED BYTES', L_UNUSED_BYTES);

P('LAST USED EXT FILEID', L_LASTUSEDEXTFILEID);

P('LAST USED EXT BLOCKID', L_LASTUSEDEXTBLOCKID);

P('LAST USED BLOCK', L_LAST_USED_BLOCK);

END;

让普通用户能执行SYS.SHOW_SPACE

SYS@zcs11G> drop user zcs1 CASCADE;

create user zcs identified by zcs;

grant connect,resource,dba to zcs;

grant execute on SYS.SHOW_SPACE TO zcs;

connect zcs/zcs

drop table t1 purge;

create table t1 (id int,name varchar2(19)) segment creation IMMEDIATE tablespace users;

set serverout on;

exec sys.show_space('T1'); 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

oracle表空间管理图形界面,Oracle表空间管理和优化相关推荐

  1. linux设置逻辑卷进不了图形界面,LVM逻辑卷管理器图形界面操作

    LVM逻辑卷管理器图形界面操作 LVM有关概念 LVM(Logical Volume Manager)即逻辑卷管理器,它最先是在Linux 2.4内核中被集成到内核中去的,它的出现改变了传统的磁盘空间 ...

  2. C#编程基础——综合项目实践:KTV点歌系统项目第四课:制作后台管理主界面窗体和歌手管理窗体

    1.制作后台管理主界面窗体(每完成一个窗体,记得进行功能测试) 制作效果: 第一步:打开上次未完成的KTV_MS项目,打开方法:菜单栏[文件]--[打开]--[项目/解决方案],在自己的电脑上找到上次 ...

  3. oracle 无法弹出图形界面,Xshell 5 不能弹出GUI 图形界面问题

    https://www.cndba.cn/dave/article/1074 https://www.cndba.cn/dave/article/1074 刚从Xshell 4 换成了Xshell5, ...

  4. 图形界面 I: 图形界面的动画 (第三章)

    目录 简介 管理图形界面 移动表单的功能 测试表单在图表上的移动 当界面控件上有鼠标掠过时改变外观 结论 简介 本文是关于图形界面系列文章第一部分的续篇. 第一篇文章图形界面 I: 库结构的准备工作 ...

  5. ORACLE安装启图形界面与oracle安装介质解压后缺jar包

    8月25日-8月27日,三天就安装一套oracle 10.2.0.5 for AIX 6100 HA双机,安装过程中真是问题很多.     首先,是启动OUI图形界面,安装是在机房直连网卡进行的,使用 ...

  6. linux下oracle数据库升级,Linux下升级Oracle 10

    环境:虚拟机 OS: Linux 5 Oracle 升级前版本: 10.2.0.0.1 先关闭数据库和监听 然后杀掉所有的oracle进程 ps -ef |grep oracle |grep -v g ...

  7. oracle怎么判断是裸设备安装,Oracle 9i下以裸设备方式安装数据库

    一直都在Oracle 10G下以裸设备方式手工建库,今天尝试在oracle 9i下同样以裸设备方式手工建库,遇到点麻烦,不过好一番折腾之后,终于还是解决了,详尽记录如下. 一直都在oracle10G下 ...

  8. PyQt5图形界面GUI开发过程记录

    PyQt5图形界面GUI开发过程记录 一.PyQT的简介与安装 1.1 常用的图形界面GUI 1.2 PyQT5的安装 二.PyQt的基本使用 2.1 QApplication 2.2 界面控件 2. ...

  9. python图形用户界面pyside_Python图形界面开发——PySide2库

    Python知识点总结(1) Python知识点总结(2) Python开发案例(学生信息管理系统) Python图形界面开发--PySide2库 目录 1. 简介与安装 2. 基本结构 导入需要的库 ...

最新文章

  1. 【微信小程序】跳转到另一个微信小程序
  2. copyonwritearraylist原理_Java集合干货——CopyOnWriteArrayList源码分析
  3. 【Mysql】Mysql数据表区分大小写问题解决方案
  4. webpack打包---报错内存溢出javaScript heap out of memory
  5. 常用类回顾之(String类)
  6. 暴笑小笑话集----转自通信公社
  7. 12、play整合Akka
  8. linux无法关机 grub2,Ubuntu关机卡住无法关机如何解决?
  9. 转载:vb导出excel的方法
  10. impdp oracle 只导入表结构_oracle数据库怎么导入dmp,只导入数据不导入表结构?...
  11. Linux 下安装配置 JDK7
  12. LeetCode 22. Generate Parentheses
  13. spss统计分析基础教程(上)--自学
  14. web地图热力图理解
  15. 打开计算机系统无法访问指定的,win10系统运行软件时提示“无法访问指定设备路径或文件的修复步骤...
  16. Crackme#1算法注册机
  17. linux无法安装at命令,在Ubuntu/Debian/CentOS/Fedora下安装At及各种At命令的用法
  18. 蓝牙射频的杂散,谐波与FCC测试解密
  19. 在python中下列代码的运行结果是print abc_下列代码运行结果是?
  20. STM32蓝牙控制循迹避障小车源代码——4.蓝牙控制

热门文章

  1. shell脚本 猜数字游戏并计数比较次数
  2. 前端date format_前端面试-手撕代码篇
  3. 玩转 SpringBoot 2 之发送邮件篇
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的企业计划管理系统
  5. 变成一列_VBA实践(6)--excel横向排列的数据表变成竖向排列
  6. 基于Asp.net MVC的系统架构
  7. java 时间处理经典案例
  8. Java中Timer的用法
  9. 《浪潮之巅》完全系类——IT人士必读经典
  10. [GoogleAppEngine]GAE平台需设置默认threadsafe-编译问题