1. 如何查看一个参数是动态还是静态的
参数我们可以在v$parameter中查到。
COLUMN VALUE FORMAT a40;
COLUMN NAME FORMAT a20;
SELECT NAME,VALUE,ISSES_MODIFIABLE,ISSYS_ MODIFIABLE FROM V$SYSTEM_PARAMETER;
这里有两个列isses_modifiable和issys_modifiable 分别对应的是SESSION级别修改的参数和SYSTEM级别修改的参数。
如果isses_modifiable=true,表明这个参数可以在SESSION级别可以修改,并且立即生效。false就是不能修改。
ALTER SESSION set sql_trace=true;
如果issys_modifiable=immediate,表示这个参数可以在SYSTEM立即修改,并且立即生效。
ALTER SYSTEM set sql_trace=true;
若如果issys_modifiable=deferred,表示这个参数不能在直接修改在内存中,需要加scope=spfile,重启后才能生效。
ALTER SYSTEM set asm_diskstring=’oracle_group’ scope=spfile ;
若issys_modifiable=false 必须重启实例才能够生效。。
IMMEDIATE:动态参数,立刻生效
DEFERRED:动态参数,对以后建立的SESSION生效,仍然连接的SESSION保持原有属性
FALSE:静态参数,必须重启实例才能够生效。
■ MMEDIATE - Parameter can be changed with ALTER SYSTEM regardless of the type of parameter file used to start the instance. The change takes effect immediately.
■ DEFERRED - Parameter can be changed with ALTER SYSTEM regardless of the type of parameter file used to start the instance. The change takes effect in subsequent sessions.
■ FALSE - Parameter cannot be changed with ALTER SYSTEM unless a server parameter file was used to start the instance. The change takes effect in subsequent instances.
2. 区别ALTER DATABASE ,ALTER SYSTEM ,ALTER SESSION;
ALTER DATABASE: 数据库级
ALTER SYSTEM: 实例级
ALTER SESSION: 会话级
ALTER DATABASE 数据文件、表空间、日志文件等等,和物理上的文件有关系的一些变更,也就是对数据库的更改,一般改变的是物理上的,通过ALTER DATABASE操作时会触发controlfile header和其他一些物理文件头信息的变化 能看得见的
比如 :ALTER dtabase rename datafile
ALTER SYSTEM 动态的改变数据库例程的属性 一般是逻辑上的 看不见的
比如:ALTER SYSTEM set db_cache_size
ALTER SESSION 改变的的是一个会话的属性 逻辑上的 看不见的
比如:ALTER SESSION set nls_language
3. 如何查看表空间或表的创建结构
a. 查看表空间的创建结构
Set long 2000
Select
sys.dbms_metadata.get_ddl(‘TABLESPACE’,’TABLESPACE_NAME’)
FROM DUAL;
b. 查看用户表/索引的创建结构
Select sys.dbms_metadata.get_ddl(‘TABLE’,’TABLE_NAME’,’USERNAME’) FROM DUAL;
Select sys.dbms_metadata.get_ddl(‘INDEX’,’INDEX_NAME’,’USERNAME’) FROM DUAL;
c. 查看用户创建的procedure结构
Select sys.dbms_metadata.get_ddl(‘PROCEDURE’,’PROCEDURE_NAME’) FROM DUAL;
4. 查看表空间中包含的所有对象
SELECT owner,segment_name
FROM dba_extents
WHERE tablespace_name=upper(‘tablespace_name’)
AND segment_type=upper(‘table_name’)
OR segment_type=upper(‘index_name’);
5. 查看oracle 数据库中所有的对象
Select * from dba_source;
6. 查看某个视图建立时所对应的X$视图
Select * from v$fixed_view_definition
Where view_name=’GV$FIXED_TABLE’;
7. 最后给出一些很有用的数据字典及视图
DICT; DICT_COLUMNS; DUAL; IND;
OBJ; SEQ; SYN; TAB;
V$fixed_view_definition;
V$fixed_table;
V$indexed_fixed_column;
一些常用的动态性能视图:
V$instance;取得当前实例的详细信息
V$sga; 显示SGA主要的组成部分
V$sgainfo;取得SGA各个部分详细信息
V$parameter;取得初始化参数的详细信息
V$version;取得数据库的版本信息
V$option;显示已安装的oracle选项,true表示已安装
V$session;显示会话的详细信息
V$process;显示与oracle相关的所有进程信息
V$database;显示数据库详细信息
V$bgprocess;显示后台进程的详细信息
V$controlfile;显示控制文件的信息
V$datafile;显示所有数据文件的详细信息
V$dbfile;取得数据库文件的编号及名称
V$logfile;显示重做日志成员的信息
V$log;显示log组的详细信息
V$thread;显示重做线程的详细信息(一般为1)rac 除外
V$lock;显示锁的信息,通过与v$session进行联接查询,可以显示占有锁的会话
V$lock_object;显示被锁的对象,通过与dba_object 联接询,可以显示具体对象名和执行加锁的操作的用户。
V$rollname,v$rollstat;显示处于online状态的undo段,而v$rollstat 显示undo段统计信息,通过二者之间的联接查询可以显示undo段的详细统计信息
V$tablespace;显示表空间的信息
V$tempfile;显示当前数据库所包含的临时文件
session_privs;显示当前用户所有的权限。