SQL Server , Orcale 如何查询数据库或者表中的索引

 

SQL Server数据库索引信息查询

-- 查看某個表的索引

SELECT * FROM sys.sysindexes
WHERE id=object_id('RelactionGraph')
 
-- 查看整個庫的索引
SELECT * FROM sys.sysindexes
 
-- 查看所有庫的索引
IF object_id('tempdb..#')IS NOT NULL
    DROP TABLE #
SELECT * INTO # FROM sys.sysindexes WHERE 1=2
 
INSERT INTO #
    EXEC sys.sp_MSforeachdb @command1='Select * from ?.sys.sysindexes'
     
SELECT * FROM #





Oracle数据库索引信息查询
oracle对于数据库中的表信息,存储在系统表中。查询已创建好的表索引,可通过相应的sql语句到相应的表中进行快捷的查询:


1. 根据表名,查询一张表的索引


 select * from user_indexes where table_name=upper('party_customer'); 


2. 根据索引号,查询表索引字段


1 select * from user_ind_columns where index_name=('索引名'); 


3.根据索引名,查询创建索引的语句


 select dbms_metadata.get_ddl('INDEX','SQL100310102315181') from dual ; --['用户名']可省,默认为登录用户 


PS:dbms_metadata.get_ddl还可以得到建表语句,如:

 SELECT DBMS_METADATA.GET_DDL('TABLE','表名', ['用户名']) FROM DUAL ; //取单个表的建表语句,['用户名']可不输入,默认为登录用户

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u; //取用户下所有表的建表语句 



当然,也可以用pl/sqldeveloper工具来查看相关的表的各种信息。

查询用户的索引  
select  index_name,table_name,tablespace_name,  
    index_type,uniqueness , status   
    from dba_indexes where owner='TPSHDEV';  
查询用户的索引列  
select index_name,table_name,column_name,  
    index_owner,table_owner  
from dba_ind_columns  
where table_owner='TPSHDEV';  



查询Orcale数据库执行计划

EXPLAIN PLAN FOR 
 
SELECT * FROM PARTY_CUSTOMER WHERE ID = '000000003034' ; --要解析的SQL脚本 
 
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李晓LOVE向阳

你的鼓励是我持续的不断动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值