当前位置:首页 > 行业动态 > 正文

oracle obj表存储数据库对象持久性信息的宝库

Oracle数据库对象持久性信息的宝库是Oracle的对象表(Obj表),这些表存储了关于数据库对象的信息,如表、索引、视图、序列、同义词等,通过查询这些表,可以获取到数据库对象的详细信息,如对象名称、所有者、创建时间、修改时间等,在数据库维护和管理过程中,这些信息对于诊断问题和优化性能非常有用。

以下是一些常用的Oracle对象表:

1、ALL_OBJECTS:存储了当前用户拥有的所有对象的信息。

2、DBA_OBJECTS:存储了数据库中所有对象的信息,包括当前用户拥有的对象和其他用户的对象。

3、ALL_INDEXES:存储了当前用户拥有的所有索引的信息。

4、DBA_INDEXES:存储了数据库中所有索引的信息,包括当前用户拥有的索引和其他用户的索引。

5、ALL_VIEWS:存储了当前用户拥有的所有视图的信息。

6、DBA_VIEWS:存储了数据库中所有视图的信息,包括当前用户拥有的视图和其他用户的视图。

7、ALL_SEQUENCES:存储了当前用户拥有的所有序列的信息。

8、DBA_SEQUENCES:存储了数据库中所有序列的信息,包括当前用户拥有的序列和其他用户的序列。

9、ALL_SYNONYMS:存储了当前用户拥有的所有同义词的信息。

10、DBA_SYNONYMS:存储了数据库中所有同义词的信息,包括当前用户拥有的同义词和其他用户的同义词。

要查询这些表,可以使用SQL*Plus或其他Oracle客户端工具,以下是一个查询示例,用于获取当前用户拥有的所有表的信息:

SELECT owner, table_name, creation_date, last_ddl_time
FROM all_objects
WHERE object_type = 'TABLE' AND owner = USER;

这个查询将返回一个结果集,其中包含当前用户拥有的所有表的名称、创建时间和最后修改时间,同样,可以针对其他类型的对象执行类似的查询。

除了查询对象表外,还可以使用Oracle提供的一些动态性能视图来获取有关数据库对象的性能信息,以下是一些常用的动态性能视图:

1、DBA_HIST_ACTIVE_SESSION_HISTORY:存储了活动会话的历史记录,包括每个会话执行的SQL语句和执行时间等信息。

2、DBA_HIST_SQLTEXT_ALL:存储了所有SQL语句的文本和执行时间等信息。

3、DBA_HIST_SQLTEXT_BY_OWNER:按所有者分组的SQL语句文本和执行时间等信息。

4、DBA_HIST_SQLTEXT_BY_INSTANCE:按实例分组的SQL语句文本和执行时间等信息。

5、DBA_HIST_SQLTEXT_BY_OBJECT:按对象分组的SQL语句文本和执行时间等信息。

6、DBA_HIST_SQLTEXT_BY_STATEMENT:按SQL语句分组的SQL语句文本和执行时间等信息。

7、DBA_HIST_SQLTEXT_WITHOUT_ARGUMENTS:不包含参数的SQL语句文本和执行时间等信息。

8、DBA_HIST_TIME_STAT:存储了SQL语句执行时间的统计信息,如平均执行时间、最差执行时间等。

9、DBA_HIST_ACTIVE_SESSION_HISTORY_BY_TOPIC:按主题分组的活动会话历史记录,如锁等待、I/O等待等。

10、DBA_HIST_ACTIVE_SESSION_HISTORY_TOP:按执行时间排序的活动会话历史记录的前N个记录。

要查询这些动态性能视图,可以使用与查询对象表相同的方法,以下查询将返回当前用户最近执行的10个SQL语句及其执行时间:

SELECT sql_text, elapsed_time
FROM dba_hist_active_session_history
WHERE session_id = SYS_CONTEXT('USERENV', 'SESSIONID')
ORDER BY start_time DESC
FETCH FIRST 10 ROWS ONLY;

通过结合使用对象表和动态性能视图,可以全面了解数据库对象的运行状况,从而更好地进行数据库维护和管理。

0