Oracle資料庫常用經典查詢,oracle資料庫查詢

來源:互聯網
上載者:User

Oracle資料庫常用經典查詢,oracle資料庫查詢

本文收集了常用的資料庫查詢,需要資料庫管理員許可權:

1. 查詢暫存資料表空間使用方式

SELECT TABLESPACE_NAME,     TABLESPACE_SIZE / 1024 / 1024 TABLESPACE_SIZE_MB,    ALLOCATED_SPACE / 1024 / 1024 ALLOCATED_SPACE_MB,    FREE_SPACE / 1024 / 1024 FREE_SPACE_MB,    TO_CHAR((1 - FREE_SPACE / TABLESPACE_SIZE) * 100, '900.00') PERCENTAGE_USEDFROM DBA_TEMP_FREE_SPACE;

2. 查詢使用TEMP資料表空間的語句的SID, SERIAL#:

SELECT   B.TABLESPACE, B.SEGFILE#, B.SEGBLK#, ROUND (  (  ( B.BLOCKS * P.VALUE ) / 1024 / 1024 / 1024 ), 2 ) SIZE_GB       , A.SID, A.SERIAL#, A.USERNAME, A.OSUSER, A.PROGRAM, A.STATUS    FROM V$SESSION A, V$SORT_USAGE B, V$PROCESS C, V$PARAMETER P   WHERE P.NAME = 'db_block_size'     AND A.SADDR = B.SESSION_ADDR     AND A.PADDR = C.ADDRORDER BY SIZE_GB DESC;

3. 根據上面查詢 出的SERIAL#,查詢出對應的語句:

SELECT S.SID, S.SERIAL#, T.SQL_FULLTEXT,T.SQL_ID,S.SQL_HASH_VALUE,T.HASH_VALUE FROM V$SESSION S, V$SQL T WHERE S.SQL_ADDRESS = T.ADDRESS AND S.SQL_HASH_VALUE = T.HASH_VALUEAND S.SERIAL# = '&SERIAL#';


4. 查詢資料表空間的使用方式:

SELECT TSU.TABLESPACE_NAME, CEIL(TSU.USED_GB) "used GB" --15467,DECODE(CEIL(TSF.FREE_GB), NULL,0,CEIL(TSF.FREE_GB)) "free GB",DECODE(100 - CEIL(TSF.FREE_GB/TSU.USED_GB*100), NULL, 100,   100 - CEIL(TSF.FREE_GB/TSU.USED_GB*100)) "% used"FROM(SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024/1024 USED_GB           FROM DBA_DATA_FILES           GROUP BY TABLESPACE_NAME          UNION ALL SELECT TABLESPACE_NAME || '  **TEMP**',SUM(BYTES)/1024/1024/1024 USED_GB            FROM DBA_TEMP_FILES            GROUP BY TABLESPACE_NAME) TSU   ,(SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024/1024 FREE_GB            FROM DBA_FREE_SPACE            GROUP BY TABLESPACE_NAME         ) TSFWHERETSU.TABLESPACE_NAME = TSF.TABLESPACE_NAME (+)AND ( TSF.TABLESPACE_NAME IN ('&tablespace_name1', '&tablespace_name1') );


5. 查詢已耗用時間長的Session:

SELECT *FROM  (SELECT *    FROM    (SELECT VP.START_TIME "Start Time",ROUND((VP.LAST_UPDATE_TIME - VP.START_TIME)*60*24*60) ELAPSED,VP.MESSAGE "Message",            DECODE (VP.TOTALWORK, 0, 0, ROUND (100 * VP.SOFAR / VP.TOTALWORK, 2)) "Percent", VP.TIME_REMAINING||' sec' REMAINING     FROM V$SESSION_LONGOPS VP     WHERE VP.SID = &session_id --實際要替換的參數     )  ORDER BY 1 DESC  ); 

6. 查詢資料庫表的大小

SELECT SEGMENT_NAME, SUM(BYTES) / 1024 / 1024 / 1024 GBFROM DBA_SEGMENTSWHERE SEGMENT_NAME = '&table_name' <span style="font-family: Arial, Helvetica, sans-serif;">--實際要替換的參數</span>GROUP BY SEGMENT_NAME; 

7. 查詢資料庫表的依賴:

SELECT * FROM DBA_DEPENDENCIES WHERE REFERENCED_NAME='&object_name';--輸入對象名稱

8. 輸出建立表的語句

DECLAREV_STR LONG;CURSOR CUR ISSELECT COLUMN_NAME||' '||DECODE(DATA_TYPE,  'NUMBER', DECODE(NULLIF(DATA_LENGTH, 22), NULL, DATA_TYPE, DATA_TYPE||'('||DATA_LENGTH||')'),                                                                              'DATE', DATA_TYPE,                                                                              DATA_TYPE||'('||DATA_LENGTH||')'                                                                              )||','  COLFROM DBA_TAB_COLS WHERE TABLE_NAME='&SOURCE_TABLE_NAME'AND OWNER='&SOURCE_TABLE_OWNER'ORDER BY COLUMN_NAME ASC;BEGIN       FOR REC IN CUR LOOP       V_STR:=V_STR||REC.COL||CHR(10);       END LOOP;       V_STR:='CREATE TABLE'||' &TABLE_NAME'||' '||'('||CHR(10)||V_STR||CHR(10)||');';       DBMS_OUTPUT.PUT_LINE(V_STR);END;

9. 查詢表結構

SELECT DBMS_METADATA.GET_DDL('TABLE','&table_name','&schema') FROM DUAL;--替換表名與表所在的schema

10. 查詢資料庫的字元集

SELECT * FROM NLS_DATABASE_PARAMETERS;

11. 查詢 資料庫用到的database link:

SELECT * FROM DBA_DB_LINKS WHERE DB_LINK='&db_link';

12. 查詢資料表上的索引

select * from dba_indexes where owner='&owner' and table_name='&table_name';

13. 查詢資料表用到的索引列

select * from dba_ind_columns where index_owner='&owner' and table_name='&table_name';

14. 查詢資料表裡的預存程序/函數/自訂類型/觸發器/包

select * from dba_source where onwer='&owner'and type='&type';

15. 查詢約束

select * from dba_constraints;select * from all_constraints;select * from user_constraints;

16. 查詢同義字

select * from dba_synonyms;select * from all_synonyms;select * from user_synonyms;

17. 查詢出發器

select * from dba_triggers;select * from all_triggers;select * from user_triggers;

18. 查詢檢視

select * from dba_views;select * from all_views;select * from user_views;

19. 查詢序列

select * from dba_sequences;select * from all_sequences;select * from user_sequences;


20. 查詢物化視圖
select * from DBA_MVIEWS;select * from ALL_MVIEWS;select * from USER_MVIEWS;

21. 查詢資料庫物件

select * from DBA_OBJECTS;select * from ALL_OBJECTS;select * from USER_OBJECTS;


22. 查詢預存程序

select * from DBA_PROCEDURES;select * from ALL_PROCEDURES;select * from USER_PROCEDURES;

23. 查詢資料庫表

select * from DBA_TABLES;select * from ALL_TABLES;select * from USER_TABLES;

24. 查詢資料庫表的列

select * from DBA_TAB_COLUMNS;select * from ALL_TAB_COLUMNS;select * from USER_TAB_COLUMNS;select * from DBA_TAB_COLS;select * from ALL_TAB_COLS;select * from USER_TAB_COLS;

25. 查詢資料庫表列的備忘

select * from DBA_TAB_COMMENTS;select * from ALL_TAB_COMMENTS;select * from USER_TAB_COMMENTS;

26. 查看查詢的執行計畫

explain plan for select * from dict;select * from table(dbms_xplan.display);


持續更新中...

----------------------------------------------------------------------------------------------------------------------------------------------------

如果您們在嘗試的過程中遇到什麼問題或者My Code有錯誤的地方,請給予指正,非常感謝!

連絡方式:david.louis.tian@outlook.com

著作權@:轉載請標明出處!
用oracle怎查詢當前資料庫中的所有表

SELECT * FROM ALL_TABLES;系統裡有許可權的表
SELECT * FROM DBA_TABLES; 系統資料表
SELECT * FROM USER_TABLES; 目前使用者下的表
 
怎使用sql語句查詢 oracle資料庫 裡有什表

-- 查詢你 目前使用者下,有哪些表
SELECT * FROM user_tables

-- 查詢你 目前使用者下, 可以訪問哪些表 [也就是訪問自己 和 其他使用者的]
SELECT * FROM all_tables

-- 查詢當前資料庫所有的表, 需要你有 DBA 的許可權
SELECT * FROM dba_tables
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.