V$SPPARAMETER 뷰는 SPFILE(Server Parameter File)의 내용을 표시합니다.
V$SPPARAMETER displays information about the contents of the server parameter file. If a server parameter file was not used to start the instance, then each row of the view will contain FALSE in the ISSPECIFIED column.
아래는 Real Application Clusters Administration and Deployment Guide의 Setting SPFILE Parameter Values for Oracle RAC 항목의 SPFILE에 대한 설명입니다. V$SPPARAMETER 뷰의 sid 칼럼은 마침표(.) 앞의 값을 표시합니다.
The value before the period (.) in an SPFILE entry identifies the instance to which the particular parameter value belongs. When an asterisk (*) precedes the period, the value is applied to all instances that do not have a subsequent, individual value listed in the SPFILE.
아래는 GV$PARAMETER 뷰와 V$SPPARAMETER 뷰에서 optimizer_dynamic_sampling 파라미터를 검색한 결과입니다. V$SPPARAMETER 뷰는 기본 값인 파라미터에 대해 sid를 *, value를 널로 표시합니다.
-- 1-1
SELECT inst_id, name, value FROM gv$parameter WHERE name = 'optimizer_dynamic_sampling';
INST_ID NAME VALUE
------- -------------------------- -----
1 optimizer_dynamic_sampling 2
2 optimizer_dynamic_sampling 2
2 행이 선택되었습니다.
-- 1-2
SELECT sid, name, value, ordinal FROM v$spparameter WHERE name = 'optimizer_dynamic_sampling';
SID NAME VALUE ORDINAL
--- -------------------------- ----- -------
* optimizer_dynamic_sampling 0
1개의 행이 선택되었습니다.
db1 인스턴스의 optimizer_dynamic_sampling 파라미터를 1로 설정하면 V$SPPARAMETER 뷰는 sid가 db1인 로우만 반환합니다. 이 상태에서 1, 2번 인스턴스를 재기동하면 optimizer_dynamic_sampling 파라미터 값이 1번 인스턴스는 1, 2번 인스턴스는 기본값인 2로 설정됩니다.
-- 2-1
ALTER SYSTEM SET optimizer_dynamic_sampling = 1 SCOPE = BOTH SID = 'db1';
시스템이 변경되었습니다.
-- 2-2
SELECT inst_id, name, value FROM gv$parameter WHERE name = 'optimizer_dynamic_sampling';
INST_ID NAME VALUE
------- -------------------------- -----
1 optimizer_dynamic_sampling 1
2 optimizer_dynamic_sampling 2
2 행이 선택되었습니다.
-- 2-3
SELECT sid, name, value, ordinal FROM v$spparameter WHERE name = 'optimizer_dynamic_sampling';
SID NAME VALUE ORDINAL
--- -------------------------- ----- -------
db1 optimizer_dynamic_sampling 1 1
1개의 행이 선택되었습니다.
sid를 *로 지정해 전체 인스턴스의 optimizer_dynamic_sampling 파라미터를 3로 설정하면 V$SPPARAMETER 뷰는 sid가 db1인 로우와 sid가 *인 로우를 함께 반환합니다. 이 상태에서 1, 2번 인스턴스를 재기동하면 optimizer_dynamic_sampling 파라미터 값이 1번 인스턴스는 1, 2번 인스턴스는 3으로 설정됩니다.
-- 3-1
ALTER SYSTEM SET optimizer_dynamic_sampling = 3 SCOPE = BOTH SID = '*';
시스템이 변경되었습니다.
-- 3-2
SELECT inst_id, name, value FROM gv$parameter WHERE name = 'optimizer_dynamic_sampling';
INST_ID NAME VALUE
------- -------------------------- -----
1 optimizer_dynamic_sampling 3
2 optimizer_dynamic_sampling 3
2 행이 선택되었습니다.
-- 3-3
SELECT sid, name, value, ordinal FROM v$spparameter WHERE name = 'optimizer_dynamic_sampling';
SID NAME VALUE ORDINAL
--- -------------------------- ----- -------
db1 optimizer_dynamic_sampling 1 1
* optimizer_dynamic_sampling 3 1
2 행이 선택되었습니다.
db1 인스턴스의 optimizer_dynamic_sampling 파라미터를 reset하면 V$SPPARAMETER 뷰는 sid가 *인 로우만 반환합니다. 이 상태에서 1, 2번 인스턴스를 재기동하면 optimizer_dynamic_sampling 파라미터 값이 1, 2번 인스턴스 모두 1로 설정됩니다.
-- 4-1
ALTER SYSTEM RESET optimizer_dynamic_sampling SCOPE = BOTH SID = 'db1';
시스템이 변경되었습니다.
-- 4-2
SELECT inst_id, name, value FROM gv$parameter WHERE name = 'optimizer_dynamic_sampling';
INST_ID NAME VALUE
------- -------------------------- -----
1 optimizer_dynamic_sampling 2
2 optimizer_dynamic_sampling 3
2 행이 선택되었습니다.
-- 4-3
SELECT sid, name, value, ordinal FROM v$spparameter WHERE name = 'optimizer_dynamic_sampling';
SID NAME VALUE ORDINAL
--- -------------------------- ----- -------
* optimizer_dynamic_sampling 3 1
1개의 행이 선택되었습니다.
전체 인스턴스의 optimizer_dynamic_sampling 파라미터를 reset하면 V$SPPARAMETER 뷰는 sid가 *, value가 널인 로우를 반환합니다. 이 상태에서 1, 2번 인스턴스를 재기동하면 optimizer_dynamic_sampling 파라미터가 1, 2번 인스턴스 모두 기본값인 2로 설정됩니다.
-- 5-1
ALTER SYSTEM RESET optimizer_dynamic_sampling SCOPE = BOTH;
시스템이 변경되었습니다.
-- 5-2
SELECT inst_id, name, value FROM gv$parameter WHERE name = 'optimizer_dynamic_sampling';
INST_ID NAME VALUE
------- -------------------------- -----
1 optimizer_dynamic_sampling 2
2 optimizer_dynamic_sampling 2
2 행이 선택되었습니다.
-- 5-3
SELECT sid, name, value, ordinal FROM v$spparameter WHERE name = 'optimizer_dynamic_sampling';
SID NAME VALUE ORDINAL
--- -------------------------- ----- -------
* optimizer_dynamic_sampling 0
1개의 행이 선택되었습니다.