SQL Server , Orcale 如何查詢資料庫或者表中的索引
阿新 • • 發佈:2019-02-16
SQL Server資料庫索引資訊查詢
-- 檢視某個表的索引
SELECT * FROM sys.sysindexesWHERE 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);