oracle 知识

1.查询索引数量

select table_name, count(*) cnt
from user_indexes where index_type=‘NORMAL‘
group by table_name
having count(*) >= 1
order by cnt desc ;

2.查询外键未建建索引的情况。

select table_name,
constraint_name,
cname1 || nvl2(cname2, ‘,‘ || cname2, null) ||
nvl2(cname3, ‘,‘ || cname3, null) ||
nvl2(cname4, ‘,‘ || cname4, null) ||
nvl2(cname5, ‘,‘ || cname5, null) ||
nvl2(cname6, ‘,‘ || cname6, null) ||
nvl2(cname7, ‘,‘ || cname7, null) ||
nvl2(cname8, ‘,‘ || cname8, null) columns
from (select b.table_name,
b.constraint_name,
max(decode(position, 1, column_name, null)) cname1,
max(decode(position, 2, column_name, null)) cname2,
max(decode(position, 3, column_name, null)) cname3,
max(decode(position, 4, column_name, null)) cname4,
max(decode(position, 5, column_name, null)) cname5,
max(decode(position, 6, column_name, null)) cname6,
max(decode(position, 7, column_name, null)) cname7,
max(decode(position, 8, column_name, null)) cname8,
count(*) col_cnt
from (select substr(table_name, 1, 30) table_name,
substr(constraint_name, 1, 30) constraint_name,
substr(column_name, 1, 30) column_name,
position
from user_cons_columns) a,
user_constraints b
where a.constraint_name = b.constraint_name
and b.constraint_type = ‘R‘
group by b.table_name, b.constraint_name) cons
where col_cnt > ALL
(select count(*)
from user_ind_columns i
where i.table_name = cons.table_name
and i.column_name in (cname1, cname2, cname3, cname4, cname5,
cname6, cname7, cname8)
and i.column_position <= cons.col_cnt
group by i.index_name);

3.查询哪些组合索引组合列超过4个的

select table_name, index_name, count(*)
  from user_ind_columns
 group by table_name, index_name
having count(*) >= 4
 order by count(*) desc;

4.查询大表创建索引

select segment_name, bytes/1024/1024/1024 "GB", blocks, tablespace_name
  from user_segments
 where segment_type = ‘TABLE‘
   and segment_name not in (select table_name from user_indexes)
   and bytes / 1024 / 1024 / 1024 >= 2
 order by GB desc;

5.查询失效的索引

select t.index_name,
       t.table_name,
       blevel,
       t.num_rows,
       t.leaf_blocks,
       t.distinct_keys
  from user_indexes t
where status = ‘UNUSABLE‘ ;

6.查询分区失效索引

select t1.blevel,
       t1.leaf_blocks,
       t1.INDEX_NAME,
       t2.table_name,
       t1.PARTITION_NAME,
       t1.STATUS
  from user_ind_partitions t1, user_indexes t2
where t1.index_name = t2.index_name
   and t1.STATUS = ‘UNUSABLE‘;

 7.查询单列索引和组合索引存在交叉的情况。

 单列索引和组合索引使用了相同的字段。

select table_name, trunc(count(distinct(column_name)) / count(*),2) cross_idx_rate
  from user_ind_columns
 group by table_name
having count(distinct(column_name)) / count(*) < 1
order by cross_idx_rate desc;

 8.查询索引高度较高的索引。

select table_name,
       index_name,
       blevel,
       leaf_blocks,
       num_rows,
       last_analyzed,
       degree,
       status
  from user_indexes
  where  blevel>=1;

 9.普通索引(从未收集过统计信息或者是最近10天内未收集过统计信息的表)

select index_name, table_name, last_analyzed, num_rows, temporary, status
  from user_indexes
 where status <> ‘N/A‘
   and (last_analyzed is null or last_analyzed < sysdate - 10);

10.分区索引(从未收集过统计信息或者是最近10天内未收集过统计信息的分区)

select t2.table_name,
       t1.INDEX_NAME,
       t1.PARTITION_NAME,
       t1.last_analyzed,
       t1.blevel,
       t1.leaf_blocks,
       t1.STATUS
  from user_ind_partitions t1, user_indexes t2
where t1.index_name = t2.index_name
  and (t1.last_analyzed is null or t1.last_analyzed < sysdate - 10);

11.外键约束失效。

SELECT TABLE_NAME,
       CONSTRAINT_NAME,
       STATUS,
       CONSTRAINT_TYPE,
       R_CONSTRAINT_NAME
  FROM USER_CONSTRAINTS
 WHERE STATUS=‘DISABLED‘;

oracle 知识,布布扣,bubuko.com

时间: 2024-12-14 07:46:41

oracle 知识的相关文章

【面试虐菜】—— Oracle知识整理《收获,不止Oracle》

普通堆表不足之处: 表更新有日志开销 表删除有瑕疵 表记录太大检索较慢 索引回表读开销很大 有序插入难有序读出 DELETE产生的undo最多,redo也最多,因为undo也需要redo保护 全局临时表: 1 高效删除记录 基于事务的全局临时表commit或者session连接退出后,自动删除 基于回话的全局临时表在退出回话后自动删除 2 针对不同的会话数据独立,不同的session访问全局临时表,看到的结果不同 全局临时表在程序的一次调用执行过程中,需要多次清空记录再插入记录,就考虑使用基于是

【面试虐菜】—— Oracle知识整理《DBA的思想天空》

Inventory Oracle安装工具OUI用来管理Oracle安装目录的 Oracle的参数文件,启动后按照下面的顺序读取参数文件,如果读取失败,启动数据库 失败: 1  $ORACLE_HOME/dbs/SPFILE.ORA 2  $ORACLE_HOME/dbs/spfile.ora 3  $ORACLE_HOME/dbs/init.ora 数据库的nomount阶段: 1 读取参数文件 2 分配共享内存 3 启动进程 Mount阶段: 1 读取控制文件 2 进行校验 oracle的控制

Oracle知识分类之异常

Oracle异常分类                                                                                                                        Oracle预定义异常(即已定义的内部异常) Oracle非预定义异常(即未定义的内部异常) 用户自定义异常 常见的预定义异常                                                         

oracle知识分享

对于刚毕业的学生来说,找工作是一件很难的事情,但是我们如何拥有项目经验呢? 刚开始我也不信,可自己根据http://url.cn/TgrIZT注册一下,然后通过这个网站获取了学习卡的用户名和密码之后,真的有200元抵用券到了自己的账户中,所以,我就买了一些课程,自从在北风网学习了一些课程之后,我感觉自己对于提成技能特别高,可能和自己刚刚毕业有关系,在学校每天都是理论知识,没有过多的时间,但是自从在北风网上学习了一些项目的知识之后,尤其和老师们一起做项目,我起初以为只是简单的视频教程,谁知道和培训

Oracle知识整理

1.自带三种登录方式: Scott/tiger   sys/manager   system/manager 2.基本的操作 1)  建数据库 create tablespace 表空间的名称 datafile ‘路径+文件.dbf’ size 初始大小m autoextend on    --是否为自动增长 eg: create tablespace myspace datafile 'e:\a.dbf' size 5m autoextend on 2)建用户 create  user 用户名

oracle知识总结

一.特殊函数 1:NVL函数 NVL(str1,str2),如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值: eg:select nvl(t.a, 0) from table t; 2:NVL2函数 NVL2(str1,str2, str3),如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值: eg:select nvl(t.a, 1, -1) from table t; 3:TRUNC函数

Oracle知识梳理(一)理论篇:基本概念和术语整理

理论篇:基本概念和术语整理 一.关系数据库           关系数据库是目前应用最为广泛的数据库系统,它采用关系数据模型作为数据的组织方式,关系数据模型由关系的数据结构,关系的操作集合和关系的完整性约束三部分组成. 二.关系数据库中的一些基本术语和定义 1.关系数据模型 关系数据模型是建立在严格的数学概念的基础上,由一组关系组成,每个关系的数据结构是一张严格规范化的二维表,简单说关系数据模型就是用二维表的形式来表示实体和实体间联系的数据模型. ①二维表: 简单说关系数据库中数据的主要存储形式

(转)Oracle 知识日常积累

Oracle中row_number().rank().dense_rank() 的区别:https://www.cnblogs.com/qiuting/p/7880500.html oracle sign函数解决大于小于的decode写法:https://blog.csdn.net/gahaya/article/details/8193026 如何用Pivot实现行列转换:https://www.cnblogs.com/ivictor/p/4664011.html ORACLE统计分析函数:ht

Oracle知识分类之常见规范

命名规范 变量规范 1.入参,统一以I_前缀开头,且不能省略IN 2.出参,统一以O_前缀开头 3.局部变量,统一以V_前缀开头 4.常量,统一以CN_前缀开头 5.游标,统一以CUR_前缀开头 组成规范 数据库中的各个名称必须以字母开头,含字母.数字.下划线,严禁以SYS开头,语义需明确. 长度规范 表名.字段名.过程名.方法名.触发器名.序列名,同义词名.视图名.等Oralce对象标识符长度不能超过30个字符 游标规范 1.如果要查询的数据为一列表,需要将游标作为返回参数 2.在打开游标前,