关于oracle的笔记

1、查看一个表暂用的表空间大小: SELECT bytes/1024/1024||‘MB‘,a.*FROM user_segments a WHERE a.segment_name =‘TL_SP_NONREAL_LIST_201505‘; //103查询错单表空间 SELECT segment_name,sum(bytes)/1024/1024 FROM User_Segments a WHERE a.tablespace_name=‘ZHJS_LIST_ERROR‘ AND a.segment_type=‘TABLE PARTITION‘ AND a.BYTES<>‘8388608‘ AND a.segment_name NOT LIKE ‘%200906‘ GROUP BY a.segment_name

2、查看一个表空间所占的实际大小: SELECT sum(bytes)/1024/1024||‘MB‘ FROM user_segments a WHERE a.tablespace_name =‘SETT_ANALYSE_LIST_201505‘;

3、查看一个表空间对应的数据文件: SELECT * FROM dba_data_files a WHERE a.tablespace_name =‘SETT_ANALYSE_LIST_201505‘;

4、查询表空间的总大小以及使用大小 select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB", round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used" from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b where a.tablespace_name=b.tablespace_name order by ((a.bytes-b.bytes)/a.bytes) desc;

5、创建一个大数据量的表,占用表空间大小几个G,delete这张表的数据,此时只需查询发现很慢,查询的表数据为空, 其实就是其表空间没有释放的缘故。 执行alter table jk_test move 或 alter table jk_test move storage(initial 64k) 或alter table jk_test deallocate unused KEEP 0或 alter table jk_test shrink space. 这样操作后,会失去索引,这是可以将失效的索引重建 select index_name,table_name,tablespace_name,index_type,status  from dba_indexes  where table_owner=‘SETT_ANALYSE‘ ; 根据status的值,重建无效的就好了alter owner.index_name rebuild; ,再次查询就很小了 注意:drop...purge 和 truncate表时,其所占用的空间会得到释放,原因应该是不进入回收站,(单独drop会进入回收站的) 进回收站的数据可以通过flashback找回:具体方法如下: select original_name,dropscn from recyclebin where lower(original_name)=‘js_stat_sp_report_sec_1009‘; flashback table jianbiao_beifen to before drop;

6、不管是delete还是truncate相应的数据文件大小都不会改变,如果想改变数据文件占用的空间大小可执行: alter database datafile ‘filename‘ resize 8g,重定义文件大小 关于purge的补充: purge tablespace tablespace_name--清空表空间的recycle bin purge tablespace tablespace_name user username--指定表空间的recycle bin的指定对象 drop table table_name purge--永久删除,不能用flashback恢复

7、移动表空间 分区表:altrer table TL_Y_TOLL_XJJS_LIST_201603 move partition D_21 tablespace zhjs_dsyy; 非分区表:alter table TL_Y_TOLL_XJJS_LIST_201603 move tablespace zhjs_dsyy ;

8、查询哪张表被建索引:SELECT * FROM user_indexes; 判断哪张表的那个字段建了索引:select * from user_ind_columns;

9、如果是在已有的表空间中添加数据文件,则使用: alter tablespace 表空间名 add datafile ‘数据文件名称路径‘ size 50M; 如果是新建一个表空间则是: create tablespace 表空间名 datafile ‘数据文件名称路径‘ size 50M;

出库: P_EXPDB_COLLECT_LIST

move_list_data_to_szx

gdb跟踪命令: gdb 进程名 进程号 b *.cpp:行数 :打断点在哪一行 p 变量 :打印出变量的值 n :下一步 s :进方法 exit 退出

ppstdcdr--标准格式 wjjsct_ngn.h继承cdrbase.sh  #include "cdrbase.h"

truncate table 后,有可能表空间仍没有释放,可以使用如下语句: alter table 表名称 deallocate   UNUSED KEEP 0; 注意如果不加KEEP 0的话,表空间是不会释放的。  例如: alter table F_MINUTE_TD_NET_FHO_B7 deallocate   UNUSED KEEP 0; 或者: TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。  例如: truncate table  test1 DROP STORAGE; 三、查询分区表存在哪些分区:  查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如: select ‘alter table ‘||t.table_name ||‘ truncate   partition ‘ || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like ‘F_%‘ 查询各个分区暂用表空间

SELECT  TABLESPACE_NAME,partition_name,TO_CHAR(SUM(BYTES)/(1024*1024),‘999G999D999‘)   FROM   DBA_EXTENTS   WHERE    SEGMENT_NAME=‘TL_ERR_D_SMS‘   AND   SEGMENT_TYPE   LIKE   ‘TABLE%‘   GROUP   BY   TABLESPACE_NAME,partition_name;

清除指定某个分区表的分区数据: alter   table  表名称   truncate   partition   分区名称; 四、清除分区表占用的空间: alter table 表名称  DROP    partition 分区名称; 例如: alter table F_HOUR_TD_NET_MPVOICE  DROP    partition P_09121913         ;

--查看单个表占用物理空间的大小 ---查询分区表 SELECT a.* FROM (   SELECT t.owner,t.tablespace_name,t.segment_name,sum(t.BYTES)/1024/1024/1024 total    FROM sys.sys_dba_segs t   WHERE t.partition_name IS NOT NULL   AND   t.segment_name NOT LIKE ‘%$%‘ /*  AND   lower(t.owner) = ‘zhjs_app‘ */   AND   UPPER(t.tablespace_name) = UPPER(‘ZHJS_ZDJS_0510‘)   GROUP by t.owner,t.tablespace_name,t.segment_name ) a /*WHERE a.total >= 2.5 */ ORDER BY a.total DESC ; --查询非分区表 SELECT a.* FROM (   SELECT t.owner,t.tablespace_name,t.segment_name,sum(t.BYTES)/1024/1024/1024 total    FROM sys.sys_dba_segs t   WHERE t.partition_name IS NULL   AND   t.segment_name NOT LIKE ‘%$%‘ /*  AND   lower(t.owner) = ‘zhjs_app‘ */   AND   UPPER(t.tablespace_name) = UPPER(‘ZHJS_ZDJS_0510‘)   GROUP by t.owner,t.tablespace_name,t.segment_name ) a /*WHERE a.total >= 2.5 */ ORDER BY a.total DESC ;

TRUNCATE TABLE  ter_510.BSS_ZSZH_COUPON_BACKUP; TRUNCATE TABLE   ter_510.TL_ERROR_LIST_ELSE; TRUNCATE TABLE  ter_510.TL_SETT_LIST_HIS; TRUNCATE TABLE   ter_510.BSS_TD_STORE_INOUT_CHANGE_BKP; TRUNCATE TABLE ter_510.BSS_CHANNEL_TEMP;

时间: 2024-10-05 18:38:05

关于oracle的笔记的相关文章

Oracle 学习笔记 17 -- 异常处理(PL/SQL)

程序在执行过程中出现异常是正常的,在程序的编写过程中出现异常也是不可避免的.但是要有相应的异常处理的机 制,来保证程序的正常执行.PL/SQL程序执行过程中出现的错误,称为异常.一个优秀的程序都应该能够正确处理 各种出错的情况,并尽可能的从错误中恢复.PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常执行过程中未预料的事件,程序块的异常处理定义的错误和自定义的错误, 由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会异常的终止. 有三种类型的错误

oracle学习笔记之用户管理-3

用户权限机制 1.不同用户表权限的赋予 grant select on scott.emp to software; ---当前登录用户为表所有者,则表名前不用指定所属用户 2.用software登录后 select * from scott.emp; ---software才有权限查询到scott的emp表 方案(schema) 当用户创建好后,如果该用户创建了一个数据对象(如表),此时dbms会创建一个对应的方案与改用户对应,并且该方案的名称和用户名称一致. system与scott都拥有自

【Oracle学习笔记】

内容主要包含: (1)三种循环及其简化 (2)游标的使用 (3)异常处理 (4)存储过程 (5)存储函数 (6)触发器 (7)其他pl/sql操作 ---------------loop循环定义变量-------------------- declare cursor c1 is select * from emp;# rec emp%rowtype;# i numeber:=1; # v_count number;begin# select count(*) into v_count from

oracle学习笔记(二)

设置归档模式(mount状态) ALTER database ARCHIVELOG; //关闭数据库 shutdown immediate //启动数据库到mount状态 startup mount alter database archivelog; //查看归档状态 archive log list; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 1 下一个存档日志序列

oracle琐碎笔记

Oracle知识点 ps:由于是自己看的所以笔记比较乱,大家谅解 Commit rollback Sql核心语句之select Selct中要用到以下语句 From语句 Where语句 Group by语句 Group by 来进行分组,分组的参数如果有重复的,只返回一个行值.(比如我按id分组如果记录中有两个id为1的记录,这时候只返回一行) Having语句 将分组汇总后的查询结果限定为只有该子句的条件为真的数据行. 一般情况下having放在groupby后面执行. Order by语句

oracle学习笔记之用户管理-2

案例:创建一个用户software,然后给分配权限,可以让software登录数据库.创建表.操作自己创建的表,回收角色,最后删除用户. 1.创建software用户,密码system create user software identified by system; 2.让software连接数据库,需要给其connect.resource权限 grant connect to software; grant resource to software; 3.使用software用户登录 co

oracle进阶笔记-基础准备-oracel-linux安装

Oracle 11g 在RedHat Linux 5.8_x64平台的安装手册 搭建环境:VM10 + RedHat 5.8_x64 +oracle 11g (grid+db) 步骤简述: 1.在电脑上安装VMware软件 2.创建一个RedHat5.8_x64系统的虚拟机完成系统安装,并配置系统基本的操作环境 3.检测环境是否符合Oracle的最低安装要求,并安装软件包和系统补丁 4.创建用户和组,并设置工作角色分离,修改内核参数设置用户资源控制 5.创建ASM并安装grid 6.安装Orac

oracle进阶笔记-基础准备-sqlplus用户登录

1 sqlplus 登录 本地登录 (登录数据库服务器) oracle 登录 sqlplus 账户名/密码 as 角色名 1.1 sys登录 例如: sqlplus sys/oracle ERROR: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER sys管理员必须有角色sysdba [[email protected] ~]$ sqlplus sys/oracle as sysdba 执行show user ; SQL>

Oracle OCP笔记(31)使用闪回功能

Oracle OCP笔记(31)使用闪回功能 Oracle的闪回功能受到3个数据库结构之一的支持: 撤消数据.闪回恢复区和回收站. 撤消表空间中的撤销数据不仅支持事务回滚,也支持大多数闪回表操作.Flashback Data Archives允许查询先前版本的表行,它在撤销表空间之外的一个或多个表空间中提供一个区域,支持的保留期比撤销表空间还长.闪回日志保存在闪回恢复区中,从而无需执行传统的还原和恢复操作,即可方便地将整个数据库回滚到过去的时间点.每个表空间中的回收站包含一个或多个版本的已删除的

oracle学习笔记 存储及raid技术概述

oracle学习笔记 存储及raid技术概述 本课以oracle数据库所运行的环境,讲一下存储和raid技术. 一)oralce生产环境里的结构 先说一下oracle所在的环境. 有一种结构: 两个服务器.两个光纤存储交换机.两个存储, 它们通过网线相互连接在一起. 每个服务器接两个交换机, 每个交换机连两个服务器同时连两个存储, 每个存储和两个交换机有连接. 这是oracle数据库相对比较典型的正规的运行环境. 每个服务器上都装Linux和oracle数据库软件, oracle数据库建在存储上