ALTER SESSION
세션 단위의 자원을 관리하거나 설정을 변경하는 구문이다.
SET SQL_LOGGING
=Flagalter_session_sql_logging_stmt:
Code Block |
---|
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을 함께 로깅하는 것이다.
아래는 해당 세션의 로깅 플래그를 변경하고, 에러 로깅을 남기는 예제이다.
Code Block |
---|
[mach@localhost bin]$ machsql ================================================================= Machbase Client Query Utility Release Version 3.0.0 Copyright 2014, Machbase Inc. or its subsidiaries. All Rights Reserved. ================================================================= Machbase server address (Default:127.0.0.1): Machbase user ID (Default:SYS) Machbase user password: MACHBASE_CONNECT_MODE=INET, PORT=5656 Mach> alter session set SQL_LOGGING=1; Altered successfully. Mach> alter session set SQL_LOGGING=1; Altered successfully. Mach> exit |
SET DEFAULT_DATE_FORMAT
=Stringalter_session_set_defalut_dateformat_stmt:
Code Block |
---|
alter_session_set_defalut_dateformat_stmt ::= 'ALTER SESSION SET DEFAULT_DATE_FORMAT' '=' date_format |
이 명령은 해당 세션의 Default Date Format을 설정하는 명령어이다. Datetime 자료형의 기본 포맷을 설정한다.
서버가 구동되면, 전역 프로퍼티인 Property 인 DEFAULT_DATE_FORMAT의 FORMAT 의 값이 세션 속성으로 설정이 되고 그 값은 된다.
Property 의 속성이 바뀌지 않았다면, 세션의 값 또한 "YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn"이다. 만일 사용자가 특정 Date Format을 수정할 이 될 것이다.
시스템과 무관하게, 특정 사용자에 한해 Datetime 자료형의 기본 포맷을 수정할 경우에 이 명령어를 사용한다. v$session에
v$session 에 해당 세션마다 설정된 Default Date Format 이 있고 확인도 할 수 있다. 아래는 해당 세션의 값을 확인 및 변경하는 예제이다.
Code Block |
---|
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
=Valuealter_session_set_hidden_column_stmt:
Code Block |
---|
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 값이 있으며, 확인할 수 있다.
Code Block |
---|
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
=flagalter_session_set_feedback_append_err_stmt:
Code Block |
---|
alter_session_set_feedback_append_err_stmt ::= 'ALTER SESSION SET FEEDBACK_APPEND_ERROR' '=' ( '0' | '1' ) |
이 명령은 해당 세션의 Append 에러 메시지를 Client program으로 보낼 것인지를 설정한다.
에러 메시지는 다음의 값을 사용하면 된다.
- 0 = 에러 메시지를 보내지 않는다.
- 1 = 에러 메시지를 보낸다.
아래는 사용 예제이다.
Code Block |
---|
mach> ALTER SESSION SET FEEDBACK_APPEND_ERROR=0; Altered successfully. |
SET HASH_BUCKET_SIZE
=Valuealter_session_set_hash_bucket_size_stmt:
Code Block |
---|
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 정도의 값을 지정하는것이 좋다.
Code Block |
---|
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
=Valuealter_session_set_max_qpx_mem_stmt:
Code Block |
---|
alter_session_set_max_qpx_mem_stmt ::= 'ALTER SESSION SET MAX_QPX_MEM' '=' value |
이 명령은 해당 세션의 하나의 SQL Statement가 GROUP BY, DISTINCT, ORDER BY 연산을 수행할때 사용하는 최대 메모리의 크기를 지정한다.
만약 최대 메모리 이상의 메모리 할당을 시도하면, 시스템은 그 SQL문의 수행을 취소하고 오류로 처리하며, 처리한다.
오류 발생 시 machbase.trc에 해당 질의문을 포함한 에러코드 에러 코드 및 에러메시지를 에러 메시지를 기록한다.
Code Block |
---|
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> |