您的位置:首页 > 数据库 > Oracle

常用的oracle数据字典

2015-10-25 14:46 435 查看
数据字典

数据字典是oracle的核心

分为两大类 

1、存在于 system 表空间
    ⋯$结尾的基本表

 Dba_..,all_⋯.,user_⋯视图

2、存 select name from v$parameter where name='lock_sga';

 show parameter lock_sga;          在于内存中

X$⋯..的虚表

V$⋯的动态性能视图

数据字典是我们建立数据库的时候运行脚本建立的.

%oracle_home%\rdbms\admin\catalog.sql;

脚本当中含有建立数据字典的语句.而 v$的字典是数据库在启动实例的时候初始化的. 数据字典的使用 数据库自己使用字典获取信息 数据库自动维护 我们查看字典来获得数据库的有关信息基本表,是字典得基本表,在建立 system
表空间的时候建立的.

select table_name,owner from dba_tables where table_name like '%$' and owner='SYS'

视图,是在建立数据库以后运行 catalog.sql;脚本建立的.

1、查看哪些字典中含有
TABLE 关键字,一定要大写.

select table_name
from dict where table_name like '%TABLE%'

2、查看哪些字典中含有
VIEW 关键字,一定要大写.

select table_name
from dict where table_name like '%VIEW%'

查看所有的 x和v的表的信息.

SELECT * FROM V$FIXED_TABLE;

三大类视图,**代表可以替换为某个单词.

Dba_*****

All_****

User_****

我们拿 tables 说明上面得含义.

user_tables
: 查 看 当 前 用 户 所 拥 有 的 表 . 

all_tables
:查 看 当 前 用 户 可 以 访 问 的 表 .

dba_tables:查看当前整个数据库拥有的表,但是你得有权限,如果没有权限会报没有这个表.

常见操作

系统用户

1.用来获取数据库初始化参数详细信息

 select
name from v$parameter where name='lock_sga';

 show parameter lock_sga;          

2.用来查询当前数据库所有控制文件信息
 SQL> select * from v$controlfile;
STATUS  NAME                                                                             IS_RECOVERY_DEST_FILE BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------------------------------------- --------------------- ---------- --------------
        G:\ORADATA\ORACLE\CONTROL01.CTL                                                  NO                         16384            430
        G:\ORADATA\ORACLE\CONTROL02.CTL                                                  NO                         16384            430
        G:\ORADATA\ORACLE\CONTROL03.CTL                                                  NO                         16384            430
 3.查询当前数据库所有重作日志文件信息
SQL> select * from v$logfile;
    GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE
---------- ------- ------- -------------------------------------------------------------------------------- ---------------------
         3         ONLINE  G:\ORADATA\ORACLE\REDO03.LOG                                                     NO
         2         ONLINE  G:\ORADATA\ORACLE\REDO02.LOG                                                     NO
         1 STALE   ONLINE  G:\ORADATA\ORACLE\REDO01.LOG                                                 NO
 4、日志信息
select * from V$log;
5、用来获取当前实例的详细信息
 SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME                                                        VERSION           STARTUP_TIME STATUS       PARALLEL    THREAD# ARCHIVER LOG_SWITCH_WAIT LOGINS     SHUTDOWN_PENDING DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_STATE
BLOCKED

              1 oracle           PC-201509230003                                                  10.2.0.1.0        2015/10/25 星 OPEN  
6、获取当前实例中SGA的详细信息
SQL> select * from v$sga;

 

NAME                      VALUE

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

Fixed Size              1248600

Variable Size          88081064

Database Buffers      197132288

Redo Buffers            7139328
7.用来查询当前会话信息
select * from v$session;
select distinct USERNAME from  v$session;
kill session
             altersystem kill session 'sid,serial#'
8、用来查询后台进程的详细信息
select * from v$bgprocess
9、获取当前数据库的详细信息
select name from v$database; 
10、查用户、数据文件、表空间
select * from all_users;
select name from v$datafile;  
select name from v$tablespace;
查看用户默认表空间
select default_tablespace,temporary_tablespace from dba_users where username='SCOTT';
一般用户
查看表tab
select * from tab;
查看列col
select * from col where rownum<10;
查看index
select index_name from ind where table_name='EMP';
序列
select * from seq;
视图:
select * from user_views;
查看默认表空间
select username,default_tablespace from user_users;
查看用户下所有的表 
SQL>select * from user_tables;
查看表大小
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name='EMP';
查看索引
select index_name,index_type,table_name from user_indexes order by table_name;
select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name='EMP_EMP_ID_PK';
查看序号
select * from user_sequences;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: