前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle查询优化-05元数据查询

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

作者头像
小小工匠
发布2021-08-16 15:59:56
3250
发布2021-08-16 15:59:56
举报
文章被收录于专栏:小工匠聊架构

5.1列出已创建的表的清单

代码语言:javascript
复制
select * from all_tables ;
select * from dba_tables ;
select * from user_tables ;

5.2 列出表的列

代码语言:javascript
复制
select * from all_tab_columns a ;
select * from dba_tab_columns a ;
select * from user_tab_columns a ;

5.3列出表的索引列

代码语言:javascript
复制
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

代码语言:javascript
复制
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表中的外键是否被索引。

代码语言:javascript
复制
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来统计所有表中的行数

代码语言:javascript
复制
select 'select count(1) from ' || table_name || ';' from user_tables ; 

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

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

代码语言:javascript
复制
   select * from dictionary  a order by a.TABLE_NAME ;

查询数据字典中的列

代码语言:javascript
复制
   select * from dict_columns a where a.TABLE_NAME = 'V$SQL';
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/04/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5.1列出已创建的表的清单
  • 5.2 列出表的列
  • 5.3列出表的索引列
  • 5.4 列出表约束
  • 5.5 列出没有相应索引的外键
  • 5.6 使用SQL来生成SQL
  • 5.7 在oracle中描述数据字典视图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档