์์คํ /์ธ์ ๊ด๋ฆฌ
CHECK DISK_USAGE
alter_system_check_disk_stmt:
alter_system_check_disk_stmt ::= 'ALTER SYSTEM CHECK DISK_USAGE'
V$STORAGE์์ Log Table์ ๋์คํฌ ์ฌ์ฉ๋์ ๋ํ๋ด๋ DC_TABLE_FILE_SIZEย ์ ๊ฐ์ ๋ณด์ ํ๋ค.
Process Failure๋ Power Failure ๋ฐ์์ ๋์คํฌ ์ฌ์ฉ๋์ด ๋ถ์ ํํ ์ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ํตํด์ ํ์ผ ์์คํ ์ผ๋ก๋ถํฐ ์ ํํ ๊ฐ์ ์ฝ์ด์จ๋ค. ํ์ง๋ง ํ์ผ ์์คํ ์ ์๋นํ ๋ถํ๋ฅผ ์ค ์ ์๊ธฐ ๋๋ฌธ์ ์ง์ํด์ผ ํ๋ค.
INSTALL LICENSE
alter_system_install_license_stmt:
alter_system_install_license_stmt ::= 'ALTER SYSTEM INSTALL LICENSE'
๋ผ์ด์ ์ค ํ์ผ์ ๊ธฐ๋ณธ์์น($MACHBASE_HOME/conf/license.dat)์ ๋ผ์ด์ ์ค ํ์ผ์ ์ค์นํ๋ค.
ํด๋น ๋ผ์ด์ ์ค๊ฐ ์ค์น์ ์ ํฉํ์ง ํ๋ณ ํ ์ค์น๋๋ค.
INSTALLย LICENSE (PATH)
alter_system_install_license_path_stmt:
alter_system_install_license_path_stmt: ::= 'ALTER SYSTEM INSTALL LICENSE' '=' "'" path "'"
ํน์ ์์น์ ์๋ ๋ผ์ด์ ์ค ํ์ผ์ ์ค์นํ๋ค.
ํด๋น ์์น์ ์กด์ฌํ์ง ์๊ฑฐ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๋ผ์ด์ ์ค ํ์ผ์ ์ ๋ ฅํ์ ์์๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๊ฒฝ๋ก๋ ๋ฐ๋์ย ์ ๋๊ฒฝ๋ก๋ก ์ ๋ ฅํด์ผ ํ๋ค. ํด๋น ๋ผ์ด์ ์ค๊ฐ ์ค์น์ ์ ํฉํ์ง ํ๋ณ ํ ์ค์น๋๋ค.
SET
alter_system_set_stmt:
alter_system_set_stmt ::= 'ALTER SYSTEM SET' prop_name '=' value
System ์ Property ๋ฅผ ์์ ํ ์ ์๋ค. ์์ ๊ฐ๋ฅํ Property ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- QUERY_PARALLEL_FACTOR
- DEFAULT_DATE_FORMAT
- TRACE_LOG_LEVEL
- PAGE_CACHE_MAX_SIZE
ALTER SESSION
์ธ์ ๋จ์์ ์์์ ๊ด๋ฆฌํ๊ฑฐ๋ ์ค์ ์ ๋ณ๊ฒฝํ๋ ๊ตฌ๋ฌธ์ด๋ค.
SETย SQL_LOGGING
alter_session_sql_logging_stmt:
alter_session_sql_logging_stmt ::= 'ALTER SESSION SET SQL_LOGGING' '=' flag
ํด๋น ์ธ์ ์ Trace Log์ ๋ฉ์์ง๋ฅผ ๋จ๊ธธ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค.
์ด ๋ฉ์์ง๋ฅผ Bit Flag ๋ก์ ๋ค์์ ๊ฐ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
- 0x1 : Parsing, Validation, Optimization ๋จ๊ณ์์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ๋จ๊ธด๋ค.
- 0x2 : DDL์ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ๋จ๊ธด๋ค.
์ฆ, ํด๋น ํ๋๊ทธ์ ๊ฐ์ด 2์ผ ๊ฒฝ์ฐ์๋ DDL๋ง ๋ก๊น ํ๊ณ , 3์ผ ๊ฒฝ์ฐ์๋ ์๋ฌ ๋ฐ DDL์ ํจ๊ป ๋ก๊น ํ๋ ๊ฒ์ด๋ค.
์๋๋ ํด๋น ์ธ์ ์ ๋ก๊น ํ๋๊ทธ๋ฅผ ๋ณ๊ฒฝํ๊ณ , ์๋ฌ ๋ก๊น ์ ๋จ๊ธฐ๋ ์์ ์ด๋ค.
Mach> alter session set SQL_LOGGING=1; Altered successfully. Mach> exit
SETย DEFAULT_DATE_FORMAT
alter_session_set_defalut_dateformat_stmt:
alter_session_set_defalut_dateformat_stmt ::= 'ALTER SESSION SET DEFAULT_DATE_FORMAT' '=' date_format
ํด๋น ์ธ์ ์ Datetime ์๋ฃํ์ ๊ธฐ๋ณธ ํฌ๋งท์ ์ค์ ํ๋ค.
์๋ฒ๊ฐ ๊ตฌ๋๋๋ฉด, Property ์ธย DEFAULT_DATE_FORMAT ์ ๊ฐ์ด ์ธ์
์์ฑ์ผ๋ก ์ค์ ์ด ๋๋ค.
Property ์ ์์ฑ์ด ๋ฐ๋์ง ์์๋ค๋ฉด, ์ธ์
์ ๊ฐ ๋ํ "YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn"์ด ๋ ๊ฒ์ด๋ค.
์์คํ
๊ณผ ๋ฌด๊ดํ๊ฒ, ํน์ ์ฌ์ฉ์์ ํํด Datetime ์๋ฃํ์ ๊ธฐ๋ณธ ํฌ๋งท์ย ์์ ํ ๊ฒฝ์ฐ์ ์ด ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
v$session ์ ํด๋น ์ธ์ ๋ง๋ค ์ค์ ๋ Default Date Format ์ด ์๊ณ ํ์ธ๋ ํ ์ ์๋ค. ์๋๋ ํด๋น ์ธ์ ์ ๊ฐ์ ํ์ธ ๋ฐ ๋ณ๊ฒฝํ๋ ์์ ์ด๋ค.
Mach> CREATE TABLE time_table (time datetime); Created successfully. Mach> SELECT DEFAULT_DATE_FORMAT from v$session; default_date_format ----------------------------------------------- YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn [1] row(s) selected. Mach> INSERT INTO time_table VALUES(TO_DATE('2016-11-11')); [ERR-00300 : Invalid date format or input string.([2016-11-11]:[%Y-%m-%d %H:%M:%S %0:%1:%2])] Mach> ALTER SESSION SET DEFAULT_DATE_FORMAT='YYYY-MM-DD'; Altered successfully. Mach> SELECT DEFAULT_DATE_FORMAT from v$session; default_date_format ---------------------------------------------- YYYY-MM-DD [1] row(s) selected. Mach> INSERT INTO time_table VALUES(TO_DATE('2016-11-11')); 1 row(s) inserted. Mach> SELECT * FROM time_table; TIME ---------------------------------- 2016-11-11 [1] row(s) selected.
SETย SHOW_HIDDEN_COLS
alter_session_set_hidden_column_stmt:
alter_session_set_hidden_column_stmt ::= 'ALTER SESSION SET SHOW_HIDDEN_COLS' '=' ( '0' | '1' )
ํด๋น ์ธ์ ์ select ์ํ์ *๋ก ํํ๋ ์ปฌ๋ผ์์ ์จ์ ์ปฌ๋ผ (_arrival_time)์ ์ถ๋ ฅํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ค.
์๋ฒ๊ฐ ๊ตฌ๋๋๋ฉด, ์ ์ญ ํ๋กํผํฐ์ธ SHOW_HIDDEN_COLS์ ๊ฐ์ด ์ธ์
์์ฑ์ผ๋ก 0์ด ์ค์ ๋๋ค.
๋ง์ผ ์ฌ์ฉ์๊ฐ ์๊ธฐ ์ธ์
์ ๊ธฐ๋ณธ ๋์์ ๋ณ๊ฒฝํ๊ณ ์ ํ ๊ฒฝ์ฐ์๋ ์ด ๊ฐ์ 1๋ก ์ค์ ํ๋ฉด ๋๋ค.
v$session์ ํด๋น ์ธ์ ๋ง๋ค ์ค์ ๋ SHOW_HIDDEN_COLS ๊ฐ์ด ์์ผ๋ฉฐ, ํ์ธํ ์ ์๋ค.
Mach> SELECT * FROM v$session; ID CLOSED USER_ID LOGIN_TIME SQL_LOGGING SHOW_HIDDEN_COLS ----------------------------------------------------------------------------------------------------------------- DEFAULT_DATE_FORMAT HASH_BUCKET_SIZE ------------------------------------------------------------------------------------------------------ 1 0 1 2015-04-29 17:23:56 248:263:000 3 0 YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn 20011 [1] row(s) selected. Mach> ALTER SESSION SET SHOW_HIDDEN_COLS=1; Altered successfully. Mach> SELECT * FROM v$session; _ARRIVAL_TIME ID CLOSED USER_ID LOGIN_TIME SQL_LOGGING -------------------------------------------------------------------------------------------------------------------------------- SHOW_HIDDEN_COLS DEFAULT_DATE_FORMAT HASH_BUCKET_SIZE ------------------------------------------------------------------------------------------------------------------------ 1970-01-01 09:00:00 000:000:000 1 0 1 2015-04-29 17:23:56 248:263:000 3 1 YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn 20011 [1] row(s) selected.
SET FEEDBACK_APPEND_ERROR
alter_session_set_feedback_append_err_stmt:
alter_session_set_feedback_append_err_stmt ::= 'ALTER SESSION SET FEEDBACK_APPEND_ERROR' '=' ( '0' | '1' )
ํด๋น ์ธ์ ์ Append ์๋ฌ ๋ฉ์์ง๋ฅผ Client program์ผ๋ก ๋ณด๋ผ ๊ฒ์ธ์ง๋ฅผ ์ค์ ํ๋ค.
์๋ฌ ๋ฉ์์ง๋ ๋ค์์ ๊ฐ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
- 0 = ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ง ์๋๋ค.
- 1 = ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.
์๋๋ ์ฌ์ฉ ์์ ์ด๋ค.
mach> ALTER SESSION SET FEEDBACK_APPEND_ERROR=0; Altered successfully.
SETย HASH_BUCKET_SIZE
alter_session_set_hash_bucket_size_stmt:
alter_session_set_hash_bucket_size_stmt ::= 'ALTER SESSION SET HASH_BUCKET_SIZE' '=' value
ํด๋น ์ธ์ ์ GROUP BY ๋๋ Distinct ์ฐ์ฐ์ ์ํํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ Hash Table์ ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋ค.
์ด ๊ฐ์ ๋๋ฌด ํฐ ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด ๋งค Hash ์ฐ์ฐ๋ง๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋๋ฉฐ, ๋๋ฌด ์์ ๊ฐ์ ์ง์ ํ๋ฉด Hash bucket conflict๊ฐ ๋ฐ์ํ์ฌ ์ง์ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
์ ์ฒด GROUP์ ์ * 1.5 ์์ 3.0 ์ ๋์ ๊ฐ์ ์ง์ ํ๋๊ฒ์ด ์ข๋ค.
Mach> ALTER SESSION SET HASH_BUCKET_SIZE=65536; Altered successfully. Mach> SELECT * FROM v$session; _ARRIVAL_TIME ID CLOSED USER_ID LOGIN_TIME SQL_LOGGING -------------------------------------------------------------------------------------------------------------------------------- SHOW_HIDDEN_COLS DEFAULT_DATE_FORMAT HASH_BUCKET_SIZE ------------------------------------------------------------------------------------------------------------------------ 1970-01-01 09:00:00 000:000:000 1 0 1 2015-04-29 17:23:56 248:263:000 3 1 YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn 65536 [1] row(s) selected.
SETย MAX_QPX_MEM
alter_session_set_max_qpx_mem_stmt:
alter_session_set_max_qpx_mem_stmt ::= 'ALTER SESSION SET MAX_QPX_MEM' '=' value
ํด๋น ์ธ์ ์ ํ๋์ SQL Statement๊ฐ GROUP BY, DISTINCT, ORDER BY ์ฐ์ฐ์ ์ํํ ๋ ์ฌ์ฉํ๋ ์ต๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ค.
๋ง์ฝ ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์ด์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์๋ํ๋ฉด, ์์คํ
์ ๊ทธ SQL๋ฌธ์ ์ํ์ ์ทจ์ํ๊ณ ์ค๋ฅ๋ก ์ฒ๋ฆฌํ๋ค.
์ค๋ฅ ๋ฐ์ ์ machbase.trc์ ํด๋น ์ง์๋ฌธ์ ํฌํจํ ์๋ฌ ์ฝ๋ ๋ฐ ์๋ฌ ๋ฉ์์ง๋ฅผ ๊ธฐ๋กํ๋ค.
Mach> ALTER SESSION SET MAX_QPX_MEM=1073741824; Altered successfully. Mach> SELECT * FROM v$session; ID CLOSED USER_ID LOGIN_TIME SQL_LOGGING SHOW_HIDDEN_COLS FEEDBACK_APPEND_ERROR ---------------------------------------------------------------------------------------------------------------------------------------- DEFAULT_DATE_FORMAT HASH_BUCKET_SIZE MAX_QPX_MEM ---------------------------------------------------------------------------------------------------------------------------- 324 0 1 2015-07-14 10:53:46 124:627:000 11 0 0 YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn 20011 1073741824 [1] row(s) selected. Mach>
Mach> insert into tag values('TAG_0001', now, 1); [ERR-01423 : TAG cache exhausted, increase TAG_CACHE_MAX_MEMORY_SIZE(536870912)]
- ์ต๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ ์ด์์ SQL๋ฌธ์์ ์ฌ์ฉํ์ ๋, trc ์๋ฌ
[2021-03-08 16:36:32 P-69000 T-140515328653056][INFO] DML FAILURE (2E10000084:Memory allocation error (alloc'd: 1048595, max: 1048576).)
- ์ต๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ ์ด์์ SQL๋ฌธ์์ ์ฌ์ฉํ์ ๋, machsql ์๋ฌ ๋ฉ์ธ์ง
Mach> select * from tag order by value DESC, time ASC; NAME TIME VALUE -------------------------------------------------------------------------------------- [ERR-00132: Memory allocation error (alloc'd: 1048595, max: 1048576).] [0] row(s) selected. Elapsed time: 0.447
( * ์์ trc ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด์, ์์๋ก ์ต๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ 1MB๋ก ๋ณ๊ฒฝํ ํ ์๋ฌ๋ฅผ ํ์ธํ์๋ค. )
SETย SESSION_IDLE_TIMEOUT_SEC
alter_session_set_session_idle_timeout_sec_stmt:
alter_session_set_session_idle_timeout_sec_stmt ::= 'ALTER SESSION SET SESSION_IDLE_TIMEOUT_SEC' '=' value
ํด๋น ์ธ์ ์ด ์ ํด ์ํ์ผ ๋์ ์ฐ๊ฒฐ ์ ์ง ์๊ฐ์ ์ง์ ํ๋ค.
์ด๋จ์๋ก ์ง์ ํ๋ฉฐ ์ ํด ์ํ๋ก ์ค์ ๋ ์๊ฐ์ด ์ง๋๊ฒ ๋๋ฉด ์ธ์ ์ด ์ข ๋ฃ๋๋ค.
v$session ์์ ์ธ์ ์ ์ค์ ๋ idle timeout ์๊ฐ์ ์กฐํํ ์ ์๋ค.
Mach> ALTER SESSION SET SESSION_IDLE_TIMEOUT_SEC=200; Altered successfully. Mach> SELECT IDLE_TIMEOUT FROM V$SESSION; IDLE_TIMEOUT ----------------------- 200 [1] row(s) selected.
SETย QUERY_TIMEOUT
alter_session_set_query_timeout_stmt:
alter_session_set_query_timeout_stmt ::= 'ALTER SESSION SET QUERY_TIMEOUT' '=' value
์ธ์ ์์ Query๋ฅผ ์ํ ์ ์๋ฒ์ ์๋ต์ ๋๊ธฐํ๋ ์๊ฐ์ด๋ค.
์ด๋จ์๋ก ์ง์ ํ๋ฉฐ Query ์ํ ํ ์๋ฒ์์์ ์๋ต์ด ์ง์ ๋ ์๊ฐ์ ์ด๊ณผํ๋ฉด Query๊ฐ ์ข ๋ฃ๋๋ค.
v$session์์ ์ธ์ ์ ์ค์ ๋ Query timeout ์๊ฐ์ ์กฐํํ ์ ์๋ค.
Mach> ALTER SESSION SET QUERY_TIMEOUT=200; Altered successfully. Mach> SELECT QUERY_TIMEOUT FROM V$SESSION; QUERY_TIMEOUT ----------------------- 200 [1] row(s) selected.