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

举报
小工匠 发表于 2021/09/10 00:45:39 2021/09/10
【摘要】 5.1列出已创建的表的清单 select * from all_tables ; select * from dba_tables ; select * from user_tables ;123 5...

5.1列出已创建的表的清单

select * from all_tables ;
select * from dba_tables ;
select * from user_tables ;
  
 
  • 1
  • 2
  • 3

5.2 列出表的列

select * from all_tab_columns a ;
select * from dba_tab_columns a ;
select * from user_tab_columns a ;
  
 
  • 1
  • 2
  • 3

5.3列出表的索引列

select a.*from all_ind_columns a ;
select a.* from dba_ind_columns a ;
select a.* from user_ind_columns a 
  
 
  • 1
  • 2
  • 3

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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                   
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

5.6 使用SQL来生成SQL

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

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

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

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

   select * from dictionary  a order by a.TABLE_NAME ;
  
 
  • 1

查询数据字典中的列

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

文章来源: artisan.blog.csdn.net,作者:小小工匠,版权归原作者所有,如需转载,请联系作者。

原文链接:artisan.blog.csdn.net/article/details/68951517

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。