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