关闭

Oracle 表被其他的 过程/视图 引用

309人阅读 评论(0) 收藏 举报
分类:

Oracle 表被其他的 过程/视图 引用

Select owner, object_type, object_name, object_id, status
  from sys.DBA_OBJECTS
 where object_id in (Select object_id
                       from public_dependency
                     connect by prior object_id = referenced_object_id
                      start with referenced_object_id =
                                 (Select object_id
                                    from sys.DBA_OBJECTS
                                   where owner = 'HR_C'-- 这里放 :Owner
                                     and object_name = 'DEPARTMENT' -- 这里放 :name
                                     /*and object_type = :type*/  -- 这里放 TABLE / SYNONYM
                                     ) )

 

 

图片拷不下来,参考我电脑里的《常用的oracle表和视图.docx》

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;
 
这样当我们不知道某个表在那个存储过程里面用到的时候,我们就不必要把每个存储过程打开在里面搜,直接用这个语句就可以查到,可以提高效率。
oracle中查询某个存储过程用到了那些表
select de.referenced_name from user_dependencies de where de.name='BI_OPER_REPORT'and de.referenced_type='TABLE';
 
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');  
  
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');
 
 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_ADVIC

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:62476次
    • 积分:957
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:150篇
    • 译文:0篇
    • 评论:0条