Oracle查询优化-05元数据查询

简介: Oracle查询优化-05元数据查询

5.1列出已创建的表的清单


select * from all_tables ;
select * from dba_tables ;
select * from user_tables ;


5.2 列出表的列


select * from all_tab_columns a ;
select * from dba_tab_columns a ;
select * from user_tab_columns a ;


5.3列出表的索引列

select a.*from all_ind_columns a ;
select a.* from dba_ind_columns a ;
select a.* from user_ind_columns a


5.4 列出表约束

查询 sys.all_constraints 和 sys.all_cons_columns

select a.TABLE_NAME, a.CONSTRAINT_NAME, b.COLUMN_NAME, a.CONSTRAINT_TYPE
  from all_constraints a, all_cons_columns b
 where a.TABLE_NAME = 'EMP'
   and a.OWNER = b.OWNER
   and a.TABLE_NAME = b.TABLE_NAME
   and a.CONSTRAINT_NAME = b.CONSTRAINT_NAME;
TABLE_NAME       CONSTRAINT_NAME COLUMN_NAME                                                   CONSTRAINT_TYPE
------------------------------ ------------------------------ -------------------------------------------------------------------------------- ---------------
EMP                       FK_DEPTNO          DEPTNO                                                                  R
EMP                       PK_EMP                 EMPNO                                                                   P


5.5 列出没有相应索引的外键

列出还有没有被索引的外键的表,例如 判断EMP表中的外键是否被索引。

select 
       a.TABLE_NAME, 
       a.CONSTRAINT_NAME, 
       a.COLUMN_NAME,
       c.INDEX_NAME
  from all_cons_columns a, all_constraints b, all_ind_columns c
 where a.TABLE_NAME = 'EMP'
   and a.OWNER = 'CRM'
   and b.CONSTRAINT_TYPE = 'R'
   and a.OWNER = b.OWNER
   and a.TABLE_NAME = b.TABLE_NAME
   and a.CONSTRAINT_NAME = b.CONSTRAINT_NAME
   and a.OWNER = c.TABLE_OWNER(+)
   and a.TABLE_NAME = c.TABLE_NAME(+)
   and a.COLUMN_NAME = c.COLUMN_NAME(+)
   and c.INDEX_NAME is null;
TABLE_NAME       CONSTRAINT_NAME COLUMN_NAME                                                   INDEX_NAME
------------------------------ ------------------------------ -------------------------------------------------------------------------------- ------------------------------
EMP                       FK_DEPTNO          DEPTNO                   


5.6 使用SQL来生成SQL

举例:生成SQL来统计所有表中的行数

select 'select count(1) from ' || table_name || ';' from user_tables ;


5.7 在oracle中描述数据字典视图

列出数据字典视图和他们的用途

select * from dictionary  a order by a.TABLE_NAME ;


查询数据字典中的列

select * from dict_columns a where a.TABLE_NAME = 'V$SQL';


相关文章
|
5月前
|
SQL Oracle 关系型数据库
关系型数据库Oracle并行查询
【7月更文挑战第12天】
120 15
|
5月前
|
Oracle 关系型数据库 数据处理
|
5月前
|
SQL 监控 Oracle
|
5月前
|
SQL 监控 Oracle
|
7月前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在 DataWorks 中,使用Oracle作为数据源进行数据映射和查询,如何更改数据源为MaxCompute或其他类型
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
78 1
|
7月前
|
Oracle 关系型数据库
Oracle查询优化-分解IP地址
【2月更文挑战第5天】【2月更文挑战第12篇】分解IP地址
75 8
|
7月前
|
存储 Oracle 关系型数据库
Oracle查询优化-提取姓名大写首字母缩写
【2月更文挑战第5天】【2月更文挑战第11篇】提取姓名大写首字母缩写
153 6
|
7月前
|
Oracle 关系型数据库
Oracle查询优化-行转列
【2月更文挑战第6天】【2月更文挑战第15篇】行转列
61 4
|
7月前
|
Oracle 关系型数据库
Oracle查询优化-列转行
【2月更文挑战第6天】【2月更文挑战第16篇】列转行
68 4
|
7月前
|
Oracle 关系型数据库
Oracle查询优化-累计求和
【2月更文挑战第6天】【2月更文挑战第14篇】累计求和
67 3

推荐镜像

更多