常用的oracle表和視圖

 

1、oracle中查詢某個表在那個存儲過程中用到了

例如查詢t_lea_waybill在那個存儲過程中用到了:

select a.name 過程名稱, min(a.line) 首次出現行數

  from user_source a

 where a.TEXT like '%t_lea_waybill%'

 group by a.name;

這樣當我們不知道某個表在那個存儲過程裏面用到的時候,我們就不必要把每個存儲過程打開在裏面搜,直接用這個語句就可以查到,可以提高效率。

2、oracle中查詢某個存儲過程用到了那些表

select de.referenced_name from user_dependencies de where de.name='BI_OPER_REPORT'and de.referenced_type='TABLE';

3、oracle中查詢某個存儲過程用到了那些序列

select de.referenced_name from user_dependencies de where de.name='BI_OPER_REPORT'and de.referenced_type='SEQUENCE';

4、oracle中查詢某個字段屬於哪個表

select table_name, owner

  from dba_tab_columns t where t.COLUMN_NAME = upper('MENUNAME');  

select table_name,owner from dba_tab_columns t where t.COLUMN_NAME like upper('%username%');

 

5、oracle中查詢某個表的列數

select count(*)

  from user_tab_columns a where table_name = upper('ac_menu'); 

6、oracle中查詢某個表字段的類型

select a.COLUMN_NAME, a.DATA_TYPE

  from user_tab_columns a  where table_name = upper('ac_menu');

select count(*) from user_tab_columns where table_name= upper('sys_operate');

 7、oracle中查詢正在運行的job

select * from dba_jobs_running

 

8、oracle中查詢執行失敗的job

select * from user_jobs  a  where a.FAILURES<>0

9、oracle中查詢同義詞

select * from dba_synonyms a

dba_開頭.....

   dba_users      數據庫用戶信息

   dba_segments 表段信息

   dba_extents    數據區信息

   dba_objects    數據庫對象信息

   dba_tablespaces   數據庫表空間信息

   dba_data_files    數據文件設置信息

   dba_temp_files   臨時數據文件信息

   dba_rollback_segs   回滾段信息

   dba_ts_quotas   用戶表空間配額信息

   dba_free_space 數據庫空閒空間信息

   dba_profiles   數據庫用戶資源限制信息

   dba_sys_privs   用戶的系統權限信息

   dba_tab_privs 用戶具有的對象權限信息

   dba_col_privs 用戶具有的列對象權限信息

   dba_role_privs 用戶具有的角色信息

   dba_audit_trail 審計跟蹤記錄信息

   dba_stmt_audit_opts 審計設置信息

   dba_audit_object   對象審計結果信息

   dba_audit_session 會話審計結果信息

   dba_indexes 用戶模式的索引信息

user_開頭

   user_objects   用戶對象信息

   user_source   數據庫用戶的所有資源對象信息

   user_segments   用戶的表段信息

   user_tables    用戶的表對象信息

   user_tab_columns   用戶的表列信息

   user_constraints   用戶的對象約束信息

   user_sys_privs   當前用戶的系統權限信息

   user_tab_privs   當前用戶的對象權限信息

   user_col_privs   當前用戶的表列權限信息

   user_role_privs   當前用戶的角色權限信息

   user_indexes   用戶的索引信息

   user_ind_columns 用戶的索引對應的表列信息

   user_cons_columns   用戶的約束對應的表列信息

   user_clusters   用戶的所有簇信息

   user_clu_columns 用戶的簇所包含的內容信息

   user_cluster_hash_expressions   散列簇的信息

v$開頭

   v$database    數據庫信息

   v$datafile   數據文件信息

   v$controlfile 控制文件信息

   v$logfile   重做日誌信息

   v$instance   數據庫實例信息

   v$log   日誌組信息

   v$loghist 日誌歷史信息

   v$sga   數據庫SGA信息

   v$parameter 初始化參數信息

   v$process   數據庫服務器進程信息

   v$bgprocess   數據庫後臺進程信息

   v$controlfile_record_section   控制文件記載的各部分信息

   v$thread   線程信息

   v$datafile_header   數據文件頭所記載的信息

   v$archived_log 歸檔日誌信息

   v$archive_dest   歸檔日誌的設置信息

   v$logmnr_contents   歸檔日誌分析的DML DDL結果信息

   v$logmnr_dictionary   日誌分析的字典文件信息

   v$logmnr_logs   日誌分析的日誌列表信息

   v$tablespace   表空間信息

   v$tempfile   臨時文件信息

   v$filestat   數據文件的I/O統計信息

   v$undostat   Undo數據信息

   v$rollname   在線回滾段信息

   v$session   會話信息

   v$transaction 事務信息

   v$rollstat    回滾段統計信息

   v$pwfile_users   特權用戶信息

   v$sqlarea     當前查詢過的sql語句訪問過的資源及相關的信息

   v$sql           與v$sqlarea基本相同的相關信息

   v$sysstat    數據庫系統狀態信息

all_開頭

   all_users   數據庫所有用戶的信息

   all_objects   數據庫所有的對象的信息

   all_def_audit_opts   所有默認的審計設置信息

   all_tables   所有的表對象信息

   all_indexes 所有的數據庫對象索引的信息

session_開頭

     session_roles   會話的角色信息

     session_privs   會話的權限信息

index_開頭

    index_stats   索引的設置和存儲信息

僞表

   dual   系統僞列表信息Oracle基於SQL幾個常用的幾個系統表

1、sysobjects

  系統對象表。 保存當前數據庫的對象,如約束、默認值、日誌、規則、存儲過程等

  sysobjects 重要字段解釋:

  sysObjects (
  Name sysname, ——object 名稱
  id int, ——object id
  xtype char(2), —— object 類型
  type char(2), —— Object 類型(與xtype 似乎一模一樣? 有點鬱悶…)
  uid smallint, —— object 所有者的ID
  …… ——其他的字段不常用到。
  )

  注:需要解釋的是 xtype 和type 是一模一樣的,他的數據爲:
  C = CHECK 約束
  D = 默認值或 DEFAULT 約束
  F = FOREIGN KEY 約束
  FN = 標量函數
  IF = 內嵌表函數
  K = PRIMARY KEY 或 UNIQUE 約束
  L = 日誌
  P = 存儲過程
  R = 規則
  RF = 複製篩選存儲過程
  S = 系統表
  TF = 表函數
  TR = 觸發器
  U = 用戶表
  V = 視圖
  X = 擴展存儲過程
  該表中包含該數據庫中的所有對象,如有那些表 存儲過程 視圖 等信息

  2、sysColumns 數據庫字段表。 當前數據庫的所有字段都保留在裏面。

  重要字段解釋:
  sysColumns (
  name sysname, ——字段名稱
  id int, ——該字段所屬的表的ID
  xtype tinyInt, ——該字段類型,關聯sysTypes表
  length smallint, ——該字段物理存儲長度
  ……
  )
  比如要查詢某一個張表的有那些字段和這些字段的長度

  3、sysUsers
  當前數據庫的系統組,以及用戶。
  sysUsers(
  uid smallint, ——用戶id
  name smallint , ——名稱
  uid varbinary(85) , ——屬於一個登陸
  ……
  )
  對數據庫的用戶進行管理

  4、sysdenpends
  當前數據庫的依賴關係。 比如我要修改某一張的結構時,怕修改後會影響到其它的視圖 函數 存儲過程 ,這是在修改之前可以查詢一下。那些視圖 函數 存儲過程調用了這個表的

  這樣在修改後就可以修改的視圖 函數 存儲過程,

  一般程序員用到的系統表,基本也就這幾個 其他的特殊的系統表(主要都在master 或者 tempdb )裏面了

一個有用的例子:(查詢表的創建者)

SELECT   owner   FROM     DBA_ALL_TABLES   WHERE   table_name=upper('表名');

據字典dict總是屬於Oracle用戶sys的。

1、用戶:

 select username from dba_users;

改口令

 alter user spgroup identified by spgtest;

2、表空間:

 select * from dba_data_files;

 select * from dba_tablespaces;//表空間

 select tablespace_name,sum(bytes), sum(blocks)

from dba_free_space group by tablespace_name;//空閒表空間

 select * from dba_data_files

where tablespace_name='RBS';//表空間對應的數據文件

 select * from dba_segments

where tablespace_name='INDEXS';

3、數據庫對象:

 select * from dba_objects;

 CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、

 PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。

4、表:

 select * from dba_tables;

 analyze my_table compute statistics;->dba_tables後6列

 select extent_id,bytes from dba_extents

 where segment_name='CUSTOMERS' and segment_type='TABLE'

 order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滾段的空間分配信息

 列信息:

select distinct table_name

from user_tab_columns

where column_name='SO_TYPE_ID';

5、索引: 

 select * from dba_indexes;//索引,包括主鍵索引

 select * from dba_ind_columns;//索引列

 select i.index_name,i.uniqueness,c.column_name

from user_indexes i,user_ind_columns c

 where i.index_name=c.index_name

 and i.table_name ='ACC_NBR';//聯接使用

6、序列:

 select * from dba_sequences;

7、視圖:

 select * from dba_views;

 select * from all_views;

text 可用於查詢視圖生成的腳本

8、聚簇:

 select * from dba_clusters;

9、快照:

 select * from dba_snapshots;

快照、分區應存在相應的表空間。

10、同義詞:

 select * from dba_synonyms

where table_owner='SPGROUP';

//if owner is PUBLIC,then the synonyms is a public synonym.

 if owner is one of users,then the synonyms is a private synonym.

11、數據庫鏈:

 select * from dba_db_links;

在spbase下建數據庫鏈

 create database link dbl_spnew

 connect to spnew identified by spnew using 'jhhx';

 insert into acc_nbr@dbl_spnew

 select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';


12、觸發器:

 select * from dba_trigers;

存儲過程,函數從dba_objects查找。

其文本:select text from user_source where name='BOOK_SP_EXAMPLE';

建立出錯:select * from user_errors;

Oracle總是將存儲過程,函數等軟件放在SYSTEM表空間。

13、約束:

(1)約束是和表關聯的,可在create table或alter table table_name add/drop/modify來建立、修改、刪除約束。

可以臨時禁止約束,如:

 alter table book_example

 disable constraint book_example_1;

 alter table book_example

 enable constraint book_example_1;

(2)主鍵和外鍵被稱爲表約束,而not null和unique之類的約束被稱爲列約束。通常將主鍵和外鍵作爲單獨的命名約束放在字段列表下面,而列約束可放在列定義的同一行,這樣更具有可讀性。

(3)列約束可從表定義看出,即describe;表約束即主鍵和外鍵,可從dba_constraints和dba_cons_columns 查。

 select * from user_constraints

 where table_name='BOOK_EXAMPLE';

 select owner,CONSTRAINT_NAME,TABLE_NAME

from user_constraints

where constraint_type='R'

order by table_name;

(4)定義約束可以無名(系統自動生成約束名)和自己定義約束名(特別是主鍵、外鍵)

如:create table book_example

(identifier number not null);

create table book_example

(identifier number constranit book_example_1 not null);

14、回滾段:

在所有的修改結果存入磁盤前,回滾段中保持恢復該事務所需的全部信息,必須以數據庫發生的事務來相應確定其大小(DML語句纔可回滾,create,drop,truncate等DDL不能回滾)。

回滾段數量=併發事務/4,但不能超過50;使每個回滾段大小足夠處理一個完整的事務;

 create rollback segment r05

 tablespace rbs;

 create rollback segment rbs_cvt

 tablespace rbs

 storage(initial 1M next 500k);

使回滾段在線

 alter rollback segment r04 online;

用dba_extents,v$rollback_segs監測回滾段的大小和動態增長。

回滾段的區間信息

 select * from dba_extents

 where segment_type='ROLLBACK' and segment_name='RB1';

回滾段的段信息,其中bytes顯示目前回滾段的字節數

 select * from dba_segments

where segment_type='ROLLBACK' and segment_name='RB1';

爲事物指定迴歸段

 set transaction use rollback segment rbs_cvt

針對bytes可以使用回滾段回縮。

 alter rollback segment rbs_cvt shrink;

 select bytes,extents,max_extents from dba_segments

where segment_type='ROLLBACK' and segment_name='RBS_CVT';

回滾段的當前狀態信息:

 select * from dba_rollback_segs

where segment_name='RB1';

比多回滾段狀態status,回滾段所屬實例instance_num

查優化值optimal

 select n.name,s.optsize

from v$rollname n,v$rollstat s

 where n.usn=s.usn;

回滾段中的數據

 set transaction use rollback segment rb1;/*回滾段名*/

 select n.name,s.writes

from v$rollname n,v$rollstat s

 where n.usn=s.usn;

當事務處理完畢,再次查詢$rollstat,比較writes(回滾段條目字節數)差值,可確定事務的大小。

查詢回滾段中的事務

 column rr heading 'RB Segment' format a18

 column us heading 'Username' format a15

 column os heading 'Os User' format a10

 column te heading 'Terminal' format a10

 select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te

from v$lock l,v$session s,v$rollname r

 where l.sid=s.sid(+)

 and trunc(l.id1/65536)=R.USN

 and l.type='TX'

 and l.lmode=6

 order by r.name;

15、作業

查詢作業信息

 select job,broken,next_date,interval,what from user_jobs;

 select job,broken,next_date,interval,what from dba_jobs;

查詢正在運行的作業

 select * from dba_jobs_running;

使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作業。間隔10秒鐘

exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作業。間隔11分鐘使用包exec dbms_job.remove(21)刪除21號作業。
 ==================

dba_開頭
   dba_users     數據庫用戶信息
   dba_segments  表段信息
   dba_extents    數據區信息
   dba_objects    數據庫對象信息
   dba_tablespaces   數據庫表空間信息
   dba_data_files    數據文件設置信息
   dba_temp_files   臨時數據文件信息
   dba_rollback_segs   回滾段信息
   dba_ts_quotas   用戶表空間配額信息
   dba_free_space  數據庫空閒空間信息
   dba_profiles   數據庫用戶資源限制信息
   dba_sys_privs   用戶的系統權限信息
   dba_tab_privs  用戶具有的對象權限信息
   dba_col_privs  用戶具有的列對象權限信息
   dba_role_privs  用戶具有的角色信息
   dba_audit_trail  審計跟蹤記錄信息
   dba_stmt_audit_opts  審計設置信息
   dba_audit_object   對象審計結果信息
   dba_audit_session  會話審計結果信息
   dba_indexes  用戶模式的索引信息


user_開頭
   user_objects   用戶對象信息
   user_source   數據庫用戶的所有資源對象信息
   user_segments   用戶的表段信息
   user_tables    用戶的表對象信息
   user_tab_columns   用戶的表列信息

   關於這個還涉及到兩個常用的例子如下:

 

  
   user_constraints   用戶的對象約束信息
   user_sys_privs   當前用戶的系統權限信息
   user_tab_privs   當前用戶的對象權限信息
   user_col_privs   當前用戶的表列權限信息
   user_role_privs   當前用戶的角色權限信息
   user_indexes   用戶的索引信息
   user_ind_columns  用戶的索引對應的表列信息
   user_cons_columns   用戶的約束對應的表列信息
   user_clusters   用戶的所有簇信息
  user_clu_columns  用戶的簇所包含的內容信息
  user_cluster_hash_expressions   散列簇的信息


v$開頭
   v$database    數據庫信息
   v$datafile   數據文件信息
   v$controlfile  控制文件信息
   v$logfile   重做日誌信息
   v$instance   數據庫實例信息
   v$log   日誌組信息
   v$loghist  日誌歷史信息
   v$sga   數據庫SGA信息
   v$parameter  初始化參數信息
   v$process   數據庫服務器進程信息
   v$bgprocess   數據庫後臺進程信息
   v$controlfile_record_section   控制文件記載的各部分信息
   v$thread   線程信息
   v$datafile_header   數據文件頭所記載的信息
   v$archived_log  歸檔日誌信息
   v$archive_dest   歸檔日誌的設置信息
   v$logmnr_contents   歸檔日誌分析的DML DDL結果信息
   v$logmnr_dictionary   日誌分析的字典文件信息
   v$logmnr_logs   日誌分析的日誌列表信息
   v$tablespace   表空間信息
   v$tempfile   臨時文件信息
   v$filestat   數據文件的I/O統計信息
   v$undostat   Undo數據信息
   v$rollname   在線回滾段信息
   v$session   會話信息
   v$transaction  事務信息
   v$rollstat    回滾段統計信息
   v$pwfile_users   特權用戶信息
   v$sqlarea     當前查詢過的sql語句訪問過的資源及相關的信息
   v$sql           與v$sqlarea基本相同的相關信息
   v$sysstat    數據庫系統狀態信息


all_開頭
   all_users   數據庫所有用戶的信息
   all_objects   數據庫所有的對象的信息
   all_def_audit_opts   所有默認的審計設置信息
   all_tables   所有的表對象信息
   all_indexes  所有的數據庫對象索引的信息

session_開頭
     session_roles   會話的角色信息
     session_privs   會話的權限信息


index_開頭
    index_stats   索引的設置和存儲信息


僞表
   dual   系統僞列表信息


oracle最重要的9個動態性能視圖
v$session + v$session_wait (在10g裏功能被整合,湊合算1個吧.)
v$process
v$sql
v$sqltext
v$bh (更寧願是x$bh)
v$lock
v$latch_children
v$sysstat
v$system_event
按組分的幾組重要的性能視圖

1. System 的 over view
v$sysstat , v$system_event , v$parameter

2. 某個session 的當前情況
v$process , v$session , v$session_wait ,v$session_event , v$sesstat

3. SQL 的情況
v$sql , v$sqlarea , v$SQL_PLAN , V$SQL_PLAN_STATISTICS, v$sqltext_with_newlines

3. Latch / lock /ENQUEUE
v$latch , v$latch_children , v$latch_holder , v$lock ,V$ENQUEUE_STAT ,V$ENQUEUE_LOCK

4. IO 方面的
v$segstat , v$filestat , v$tempstat ,v$datafile , v$tempfile

5. shared pool / Library cache
v$Librarycache , v$rowcache , x$ksmsp

6. 幾個advice也不錯
v$db_cache_advice , v$PGA_TARGET_ADVICE, v$SHARED_POOL_ADVICE

 

發佈了96 篇原創文章 · 獲贊 7 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章