1. 程式人生 > >SQL Server , Orcale 如何查詢資料庫或者表中的索引

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);