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;