SHOW¶
DESC, DESCRIBE¶
테이블의 칼럼 정보를 출력하며 SHOW COLUMNS 문과 같다. 보다 자세한 사항은 SHOW COLUMNS를 참고한다.
DESC [schema_name.]table_name;
DESCRIBE [schema_name.]table_name;
EXPLAIN¶
테이블의 칼럼 정보를 출력하며 SHOW COLUMNS 문과 같다. 보다 자세한 사항은 SHOW COLUMNS를 참고한다.
EXPLAIN [schema_name.]table_name;
SHOW TABLES¶
데이터베이스의 전체 테이블 이름 목록을 출력한다. 결과 칼럼의 이름은 tables_in_<데이터베이스 이름> 이 되며 하나의 칼럼을 지닌다. LIKE 절을 사용하면 이와 매칭되는 테이블 이름을 검색할 수 있으며, WHERE 절을 사용하면 좀더 일반적인 조건으로 테이블 이름을 검색할 수 있다. SHOW FULL TABLES 는 owner 칼럼과 table_type 칼럼을 함께 출력한다. owner 컬럼은 소유자 이름을 값으로 가진다. table_type 칼럼은 테이블이면 BASE TABLE, 뷰이면 VIEW를 값으로 가진다.
SHOW [ FULL ] TABLES [ LIKE 'pattern' | WHERE expr ];
다음은 이 구문을 수행한 예이다.
SHOW TABLES;
Tables_in_demodb
======================
'athlete'
'code'
'event'
'game'
'history'
'nation'
'olympic'
'participant'
'record'
'stadium'
SHOW FULL TABLES;
Tables_in_demodb Owner Table_type
==================================================================
'athlete' 'PUBLIC' 'BASE TABLE'
'code' 'PUBLIC' 'BASE TABLE'
'event' 'PUBLIC' 'BASE TABLE'
'game' 'PUBLIC' 'BASE TABLE'
'history' 'PUBLIC' 'BASE TABLE'
'nation' 'PUBLIC' 'BASE TABLE'
'olympic' 'PUBLIC' 'BASE TABLE'
'participant' 'PUBLIC' 'BASE TABLE'
'record' 'PUBLIC' 'BASE TABLE'
'stadium' 'PUBLIC' 'BASE TABLE'
SHOW FULL TABLES LIKE '%c%';
Tables_in_demodb Owner Table_type
==================================================================
'code' 'PUBLIC' 'BASE TABLE'
'olympic' 'PUBLIC' 'BASE TABLE'
'participant' 'PUBLIC' 'BASE TABLE'
'record' 'PUBLIC' 'BASE TABLE'
SHOW FULL TABLES WHERE table_type = 'BASE TABLE' and TABLES_IN_demodb LIKE '%co%';
Tables_in_demodb Owner Table_type
==================================================================
'code' 'PUBLIC' 'BASE TABLE'
'record' 'PUBLIC' 'BASE TABLE'
SHOW COLUMNS¶
테이블의 칼럼 정보를 출력한다. LIKE 절을 사용하면 이와 매칭되는 칼럼 이름을 검색할 수 있다. WHERE 절을 사용하면 “모든 SHOW 문에 대한 일반적인 고려 사항”과 같이 좀 더 일반적인 조건으로 칼럼 이름을 검색할 수 있다.
SHOW [FULL] COLUMNS (FROM | IN) [schema_name.]table_name [LIKE 'pattern' | WHERE expr];
FULL 키워드를 사용하면 collation 및 comment 를 추가로 출력한다.
SHOW FIELDS 는 SHOW COLUMNS 와 같은 구문이다.
DESCRIBE (또는 줄여서 DESC) 문과 EXPLAIN 문은 SHOW COLUMNS와 같은 정보를 제공하지만, LIKE 절 또는 WHERE 절은 지원하지 않는다.
해당 구문은 다음과 같은 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Field |
VARCHAR |
칼럼 이름 |
Type |
VARCHAR |
칼럼의 데이터 타입 |
Null |
VARCHAR |
NULL 을 저장할 수 있으면 YES, 불가능하면 NO |
Key |
VARCHAR |
|
Default |
VARCHAR |
칼럼에 정의된 기본값 |
Extra |
VARCHAR |
주어진 칼럼에 대해 가능한 추가 정보. AUTO_INCREMENT 속성인 칼럼은 ‘auto_increment’라는 값을 갖는다. |
다음은 이 구문을 수행한 예이다.
SHOW COLUMNS FROM athlete;
Field Type Null Key Default Extra
================================================================================================================
'code' 'INTEGER' 'NO' 'PRI' NULL 'auto_increment'
'name' 'VARCHAR(40)' 'NO' '' NULL ''
'gender' 'CHAR(1)' 'YES' '' NULL ''
'nation_code' 'CHAR(3)' 'YES' '' NULL ''
'event' 'VARCHAR(30)' 'YES' '' NULL ''
SHOW COLUMNS FROM athlete WHERE field LIKE '%c%';
Field Type Null Key Default Extra
================================================================================================================
'code' 'INTEGER' 'NO' 'PRI' NULL 'auto_increment'
'nation_code' 'CHAR(3)' 'YES' '' NULL ''
SHOW COLUMNS FROM athlete WHERE "type" = 'INTEGER' and "key"='PRI' AND extra='auto_increment';
Field Type Null Key Default Extra
================================================================================================================
'code' 'INTEGER' 'NO' 'PRI' NULL 'auto_increment'
SHOW FULL COLUMNS FROM athlete WHERE field LIKE '%c%';
Field Type Collation Null Key Default Extra Comment
================================================================================================================================================================================
'code' 'INTEGER' NULL 'NO' 'PRI' NULL 'auto_increment' NULL
'nation_code' 'CHAR(3)' 'iso88591_bin' 'YES' '' NULL '' NULL
SHOW INDEX¶
인덱스 정보를 출력한다.
SHOW (INDEX | INDEXES | KEYS) (FROM | IN) [schema_name.]table_name;
해당 질의는 다음과 같은 칼럼을 가진다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Table |
VARCHAR |
테이블 이름 |
Non_unique |
INTEGER |
|
Key_name |
VARCHAR |
인덱스 이름 |
Seq_in_index |
INTEGER |
인덱스에 있는 칼럼의 일련번호. 1부터 시작한다. |
Column_name |
VARCHAR |
칼럼 이름 |
Collation |
VARCHAR |
칼럼이 인덱스에서 정렬되는 방법. ‘A’는 오름차순(Ascending), NULL 은 비정렬을 의미한다. |
Cardinality |
INTEGER |
인덱스에서 유일한 값의 개수를 측정한 수치. 카디널리티가 높을수록 인덱스를 이용할 기회가 높아진다. 이 값은 SHOW INDEX 가 실행되면 매번 업데이트된다. 이 값은 근사치임에 유의한다. |
Sub_part |
INTEGER |
칼럼의 일부만 인덱스된 경우 인덱스된 문자의 바이트 수. 칼럼 전체가 인덱스되면 NULL 이다. |
Packed |
키가 어떻게 팩되었는지(packed)를 나타냄. 팩되지 않은 경우 NULL. 현재 지원 안 함. |
|
Null |
VARCHAR |
칼럼이 NULL 을 포함할 수 있으면 YES, 그렇지 않으면 NO. |
Index_type |
VARCHAR |
사용되는 인덱스(현재 BTREE만 지원한다). |
Func |
VARCHAR |
함수 인덱스에서 사용되는 함수 |
Comment |
VARCHAR |
인덱스를 설명하기 위한 주석 |
Visible |
VARCHAR |
인덱스의 가시성을 보여준다 (YES/NO) |
다음은 이 구문을 수행한 예이다.
SHOW INDEX IN athlete;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type func Comment Visible
=================================================================================================================================================================
'public.athlete' 0 'pk_athlete_code' 1 'code' 'A' 6677 NULL NULL 'NO' 'BTREE' NULL NULL 'YES'
CREATE TABLE tbl1 (i1 INTEGER , i2 INTEGER NOT NULL, i3 INTEGER UNIQUE, s1 VARCHAR(10), s2 VARCHAR(10), s3 VARCHAR(10) UNIQUE);
CREATE INDEX i_tbl1_i1 ON tbl1 (i1 DESC);
CREATE INDEX i_tbl1_s1 ON tbl1 (s1 (7));
CREATE INDEX i_tbl1_i1_s1 ON tbl1 (i1, s1);
CREATE UNIQUE INDEX i_tbl1_i2_s2 ON tbl1 (i2, s2);
ALTER INDEX i_tbl1_s1 ON tbl1 INVISIBLE;
SHOW INDEXES FROM tbl1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Func Comment Visible
=============================================================================================================================================================
'public.tbl1' 1 'i_tbl1_i1' 1 'i1' 'D' 0 NULL NULL 'YES' 'BTREE' NULL NULL 'YES'
'public.tbl1' 1 'i_tbl1_i1_s1' 1 'i1' 'A' 0 NULL NULL 'YES' 'BTREE' NULL NULL 'YES'
'public.tbl1' 1 'i_tbl1_i1_s1' 2 's1' 'A' 0 NULL NULL 'YES' 'BTREE' NULL NULL 'YES'
'public.tbl1' 0 'i_tbl1_i2_s2' 1 'i2' 'A' 0 NULL NULL 'NO' 'BTREE' NULL NULL 'YES'
'public.tbl1' 0 'i_tbl1_i2_s2' 2 's2' 'A' 0 NULL NULL 'YES' 'BTREE' NULL NULL 'YES'
'public.tbl1' 1 'i_tbl1_s1' 1 's1' 'A' 0 7 NULL 'YES' 'BTREE' NULL NULL 'NO'
'public.tbl1' 0 'u_tbl1_i3' 1 'i3' 'A' 0 NULL NULL 'YES' 'BTREE' NULL NULL 'YES'
'public.tbl1' 0 'u_tbl1_s3' 1 's3' 'A' 0 NULL NULL 'YES' 'BTREE' NULL NULL 'YES'
SHOW COLLATION¶
데이터베이스에서 지원하는 콜레이션 리스트를 출력한다. LIKE 절은 콜레이션 이름이 매칭되는 정보를 출력한다.
SHOW COLLATION [LIKE 'pattern'];
해당 질의는 다음과 같은 칼럼을 가진다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Collation |
VARCHAR |
콜레이션 이름 |
Charset |
CHAR(1) |
문자셋 이름 |
Id |
INTEGER |
콜레이션 ID |
Built_in |
CHAR(1) |
내장 콜레이션 여부. 내장 콜레이션들은 하드-코딩되어 있어 추가 혹은 삭제가 불가능하다. |
Expansions |
CHAR(1) |
확장이 있는 콜레이션인지 여부. 자세한 내용은 확장을 참조한다. |
Strength |
CHAR(1) |
문자 간 비교를 위한 기준. 이 기준에 따라 문자 순서가 달라질 수 있다. 이에 대한 설명은 콜레이션 속성를 참고한다. |
다음은 이 구문을 수행한 예이다.
SHOW COLLATION;
Collation Charset Id Built_in Expansions Strength
===========================================================================================================================
'euckr_bin' 'euckr' 8 'Yes' 'No' 'Not applicable'
'iso88591_bin' 'iso88591' 0 'Yes' 'No' 'Not applicable'
'iso88591_en_ci' 'iso88591' 3 'Yes' 'No' 'Not applicable'
'iso88591_en_cs' 'iso88591' 2 'Yes' 'No' 'Not applicable'
'utf8_bin' 'utf8' 1 'Yes' 'No' 'Not applicable'
'utf8_de_exp' 'utf8' 76 'No' 'Yes' 'Tertiary'
'utf8_de_exp_ai_ci' 'utf8' 72 'No' 'Yes' 'Primary'
'utf8_en_ci' 'utf8' 5 'Yes' 'No' 'Not applicable'
'utf8_en_cs' 'utf8' 4 'Yes' 'No' 'Not applicable'
'utf8_es_cs' 'utf8' 85 'No' 'No' 'Quaternary'
'utf8_fr_exp_ab' 'utf8' 94 'No' 'Yes' 'Tertiary'
'utf8_gen' 'utf8' 32 'No' 'No' 'Quaternary'
'utf8_gen_ai_ci' 'utf8' 37 'No' 'No' 'Primary'
'utf8_gen_ci' 'utf8' 44 'No' 'No' 'Secondary'
'utf8_ja_exp' 'utf8' 124 'No' 'Yes' 'Tertiary'
'utf8_ja_exp_cbm' 'utf8' 125 'No' 'Yes' 'Tertiary'
'utf8_km_exp' 'utf8' 132 'No' 'Yes' 'Quaternary'
'utf8_ko_cs' 'utf8' 7 'Yes' 'No' 'Not applicable'
'utf8_ko_cs_uca' 'utf8' 133 'No' 'No' 'Quaternary'
'utf8_tr_cs' 'utf8' 6 'Yes' 'No' 'Not applicable'
'utf8_tr_cs_uca' 'utf8' 205 'No' 'No' 'Quaternary'
'utf8_vi_cs' 'utf8' 221 'No' 'No' 'Quaternary'
SHOW COLLATION LIKE '%_ko_%';
Collation Charset Id Built_in Expansions Strength
===========================================================================================================================
'utf8_ko_cs' 'utf8' 7 'Yes' 'No' 'Not applicable'
'utf8_ko_cs_uca' 'utf8' 133 'No' 'No' 'Quaternary'
SHOW TIMEZONES¶
현재 CUBRID에 설정된 타임 존 정보를 출력한다.
SHOW [FULL] TIMEZONES [LIKE 'pattern'];
FULL이 명시되지 않으면 타임 존의 영역 이름을 가진 하나의 칼럼을 출력한다. 칼럼의 이름은 timezone_region이다.
FULL이 명시되면 4개의 칼럼을 가진 타임존 정보를 출력한다.
LIKE 절을 사용하면 이와 매칭되는 timezone_region 을 검색할 수 있다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
timezone_region |
VARCHAR(32) |
타임존 영역 이름 |
region_offset |
VARCHAR(32) |
일광 절약 시간을 고려하지 않은 타임존 영역의 오프셋 |
dst_offset |
VARCHAR(32) |
일광 절약 시간을 고려한 타임존 영역의 오프셋 |
dst_abbreviation |
VARCHAR(32) |
일광 절약 시간이 적용된 영역의 약어 |
두 번째, 세 번째, 네 번째 칼럼에서 출력되는 정보는 현재 날짜와 시간에 관한 것이다.
타임 존 영역이 일광 절약 시간(daylight saving time) 규칙을 적용하지 않는다면, dst_offset과 dst_abbreviation 값은 NULL 값이 된다.
현재의 날짜에 일광 절약 시간이 적용되지 않는다면 dst_offset 값은 0이 되고 dst_abbreviation 값은 빈 문자열이 된다.
WHERE 조건 없는 LIKE 조건은 첫 번째 칼럼에 적용된다. WHERE 조건은 결과를 필터링하기 위해 사용될 수 있다.
SHOW TIMEZONES;
timezone_region
======================
'Africa/Abidjan'
'Africa/Accra'
'Africa/Addis_Ababa'
'Africa/Algiers'
'Africa/Asmara'
'Africa/Asmera'
...
'US/Michigan'
'US/Mountain'
'US/Pacific'
'US/Samoa'
'UTC'
'Universal'
'W-SU'
'WET'
'Zulu'
SHOW FULL TIMEZONES;
timezone_region region_offset dst_offset dst_abbreviation
===================================================================================
'Africa/Abidjan' '+00:00' '+00:00' 'GMT'
'Africa/Accra' '+00:00' NULL NULL
'Africa/Addis_Ababa' '+03:00' '+00:00' 'EAT'
'Africa/Algiers' '+01:00' '+00:00' 'CET'
'Africa/Asmara' '+03:00' '+00:00' 'EAT'
'Africa/Asmera' '+03:00' '+00:00' 'EAT'
...
'US/Michigan' '-05:00' '+00:00' 'EST'
'US/Mountain' '-07:00' '+00:00' 'MST'
'US/Pacific' '-08:00' '+00:00' 'PST'
'US/Samoa' '-11:00' '+00:00' 'SST'
'UTC' '+00:00' '+00:00' 'UTC'
'Universal' '+00:00' '+00:00' 'UTC'
'W-SU' '+04:00' '+00:00' 'MSK'
'WET' '+00:00' '+00:00' 'WET'
'Zulu' '+00:00' '+00:00' 'UTC'
SHOW FULL TIMEZONES LIKE '%Paris%';
timezone_region region_offset dst_offset dst_abbreviation
========================================================================================
'Europe/Paris' '+01:00' '+00:00' 'CET'
SHOW GRANTS¶
데이터베이스의 사용자 계정에 부여된 권한을 출력한다.
SHOW GRANTS FOR user_name;
다음은 이 구문을 수행한 예이다.
CREATE TABLE testgrant (id INT);
CREATE USER user1;
GRANT INSERT,SELECT ON testgrant TO user1;
SHOW GRANTS FOR user1;
Grants for USER1
======================
'GRANT INSERT, SELECT ON testgrant TO USER1'
SHOW CREATE TABLE¶
테이블 이름을 지정하면 해당 테이블의 CREATE TABLE 문을 출력한다.
SHOW CREATE TABLE [schema_name.]table_name;
SHOW CREATE TABLE nation;
TABLE CREATE TABLE
============================================
'public.nation' 'CREATE TABLE [nation] ([code] CHARACTER(3) NOT NULL, [name] CHARACTER VARYING(40) NOT NULL, [continent] CHARACTER VARYING(10), [capital] CHARACTER VARYING(30), CONSTRAINT [pk_nation_code] PRIMARY KEY ([code])) DONT_REUSE_OID, COLLATE iso88591_bin'
SHOW CREATE TABLE 문은 사용자가 입력한 구문을 그대로 출력하지는 않는다. 예를 들어, 사용자가 입력한 커멘트를 출력하지 않으며, 테이블 명이나 칼럼 명은 항상 소문자로 출력한다.
SHOW CREATE VIEW¶
뷰 이름을 지정하면 해당 CREATE VIEW 문을 출력한다.
SHOW CREATE VIEW view_name;
다음은 이 구문을 수행한 예이다.
SHOW CREATE VIEW db_class;
View Create View
============================================
'db_class' 'SELECT [c].[class_name], CAST([c].[owner].[name] AS VARCHAR(255)), CASE [c].[class_type] WHEN 0 THEN 'CLASS' WHEN 1 THEN 'VCLASS' ELSE 'UNKNOW' END, CASE WHEN MOD([c].[is_system_class], 2) = 1 THEN 'YES' ELSE 'NO' END, CASE [c].[tde_algorithm] WHEN 0 THEN 'NONE' WHEN 1 THEN 'AES' WHEN 2 THEN 'ARIA' END, CASE WHEN [c].[sub_classes] IS NULL THEN 'NO' ELSE NVL((SELECT 'YES' FROM [_db_partition] [p] WHERE [p].[class_of] = [c] and [p].[pname] IS NULL), 'NO') END, CASE WHEN MOD([c].[is_system_class] / 8, 2) = 1 THEN 'YES' ELSE 'NO' END, [coll].[coll_name], [c].[comment] FROM [_db_class] [c], [_db_collation] [coll] WHERE [c].[collation_id] = [coll].[coll_id] AND (CURRENT_USER = 'DBA' OR {[c].[owner].[name]} SUBSETEQ(SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{}) FROM [db_user] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR {[c]} SUBSETEQ ( SELECT SUM(SET{[au].[class_of]}) FROM [_db_auth] [au] WHERE {[au].[grantee].[name]} SUBSETEQ ( SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{}) FROM [db_user] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND [au].[auth_type] = 'SELECT'))'
SHOW ACCESS STATUS¶
SHOW ACCESS STATUS 문은 데이터베이스 계정에 대한 로그인 정보를 출력한다. 이 명령은 데이터베이스 계정이 DBA인 사용자만 사용할 수 있다.
SHOW ACCESS STATUS [LIKE 'pattern' | WHERE expr];
해당 구문은 다음과 같은 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
user_name |
VARCHAR(32) |
DB 사용자 계정 |
last_access_time |
DATETIME |
DB 사용자가 마지막으로 접속한 시간 |
last_access_host |
VARCHAR(32) |
마지막으로 접속한 호스트 |
program_name |
VARCHAR(32) |
클라이언트 프로그램 이름(broker_cub_cas_1, csql ..) |
다음은 해당 구문을 실행한 결과이다.
SHOW ACCESS STATUS;
user_name last_access_time last_access_host program_name
=============================================================================
'DBA' 08:19:31.000 PM 02/10/2014 127.0.0.1 'csql'
'PUBLIC' NULL NULL NULL
Note
SHOW ACCESS STATUS가 보여주는 로그인 정보는 데이터베이스가 재시작되면 초기화되며, HA 환경에서 복제되지 않으므로 각 노드마다 다른 결과를 보여준다.
SHOW EXEC STATISTICS¶
실행한 질의의 실행 통계 정보를 출력한다.
통계 정보 수집을 시작하려면 세션 변수 @collect_exec_stats 의 값을 1로 설정하며, 종료하려면 0으로 설정한다.
통계 정보 수집 결과를 출력한다.
SHOW EXEC STATISTICS는 data_page_fetches, data_page_dirties, data_page_ioreads, data_page_iowrites 이렇게 4가지 항목의 데이터 페이지 통계 정보를 출력하며, 결과 칼럼은 통계 정보 이름과 값에 해당하는 variable 칼럼과 value 칼럼으로 구성된다. SHOW EXEC STATISTICS 문을 실행하고 나면 그동안 누적되었던 통계 정보가 초기화된다.
SHOW EXEC STATISTICS ALL은 모든 항목의 통계 정보를 출력한다.
통계 정보 각 항목에 대한 자세한 설명은 statdump을 참고한다.
SHOW EXEC STATISTICS [ALL];
다음은 이 구문을 수행한 예이다.
-- set session variable @collect_exec_stats as 1 to start collecting the statistical information.
SET @collect_exec_stats = 1;
SELECT * FROM db_class;
-- print the statistical information of the data pages.
SHOW EXEC STATISTICS;
variable value
===============================
'data_page_fetches' 332
'data_page_dirties' 85
'data_page_ioreads' 18
'data_page_iowrites' 28
SELECT * FROM db_index;
-- print all of the statistical information.
SHOW EXEC STATISTICS ALL;
variable value
============================================
'file_creates' 0
'file_removes' 0
'file_ioreads' 6
'file_iowrites' 0
'file_iosynches' 0
'data_page_fetches' 548
'data_page_dirties' 34
'data_page_ioreads' 6
'data_page_iowrites' 0
'log_page_ioreads' 0
'log_page_iowrites' 0
'log_append_records' 0
'log_archives' 0
'log_start_checkpoints' 0
'log_end_checkpoints' 0
'log_wals' 0
'page_locks_acquired' 13
'object_locks_acquired' 9
'page_locks_converted' 0
'object_locks_converted' 0
'page_locks_re-requested' 0
'object_locks_re-requested' 8
'page_locks_waits' 0
'object_locks_waits' 0
'tran_commits' 3
'tran_rollbacks' 0
'tran_savepoints' 0
'tran_start_topops' 6
'tran_end_topops' 6
'tran_interrupts' 0
'btree_inserts' 0
'btree_deletes' 0
'btree_updates' 0
'btree_covered' 0
'btree_noncovered' 2
'btree_resumes' 0
'btree_multirange_optimization' 0
'query_selects' 4
'query_inserts' 0
'query_deletes' 0
'query_updates' 0
'query_sscans' 2
'query_iscans' 4
'query_lscans' 0
'query_setscans' 2
'query_methscans' 0
'query_nljoins' 2
'query_mjoins' 0
'query_objfetches' 0
'query_holdable_cursors' 0
'sort_io_pages' 0
'sort_data_pages' 0
'network_requests' 88
'adaptive_flush_pages' 0
'adaptive_flush_log_pages' 0
'adaptive_flush_max_pages' 0
'prior_lsa_list_size' 0
'prior_lsa_list_maxed' 0
'prior_lsa_list_removed' 0
'heap_stats_bestspace_entries' 0
'heap_stats_bestspace_maxed' 0
진단(Diagnostics)¶
SHOW VOLUME HEADER¶
명시한 볼륨의 헤더 정보를 출력한다.
SHOW VOLUME HEADER OF volume_id;
해당 구문은 다음과 같은 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Volume_id |
INT |
볼륨 식별자 |
Magic_symbol |
VARCHAR(100) |
볼륨 파일의 매직 값 |
Io_page_size |
INT |
DB 볼륨의 페이지 |
Purpose |
VARCHAR(32) |
볼륨 사용 목적 : ‘영구적 데이터 목적’ 또는 ‘일시적 데이터 목적’ |
Type |
VARCHAR(32) |
볼륨 타입, ‘영구적 볼륨’ 또는 ‘일시적 볼륨’ |
Sector_size_in_pages |
INT |
페이지 내 섹터의 크기 |
Num_total_sectors |
INT |
섹터 전체 개수 |
Num_free_sectors |
INT |
여유 섹터 개수 |
Num_max_sectors |
INT |
섹터 수의 최대값 |
Hint_alloc_sector |
INT |
할당될 다음 섹터에 대한 힌트 |
Sector_alloc_table_size_in_pages |
INT |
페이지 내 섹터 할당 테이브 크기 |
Sector_alloc_table_first_page |
INT |
섹터 할당 테이블의 첫번째 페이지 |
Page_alloc_table_size_in_pages |
INT |
페이지 내 페이지 할당 테이블의 크기 |
Page_alloc_table_first_page |
INT |
페이지 할당 테이블의 첫번째 페이지 |
Last_system_page |
INT |
마지막 시스템 페이지 |
Creation_time |
DATETIME |
데이터베이스 생성 시간 |
Db_charset |
INT |
데이터베이스 문자셋번호 |
Checkpoint_lsa |
VARCHAR(64) |
이 볼륨의 복구 절차를 시작하는 가장 작은 로그 일련 주소 |
Boot_hfid |
VARCHAR(64) |
다중 볼륨과 데이터베이스 기동을 위한 시스템 힙 파일ID |
Full_name |
VARCHAR(255) |
볼륨의 전체 경로 |
Next_volume_id |
INT |
다음 볼륨의 ID |
Next_vol_full_name |
VARCHAR(255) |
다음 볼륨의 전체 경로 |
Remarks |
VARCHAR(64) |
볼륨에 대한 설명 |
다음은 이 구문을 수행한 예이다.
-- csql> ;line on
SHOW VOLUME HEADER OF 0;
<00001> Volume_id : 0
Magic_symbol : 'MAGIC SYMBOL = CUBRID/Volume at disk location = 32'
Io_page_size : 16384
Purpose : 'Permanent data purpose'
Type : 'Permanent Volume'
Sector_size_in_pages : 64
Num_total_sectors : 512
Num_free_sectors : 459
Num_max_sectors : 512
Hint_alloc_sector : 0
Sector_alloc_table_size_in_pages: 1
Sector_alloc_table_first_page : 1
Last_system_page : 1
Creation_time : 09:46:41.000 PM 05/23/2017
Db_charset : 3
Checkpoint_lsa : '(0|12832)'
Boot_hfid : '(0|41|50)'
Full_name : '/home1/brightest/CUBRID/databases/demodb/demodb'
Next_volume_id : -1
Next_vol_full_name : ''
Remarks : ''
SHOW LOG HEADER¶
활성 로그(active log) 파일의 헤더 정보를 출력한다.
SHOW LOG HEADER [OF file_name];
OF file_name을 생략하면 메모리의 헤더 정보를 출력하며, OF file_name을 포함하면 file_name의 헤더 정보를 출력한다.
해당 구문은 다음의 칼럼을 출력한다.
Column name |
Type |
Description |
---|---|---|
Volume_id |
INT |
볼륨 식별자 |
Magic_symbol |
VARCHAR(32) |
로그 파일의 매직 값 |
Magic_symbol_location |
INT |
로그 페이지의 매직 심볼 위치 |
Creation_time |
DATETIME |
데이터베이스 생성 시간 |
Release |
VARCHAR(32) |
CUBRID 릴리즈 버전 |
Compatibility_disk_version |
VARCHAR(32) |
현재 릴리즈 버전에 대한 DB의 호환성 |
Db_page_size |
INT |
DB 페이지의 크기 |
Log_page_size |
INT |
로그 페이지의 크기 |
Shutdown |
INT |
로그 셧다운의 여부 |
Next_trans_id |
INT |
다음 트랜잭션 ID |
Num_avg_trans |
INT |
평균 트랜잭션 개수 |
Num_avg_locks |
INT |
평균 객체 잠금 개수 |
Num_active_log_pages |
INT |
활성로그 부분에서 페이지 개수 |
Db_charset |
INT |
DB의 문자셋 번호 |
First_active_log_page |
BIGINT |
활성 로그에서 물리적 위치 1에 대한 논리 페이지 |
Current_append |
VARCHAR(64) |
현재의 추가된 위치 |
Checkpoint |
VARCHAR(64) |
복구 프로세스를 시작하는 가장 작은 로그 일련 주소 |
Next_archive_page_id |
BIGINT |
보관할 다음 논리 페이지 |
Active_physical_page_id |
INT |
보관할 논리 페이지의 물리직 위치 |
Next_archive_num |
INT |
다음 보관 로그 번호 |
Last_archive_num_for_syscrashes |
INT |
시스템 비정상 종료 대비하여 필요한 최종 보관 로그 번호 |
Last_deleted_archive_num |
INT |
최종 삭제된 보관 로그 번호 |
Backup_lsa_level0 |
VARCHAR(64) |
백업 수준 0의 LSA(log sequence number) |
Backup_lsa_level1 |
VARCHAR(64) |
백업 수준 1의 LSA |
Backup_lsa_level2 |
VARCHAR(64) |
백업 수준 2의 LSA |
Log_prefix |
VARCHAR(256) |
로그 prefix 이름 |
Has_logging_been_skipped |
INT |
로깅의 생략 여부 |
Perm_status |
VARCHAR(64) |
현재 사용하지 않음 |
Backup_info_level0 |
VARCHAR(128) |
백업 수준 0의 상세 정보. 현재는 백업 시작 시간만 저장됨 |
Backup_info_level1 |
VARCHAR(128) |
백업 수준 1의 상세 정보. 현재는 백업 시작 시간만 저장됨 |
Backup_info_level2 |
VARCHAR(128) |
백업 수준 2의 상세 정보. 현재는 백업 시작 시간만 저장됨 |
Ha_server_state |
VARCHAR(32) |
HA 서버 상태. 다음 값 중 하나: na, idle, active, to-be-active, standby, to-be-standby, maintenance, dead |
Ha_file |
VARCHAR(32) |
HA 복제 상태. 다음 값 중 하나: clear, archived, sync |
Eof_lsa |
VARCHAR(64) |
LSA 파일의 끝 |
Smallest_lsa_at_last_checkpoint |
VARCHAR(64) |
맨 마지막 체크포인트의 가장 작은 LSA, NULL 값이 될 수 있음 |
Next_mvcc_id |
BIGINT |
다음 트랜잭션에서 사용될 다음 MVCCID 값 |
Mvcc_op_log_lsa |
VARCHAR(32) |
MVCC 작업을 위한 로그 항목을 연결하는 데 사용되는 LSA |
Last_block_oldest_mvcc_id |
BIGINT |
로그 데이터 블록에서 가장 오래된 MVCC 를 찾기 위한 ID 값, NULL 값이 될 수 있음 |
Last_block_newest_mvcc_id |
BIGINT |
로그 데이터 블록에서 가장 최신의 MVCC 를 찾기 위한 ID 값, NULL 값이 될 수 있음 |
다음은 이 구문을 수행한 예이다.
-- csql> ;line on
SHOW LOG HEADER;
<00001> Volume_id : -2
Magic_symbol : 'CUBRID/LogActive'
Magic_symbol_location : 16
Creation_time : 09:46:41.000 PM 05/23/2017
Release : '10.0.0'
Compatibility_disk_version : '10'
Db_page_size : 16384
Log_page_size : 16384
Shutdown : 0
Next_trans_id : 17
Num_avg_trans : 3
Num_avg_locks : 30
Num_active_log_pages : 1279
Db_charset : 3
First_active_log_page : 0
Current_append : '(102|5776)'
Checkpoint : '(101|7936)'
Next_archive_page_id : 0
Active_physical_page_id : 1
Next_archive_num : 0
Last_archive_num_for_syscrashes: -1
Last_deleted_archive_num : -1
Backup_lsa_level0 : '(-1|-1)'
Backup_lsa_level1 : '(-1|-1)'
Backup_lsa_level2 : '(-1|-1)'
Log_prefix : 'mvccdb'
Has_logging_been_skipped : 0
Perm_status : 'LOG_PSTAT_CLEAR'
Backup_info_level0 : 'time: N/A'
Backup_info_level1 : 'time: N/A'
Backup_info_level2 : 'time: N/A'
Ha_server_state : 'idle'
Ha_file : 'UNKNOWN'
Eof_lsa : '(102|5776)'
Smallest_lsa_at_last_checkpoint: '(101|7936)'
Next_mvcc_id : 6
Mvcc_op_log_lsa : '(102|5488)'
Last_block_oldest_mvcc_id : 4
Last_block_newest_mvcc_id : 5
SHOW LOG HEADER OF 'demodb_lgat';
<00001> Volume_id : -2
Magic_symbol : 'CUBRID/LogActive'
Magic_symbol_location : 16
Creation_time : 09:46:41.000 PM 05/23/2017
Release : '10.0.0'
Compatibility_disk_version : '10'
Db_page_size : 16384
Log_page_size : 16384
Shutdown : 0
Next_trans_id : 15
Num_avg_trans : 3
Num_avg_locks : 30
Num_active_log_pages : 1279
Db_charset : 3
First_active_log_page : 0
Current_append : '(101|8016)'
Checkpoint : '(101|7936)'
Next_archive_page_id : 0
Active_physical_page_id : 1
Next_archive_num : 0
Last_archive_num_for_syscrashes: -1
Last_deleted_archive_num : -1
Backup_lsa_level0 : '(-1|-1)'
Backup_lsa_level1 : '(-1|-1)'
Backup_lsa_level2 : '(-1|-1)'
Log_prefix : 'mvccdb'
Has_logging_been_skipped : 0
Perm_status : 'LOG_PSTAT_CLEAR'
Backup_info_level0 : 'time: N/A'
Backup_info_level1 : 'time: N/A'
Backup_info_level2 : 'time: N/A'
Ha_server_state : 'idle'
Ha_file : 'UNKNOWN'
Eof_lsa : '(101|8016)'
Smallest_lsa_at_last_checkpoint: '(101|7936)'
Next_mvcc_id : 4
Mvcc_op_log_lsa : '(-1|-1)'
Last_block_oldest_mvcc_id : NULL
Last_block_newest_mvcc_id : NULL
SHOW ARCHIVE LOG HEADER¶
보관 로그(archive log) 파일의 헤더 정보를 출력한다.
SHOW ARCHIVE LOG HEADER OF file_name;
해당 구문은 다음의 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Volume_id |
INT |
로그 볼륨 ID |
Magic_symbol |
VARCHAR(32) |
보관 로그 파일의 매직 값 |
Magic_symbol_location |
INT |
로그 페이지로부터 매직 심볼 위치 |
Creation_time |
DATETIME |
DB 생성 시간 |
Next_trans_id |
BIGINT |
다음 트랜잭션 ID |
Num_pages |
INT |
보관 로그에서 페이지의 개수 |
First_page_id |
BIGINT |
보관 로그에서 물리적 위치 1에 대한 논리 페이지 ID |
Archive_num |
INT |
보관 로그 번호 |
다음은 이 구문을 수행한 예이다.
-- csql> ;line on
SHOW ARCHIVE LOG HEADER OF 'demodb_lgar001';
<00001> Volume_id : -20
Magic_symbol : 'CUBRID/LogArchive'
Magic_symbol_location: 16
Creation_time : 04:42:28.000 PM 12/11/2013
Next_trans_id : 22695
Num_pages : 1278
First_page_id : 1278
Archive_num : 1
SHOW HEAP HEADER¶
명시한 테이블의 헤더 페이지를 출력한다.
SHOW [ALL] HEAP HEADER OF [schema_name.]table_name;
ALL: 분할 테이블에서 “ALL” 키워드가 주어지면 기반 테이블과 분할 테이블이 같이 출력된다.
해당 구문은 다음의 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Class_name |
VARCHAR(256) |
테이블 이름 |
Class_oid |
VARCHAR(64) |
포맷: (volid|pageid|slotid) |
Volume_id |
INT |
파일이 위치해 있는 볼륨의 식별자 |
File_id |
INT |
파일 식별자 |
Header_page_id |
INT |
첫 페이지 식별자(헤더 페이지) |
Overflow_vfid |
VARCHAR(64) |
오버플로우 파일 식별자(존재하는 경우) |
Next_vpid |
VARCHAR(64) |
다음 페이지 (예: 힙 파일의 두번째 페이지) |
Unfill_space |
INT |
페이지 공간이 이 값보다 작을 때 INSERT 중지. UPDATE 시에는 이 값을 사용 안 함 |
Estimates_num_pages |
BIGINT |
힙 페이지 개수의 추정치 |
Estimates_num_recs |
BIGINT |
힙 내 객체 개수의 추정치 |
Estimates_avg_rec_len |
INT |
레코드 전체 길이의 추정치 |
Estimates_num_high_best |
INT |
최소의 HEAP_DROP_FREE_SPACE를 가진 것으로 추정되는 베스트 페이지의 배열에 있는 페이지 개수. 이 숫자가 0이고 최소한 다른 HEAP_NUM_BEST_SPACESTATS 개수만큼의 베스트 페이지가 있으면, 그것을 찾는다. |
Estimates_num_others_high_best |
INT |
베스트 페이지로 알려진 것으로 추정되는 전체 개수. 이 베스트 페이지는 베스트 배열에는 포함되어 있지 않고 최소한 HEAP_DROP_FREE_SPACE를 가진 것으로 추정한다. |
Estimates_head |
INT |
베스트 순환 배열의 헤드 |
Estimates_best_list |
VARCHAR(512) |
포맷: ‘((best[0].vpid.volid|best[0].vpid.pageid), best[0].freespace), … , ((best[9].vpid.volid|best[9].vpid.pageid), best[9].freespace)’ |
Estimates_num_second_best |
INT |
두번째 베스트 힌트의 개수. 이 힌트는 두번째 베스트 배열에 존재한다. 이들은 새로운 베스트 페이지를 찾을 때 사용됨. |
Estimates_head_second_best |
INT |
두번째 베스트 힌트의 헤드의 인덱스. 새로운 두번째 베스트 힌트는 이 인덱스에 저장된다. |
Estimates_num_substitutions |
INT |
페이지 대체(substitution) 개수. 새로운 두번째 베스트 페이지를 두번째 베스트 힌트로 입력하기 위해 사용된다. |
Estimates_second_best_list |
VARCHAR(512) |
포맷: ‘(second_best[0].vpid.volid|second_best[0].vpid.pageid), … , (second_best[9].vpid.volid|second_best[9].vpid.pageid)’ |
Estimates_last_vpid |
VARCHAR(64) |
포맷: ‘(volid|pageid)’ |
Estimates_full_search_vpid |
VARCHAR(64) |
포맷: ‘(volid|pageid)’ |
다음은 이 구문을 수행한 예이다.
-- csql> ;line on
SHOW HEAP HEADER OF athlete;
<00001> Class_name : 'athlete'
Class_oid : '(0|463|8)'
Volume_id : 0
File_id : 147
Header_page_id : 590
Overflow_vfid : '(-1|-1)'
Next_vpid : '(0|591)'
Unfill_space : 1635
Estimates_num_pages : 27
Estimates_num_recs : 6677
Estimates_avg_rec_len : 54
Estimates_num_high_best : 1
Estimates_num_others_high_best: 0
Estimates_head : 0
Estimates_best_list : '((0|826), 14516), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1),0), ((-1|-1), 0)'
Estimates_num_second_best : 0
Estimates_head_second_best : 0
Estimates_tail_second_best : 0
Estimates_num_substitutions : 0
Estimates_second_best_list : '(-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1)'
Estimates_last_vpid : '(0|826)'
Estimates_full_search_vpid : '(0|590)'
CREATE TABLE participant2 (
host_year INT,
nation CHAR(3),
gold INT,
silver INT,
bronze INT
)
PARTITION BY RANGE (host_year) (
PARTITION before_2000 VALUES LESS THAN (2000),
PARTITION before_2008 VALUES LESS THAN (2008)
);
SHOW ALL HEAP HEADER OF participant2;
<00001> Class_name : 'participant2'
Class_oid : '(0|467|6)'
Volume_id : 0
File_id : 374
Header_page_id : 940
Overflow_vfid : '(-1|-1)'
Next_vpid : '(-1|-1)'
Unfill_space : 1635
Estimates_num_pages : 1
Estimates_num_recs : 0
Estimates_avg_rec_len : 0
Estimates_num_high_best : 1
Estimates_num_others_high_best: 0
Estimates_head : 1
Estimates_best_list : '((0|940), 16308), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0)'
Estimates_num_second_best : 0
Estimates_head_second_best : 0
Estimates_tail_second_best : 0
Estimates_num_substitutions : 0
Estimates_second_best_list : '(-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1)'
Estimates_last_vpid : '(0|940)'
Estimates_full_search_vpid : '(0|940)'
<00002> Class_name : 'participant2__p__before_2000'
Class_oid : '(0|467|7)'
Volume_id : 0
File_id : 376
Header_page_id : 950
Overflow_vfid : '(-1|-1)'
Next_vpid : '(-1|-1)'
Unfill_space : 1635
Estimates_num_pages : 1
Estimates_num_recs : 0
Estimates_avg_rec_len : 0
Estimates_num_high_best : 1
Estimates_num_others_high_best: 0
Estimates_head : 1
Estimates_best_list : '((0|950), 16308), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0)'
Estimates_num_second_best : 0
Estimates_head_second_best : 0
Estimates_tail_second_best : 0
Estimates_num_substitutions : 0
Estimates_second_best_list : '(-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1)'
Estimates_last_vpid : '(0|950)'
Estimates_full_search_vpid : '(0|950)'
<00003> Class_name : 'participant2__p__before_2008'
Class_oid : '(0|467|8)'
Volume_id : 0
File_id : 378
Header_page_id : 960
Overflow_vfid : '(-1|-1)'
Next_vpid : '(-1|-1)'
Unfill_space : 1635
Estimates_num_pages : 1
Estimates_num_recs : 0
Estimates_avg_rec_len : 0
Estimates_num_high_best : 1
Estimates_num_others_high_best: 0
Estimates_head : 1
Estimates_best_list : '((0|960), 16308), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0)'
Estimates_num_second_best : 0
Estimates_head_second_best : 0
Estimates_tail_second_best : 0
Estimates_num_substitutions : 0
Estimates_second_best_list : '(-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1)'
Estimates_last_vpid : '(0|960)'
Estimates_full_search_vpid : '(0|960)'
SHOW HEAP HEADER OF participant2__p__before_2008;
<00001> Class_name : 'participant2__p__before_2008'
Class_oid : '(0|467|8)'
Volume_id : 0
File_id : 378
Header_page_id : 960
Overflow_vfid : '(-1|-1)'
Next_vpid : '(-1|-1)'
Unfill_space : 1635
Estimates_num_pages : 1
Estimates_num_recs : 0
Estimates_avg_rec_len : 0
Estimates_num_high_best : 1
Estimates_num_others_high_best: 0
Estimates_head : 1
Estimates_best_list : '((0|960), 16308), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0), ((-1|-1), 0)'
Estimates_num_second_best : 0
Estimates_head_second_best : 0
Estimates_tail_second_best : 0
Estimates_num_substitutions : 0
Estimates_second_best_list : '(-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1), (-1|-1)'
Estimates_last_vpid : '(0|960)'
Estimates_full_search_vpid : '(0|960)'
SHOW HEAP CAPACITY¶
명시한 테이블의 용량을 출력한다.
SHOW [ALL] HEAP CAPACITY OF [schema_name.] table_name;
ALL: 분할 테이블에서 “ALL” 키워드가 주어지면 기반 테이블과 분할된 테이블이 같이 출력된다.
해당 구문은 다음의 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Table_name |
VARCHAR(256) |
테이블 이름 |
Class_oid |
VARCHAR(64) |
힙 파일 식별자 |
Volume_id |
INT |
파일이 존재하는 볼륨 식별자 |
File_id |
INT |
파일 식별자 |
Header_page_id |
INT |
첫번째 페이지 식별자(헤더 페이지) |
Num_recs |
BIGINT |
객체의 전체 개수 |
Num_relocated_recs |
BIGINT |
재할당된 레코드의 개수 |
Num_overflowed_recs |
BIGINT |
큰 레코드의 개수 |
Num_pages |
BIGINT |
힙 페이지의 전체 개수 |
Avg_rec_len |
INT |
평균 객체 길이 |
Avg_free_space_per_page |
INT |
페이지 당 평균 여유 공간 |
Avg_free_space_per_page_without_last_page |
INT |
마지막 페이지를 고려하지 않은 페이지 당 평균 여유 공간 |
Avg_overhead_per_page |
INT |
페이지 당 평균 오버헤드 |
Repr_id |
INT |
현재 캐시된 카탈로그 칼럼 정보 |
Num_total_attrs |
INT |
칼럼의 전체 개수 |
Num_fixed_width_attrs |
INT |
고정 길이 칼럼의 개수 |
Num_variable_width_attrs |
INT |
가변 길이 칼럼의 개수 |
Num_shared_attrs |
INT |
공유(shared) 칼럼의 개수 |
Num_class_attrs |
INT |
테이블 칼럼 개수 |
Total_size_fixed_width_attrs |
INT |
고정 길이 칼럼의 전체 크기 |
다음은 이 구문을 수행한 예이다.
-- csql> ;line on
SHOW HEAP CAPACITY OF athlete;
<00001> Table_name : 'athlete'
Class_oid : '(0|463|8)'
Volume_id : 0
File_id : 147
Header_page_id : 590
Num_recs : 6677
Num_relocated_recs : 0
Num_overflowed_recs : 0
Num_pages : 27
Avg_rec_len : 53
Avg_free_space_per_page : 2139
Avg_free_space_per_page_except_last_page: 1663
Avg_overhead_per_page : 993
Repr_id : 1
Num_total_attrs : 5
Num_fixed_width_attrs : 3
Num_variable_width_attrs : 2
Num_shared_attrs : 0
Num_class_attrs : 0
Total_size_fixed_width_attrs : 8
SHOW ALL HEAP CAPACITY OF participant2;
<00001> Table_name : 'participant2'
Class_oid : '(0|467|6)'
Volume_id : 0
File_id : 374
Header_page_id : 940
Num_recs : 0
Num_relocated_recs : 0
Num_overflowed_recs : 0
Num_pages : 1
Avg_rec_len : 0
Avg_free_space_per_page : 16016
Avg_free_space_per_page_except_last_page: 0
Avg_overhead_per_page : 4
Repr_id : 1
Num_total_attrs : 5
Num_fixed_width_attrs : 5
Num_variable_width_attrs : 0
Num_shared_attrs : 0
Num_class_attrs : 0
Total_size_fixed_width_attrs : 20
<00002> Table_name : 'participant2__p__before_2000'
Class_oid : '(0|467|7)'
Volume_id : 0
File_id : 376
Header_page_id : 950
Num_recs : 0
Num_relocated_recs : 0
Num_overflowed_recs : 0
Num_pages : 1
Avg_rec_len : 0
Avg_free_space_per_page : 16016
Avg_free_space_per_page_except_last_page: 0
Avg_overhead_per_page : 4
Repr_id : 1
Num_total_attrs : 5
Num_fixed_width_attrs : 5
Num_variable_width_attrs : 0
Num_shared_attrs : 0
Num_class_attrs : 0
Total_size_fixed_width_attrs : 20
<00003> Table_name : 'participant2__p__before_2008'
Class_oid : '(0|467|8)'
Volume_id : 0
File_id : 378
Header_page_id : 960
Num_recs : 0
Num_relocated_recs : 0
Num_overflowed_recs : 0
Num_pages : 1
Avg_rec_len : 0
Avg_free_space_per_page : 16016
Avg_free_space_per_page_except_last_page: 0
Avg_overhead_per_page : 4
Repr_id : 1
Num_total_attrs : 5
Num_fixed_width_attrs : 5
Num_variable_width_attrs : 0
Num_shared_attrs : 0
Num_class_attrs : 0
Total_size_fixed_width_attrs : 20
SHOW SLOTTED PAGE HEADER¶
명시한 슬롯 페이지의 헤더 정보를 출력한다.
SHOW SLOTTED PAGE HEADER (WHERE | OF) VOLUME = volume_num AND PAGE = page_num;
해당 구문은 다음의 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Volume_id |
INT |
페이지의 볼륨 식별자 |
Page_id |
INT |
페이지 식별자 |
Num_slots |
INT |
페이지에 할당된 슬롯 개수 |
Num_records |
INT |
페이지에 대한 레코드 개수 |
Anchor_type |
VARCHAR(32) |
다음 값 중 하나: ANCHORED, ANCHORED_DONT_REUSE_SLOTS, UNANCHORED_ANY_SEQUENCE, UNANCHORED_KEEP_SEQUENCE |
Alignment |
VARCHAR(8) |
레코드에 대한 정렬(alignment), 다음 값 중 하나: CHAR, SHORT, INT, DOUBLE |
Total_free_area |
INT |
페이지 전체 여유 공간 |
Contiguous_free_area |
INT |
페이지 내 연속된 여유 공간 |
Free_space_offset |
INT |
페이지의 처음부터 페이지 내 첫번째 여유 공간 바이트 영역까지의 바이트 오프셋 |
Need_update_best_hint |
INT |
undo 복구를 위해 저장이 필요하면 true |
Is_saving |
INT |
이 페이지를 위해 베스트 페이지를 업데이트해야 되면 true |
Flags |
INT |
페이지의 플래그 값 |
다음은 이 구문을 수행한 예이다.
-- csql> ;line on
SHOW SLOTTED PAGE HEADER OF VOLUME=0 AND PAGE=140;
<00001> Volume_id : 0
Page_id : 140
Num_slots : 3
Num_records : 3
Anchor_type : 'ANCHORED_DONT_REUSE_SLOTS'
Alignment : 'INT'
Total_free_area : 15880
Contiguous_free_area : 15880
Free_space_offset : 460
Need_update_best_hint: 1
Is_saving : 0
Flags : 0
SHOW SLOTTED PAGE SLOTS¶
명시한 슬롯 페이지의 모든 슬롯 정보를 출력한다.
SHOW SLOTTED PAGE SLOTS (WHERE | OF) VOLUME = volume_num AND PAGE = page_num;
해당 구문은 다음의 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Volume_id |
INT |
페이지의 볼륨 식별자 |
Page_id |
INT |
페이지 식별자 |
Slot_id |
INT |
슬롯 식별자 |
Offset |
INT |
페이지의 시작부터 레코드의 시작까지의 바이트 오프셋 |
Type |
VARCHAR(32) |
레코드 타입, 다음 값 중 하나: REC_UNKNOWN, REC_ASSIGN_ADDRESS, REC_HOME, REC_NEWHOME, REC_RELOCATION, REC_BIGONE, REC_MARKDELETED, REC_DELETED_WILL_REUSE |
Length |
INT |
레코드 길이 |
Waste |
INT |
버릴 것인지 여부 |
다음은 이 구문을 수행한 예이다.
-- csql> ;line on
SHOW SLOTTED PAGE SLOTS OF VOLUME=0 AND PAGE=140;
<00001> Volume_id: 0
Page_id : 140
Slot_id : 0
Offset : 40
Type : 'HOME'
Length : 292
Waste : 0
<00002> Volume_id: 0
Page_id : 140
Slot_id : 1
Offset : 332
Type : 'HOME'
Length : 64
Waste : 0
<00003> Volume_id: 0
Page_id : 140
Slot_id : 2
Offset : 396
Type : 'HOME'
Length : 64
Waste : 0
SHOW INDEX HEADER¶
특정 테이블 내 인덱스의 헤더 페이지 정보를 출력한다.
SHOW INDEX HEADER OF [schema_name.]table_name.index_name;
ALL 키워드를 사용하고 인덱스 이름을 생략하면 해당 테이블의 전체 인덱스의 헤더 정보를 출력한다.
SHOW ALL INDEXES HEADER OF [schema_name.]table_name;
해당 구문은 다음의 칼럼을 출력한다.
Column name |
Type |
Description |
---|---|---|
Table_name |
VARCHAR(256) |
테이블명 |
Index_name |
VARCHAR(256) |
인덱스명 |
Btid |
VARCHAR(64) |
BTID (volid|fileid|root_pageid) |
Node_level |
INT |
노드 수준 (1 은 단말, 2 이상은 비단말) |
Max_key_len |
INT |
서브트리의 최대 키 길이 |
Num_oids |
INT |
B트리에 저당된 OID 개수 |
Num_nulls |
INT |
NULL 의 개수 |
Num_keys |
INT |
B트리에 있는 고유 키의 개수 |
Topclass_oid |
VARCHAR(64) |
최상위 클래스의 oid 또는 NULL OID (고유 인덱스가 아님)(volid|pageid|slotid) |
Unique |
INT |
고유값 유무 |
Overflow_vfid |
VARCHAR(32) |
VFID (volid|fileid) |
Key_type |
VARCHAR(256) |
타입명 |
Columns |
VARCHAR(256) |
인덱스를 구성하는 칼럼 리스트 |
다음은 이 구문을 수행한 예이다.
-- Prepare test environment
CREATE TABLE tbl1(a INT, b VARCHAR(5));
CREATE INDEX index_ab ON tbl1(a ASC, b DESC);
-- csql> ;line on
SHOW INDEX HEADER OF tbl1.index_ab;
<00001> Table_name : 'tbl1'
Index_name : 'index_a'
Btid : '(0|378|950)'
Node_type : 'LEAF'
Max_key_len : 0
Num_oids : -1
Num_nulls : -1
Num_keys : -1
Topclass_oid : '(0|469|4)'
Unique : 0
Overflow_vfid: '(-1|-1)'
Key_type : 'midxkey(integer,character varying(5))'
Columns : 'a,b DESC'
SHOW INDEX CAPACITY¶
테이블의 인덱스 용량 정보를 출력한다.
SHOW INDEX CAPACITY OF [schema_name.]table_name.index_name;
ALL 키워드를 사용하고 인덱스 이름을 생략하면 해당 테이블의 전체 인덱스의 용량 정보를 출력한다.
SHOW ALL INDEXES CAPACITY OF [schema_name.]table_name;
해당 구문은 다음의 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Table_name |
VARCHAR(256) |
테이블 이름 |
Index_name |
VARCHAR(256) |
인덱스 이름 |
Btid |
VARCHAR(64) |
BTID (volid|fileid|root_pageid) |
Num_distinct_key |
INT |
단말 노드(leaf) 페이지의 Distinct key 개수 |
Total_value |
INT |
트리에 저장된 값의 총 개수 |
Deduplicate_distinct_key |
INT |
단말 노드(leaf) 페이지의 Deduplicated Distinct key 개수 |
Avg_num_value_per_key |
INT |
키당 OID 값의 평균 개수 |
Avg_num_value_per_deduplicate_key |
INT |
Deduplicated된 키당 OID 값의 평균 개수 |
Num_leaf_page |
INT |
단말 노드(leaf) 페이지 개수 |
Num_non_leaf_page |
INT |
비단말(NonLeaf) 노드 페이지 개수 |
Num_ovf_page |
INT |
단말 노드의 오버플로우 페이지 개수 |
Num_total_page |
INT |
전체 페이지 개수 |
Height |
INT |
트리의 높이 |
Avg_key_len |
INT |
평균 키 길이 |
Avg_rec_len |
INT |
평균 페이지 레코드 길이 |
Total_space |
VARCHAR(64) |
인덱스에 의해 점유되는 전체 공간 |
Total_used_space_non_ovf |
VARCHAR(64) |
할당된 페이지에서 사용된 총 공간(단말 노드의 오버플로우 페이지는 제외) |
Total_free_space_non_ovf |
VARCHAR(64) |
할당된 페이지에서 사용되지 않은 총 공간(단말 노드의 오버플로우 페이지는 제외) |
Total_used_space_ovf |
VARCHAR(64) |
단말 노드의 할당된 오버플로우 페이지에서 사용된 총 공간 |
Total_free_space_ovf |
VARCHAR(64) |
단말 노드의 할당된 오버플로우 페이지에서 사용되지 않은 총 공간 |
Avg_num_key_per_page_non_ovf |
INT |
단말 노드 페이지에서 페이지 당 평균 키 개수 |
Avg_free_space_per_page_non_ovf |
VARCHAR(64) |
단말 노드 페이지에서 페이지 당 평균 여유 공간 |
Avg_num_key_per_page_ovf |
INT |
단말 노드의 오버플로우 페이지에서 페이지 당 평균 키 개수 |
Avg_free_space_per_page_ovf |
VARCHAR(64) |
단말 노드의 오버플로우 페이지 당 평균 여유 공간 |
Max_num_ovf_page_a_key |
INT |
하나의 키에 대해 연결된 단말 노드의 오버플로우 페이지의 최대 개수 |
다음은 이 구문을 수행한 예이다.
-- Prepare test environment
CREATE TABLE tbl1(a INT, b VARCHAR(5));
CREATE INDEX index_a ON tbl1(a ASC);
CREATE INDEX index_b ON tbl1(b ASC);
-- csql> ;line on
SHOW INDEX CAPACITY OF tbl1.index_a;
<00001> Table_name : 'dba.tbl1'
Index_name : 'index_a'
Btid : '(0|4160|4161)'
Num_distinct_key : 0
Total_value : 0
Deduplicate_distinct_key : 0
Avg_num_value_per_key : 0
Avg_num_value_per_deduplicate_key: 0
Num_leaf_page : 1
Num_non_leaf_page : 0
Num_ovf_page : 0
Num_total_page : 1
Height : 1
Avg_key_len : 0
Avg_rec_len : 0
Total_space : '16.0K'
Total_used_space_non_ovf : '120.0B'
Total_free_space_non_ovf : '15.8K'
Total_used_space_ovf : '0.0B'
Total_free_space_ovf : '0.0B'
Avg_num_key_per_page_non_ovf : 0
Avg_free_space_per_page_non_ovf : '15.8K'
Avg_num_ovf_page_per_key : 0
Avg_free_space_per_page_ovf : '0.0B'
Max_num_ovf_page_a_key : 0
SHOW ALL INDEXES CAPACITY OF tbl1;
<00001> Table_name : 'dba.tbl1'
Index_name : 'index_a'
Btid : '(0|4160|4161)'
Num_distinct_key : 0
Total_value : 0
Deduplicate_distinct_key : 0
Avg_num_value_per_key : 0
Avg_num_value_per_deduplicate_key: 0
Num_leaf_page : 1
Num_non_leaf_page : 0
Num_ovf_page : 0
Num_total_page : 1
Height : 1
Avg_key_len : 0
Avg_rec_len : 0
Total_space : '16.0K'
Total_used_space_non_ovf : '120.0B'
Total_free_space_non_ovf : '15.8K'
Total_used_space_ovf : '0.0B'
Total_free_space_ovf : '0.0B'
Avg_num_key_per_page_non_ovf : 0
Avg_free_space_per_page_non_ovf : '15.8K'
Avg_num_ovf_page_per_key : 0
Avg_free_space_per_page_ovf : '0.0B'
Max_num_ovf_page_a_key : 0
<00002> Table_name : 'dba.tbl1'
Index_name : 'index_b'
Btid : '(0|4224|4225)'
Num_distinct_key : 0
Total_value : 0
Deduplicate_distinct_key : 0
Avg_num_value_per_key : 0
Avg_num_value_per_deduplicate_key: 0
Num_leaf_page : 1
Num_non_leaf_page : 0
Num_ovf_page : 0
Num_total_page : 1
Height : 1
Avg_key_len : 0
Avg_rec_len : 0
Total_space : '16.0K'
Total_used_space_non_ovf : '124.0B'
Total_free_space_non_ovf : '15.8K'
Total_used_space_ovf : '0.0B'
Total_free_space_ovf : '0.0B'
Avg_num_key_per_page_non_ovf : 0
Avg_free_space_per_page_non_ovf : '15.8K'
Avg_num_ovf_page_per_key : 0
Avg_free_space_per_page_ovf : '0.0B'
Max_num_ovf_page_a_key : 0
SHOW CRITICAL SECTIONS¶
특정 데이터베이스의 전체 크리티컬 섹션(critical section, 이하 CS) 정보를 출력한다.
SHOW CRITICAL SECTIONS;
해당 구문은 다음의 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Index |
INT |
CS 인덱스 |
Name |
VARCHAR(32) |
CS 이름 |
Num_holders |
VARCHAR(16) |
해당 CS 보유자의 개수. 다음 값 중 하나: ‘N readers’, ‘1 writer’, ‘none’ |
Num_waiting_readers |
INT |
읽기 대기자의 개수 |
Num_waiting_writers |
INT |
쓰기 대기자의 개수 |
Owner_thread_index |
INT |
CS 쓰기 소유자의 쓰레드 인덱스. 소유자 없으면 NULL |
Owner_tran_index |
INT |
CS 쓰기 소유자의 트랜잭션 인덱스. 소유자 없으면 NULL |
Total_enter_count |
BIGINT |
진입자의 전체 개수 |
Total_waiter_count |
BIGINT |
대기자의 전체 개수 |
Waiting_promoter_thread_index |
INT |
승격 대기자의 쓰레드 인덱스. 승격 대기자 없으면 NULL |
Max_waiting_msecs |
NUMERIC(10,3) |
최대 대기 시간(밀리 초) |
Total_waiting_msecs |
NUMERIC(10,3) |
전체 대기 시간(밀리초) |
다음은 이 구문을 수행한 예이다.
SHOW CRITICAL SECTIONS;
Index Name Num_holders Num_waiting_readers Num_waiting_writers Owner_thread_index Owner_tran_index Total_enter_count Total_waiter_count Waiting_promoter_thread_index Max_waiting_msecs Total_waiting_msecs
============================================================================================================================================================================================================================================================
0 'ER_LOG_FILE' 'none' 0 0 NULL NULL 217 0 NULL 0.000 0.000
1 'ER_MSG_CACHE' 'none' 0 0 NULL NULL 0 0 NULL 0.000 0.000
2 'WFG' 'none' 0 0 NULL NULL 0 0 NULL 0.000 0.000
3 'LOG' 'none' 0 0 NULL NULL 11 0 NULL 0.000 0.000
4 'LOCATOR_CLASSNAME_TABLE' 'none' 0 0 NULL NULL 33 0 NULL 0.000 0.000
5 'QPROC_QUERY_TABLE' 'none' 0 0 NULL NULL 3 0 NULL 0.000 0.000
6 'QPROC_LIST_CACHE' 'none' 0 0 NULL NULL 1 0 NULL 0.000 0.000
7 'DISK_CHECK' 'none' 0 0 NULL NULL 3 0 NULL 0.000 0.000
8 'CNV_FMT_LEXER' 'none' 0 0 NULL NULL 0 0 NULL 0.000 0.000
9 'HEAP_CHNGUESS' 'none' 0 0 NULL NULL 10 0 NULL 0.000 0.000
10 'TRAN_TABLE' 'none' 0 0 NULL NULL 7 0 NULL 0.000 0.000
11 'CT_OID_TABLE' 'none' 0 0 NULL NULL 0 0 NULL 0.000 0.000
12 'HA_SERVER_STATE' 'none' 0 0 NULL NULL 2 0 NULL 0.000 0.000
13 'COMPACTDB_ONE_INSTANCE' 'none' 0 0 NULL NULL 0 0 NULL 0.000 0.000
14 'ACL' 'none' 0 0 NULL NULL 0 0 NULL 0.000 0.000
15 'PARTITION_CACHE' 'none' 0 0 NULL NULL 1 0 NULL 0.000 0.000
16 'EVENT_LOG_FILE' 'none' 0 0 NULL NULL 0 0 NULL 0.000 0.000
17 'LOG_ARCHIVE' 'none' 0 0 NULL NULL 0 0 NULL 0.000 0.000
18 'ACCESS_STATUS' 'none' 0 0 NULL NULL 1 0 NULL 0.000 0.000
SHOW TRANSACTION TABLES¶
각 트랜잭션을 관리하는 데이터 구조인 트랜잭션 디스크립터(transcation descriptor)의 내부 정보를 출력한다. 유효한 트랜잭션만 출력되므로, 출력되는 트랜잭션 디스크립터의 스냅샷이 일관되지 않을 수도 있다.
SHOW { TRAN | TRANSACTION } TABLES [ WHERE expr ];
해당 구문은 다음의 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Tran_index |
INT |
트랜잭션 테이블의 인덱스 또는 할당되지 않은 트랜잭션 슬롯일 경우 NULL 값 |
Tran_id |
INT |
트랜잭션 식별자 |
Is_loose_end |
INT |
0 : 완료된 트랜잭션일 경우 , 1 : 완료되지 않은 트랜잭션 |
State |
VARCHAR(64) |
트랜잭션의 상태. 다음 값 중 하나: ‘TRAN_RECOVERY’, ‘TRAN_ACTIVE’, ‘TRAN_UNACTIVE_COMMITTED’, ‘TRAN_UNACTIVE_WILL_COMMIT’, ‘TRAN_UNACTIVE_COMMITTED_WITH_POSTPONE’, ‘TRAN_UNACTIVE_ABORTED’, ‘TRAN_UNACTIVE_UNILATERALLY_ABORTED’, ‘TRAN_UNACTIVE_2PC_PREPARE’, ‘TRAN_UNACTIVE_2PC_COLLECTING_PARTICIPANT_VOTES’, ‘TRAN_UNACTIVE_2PC_ABORT_DECISION’, ‘TRAN_UNACTIVE_2PC_COMMIT_DECISION’, ‘TRAN_UNACTIVE_COMMITTED_INFORMING_PARTICIPANTS’, ‘TRAN_UNACTIVE_ABORTED_INFORMING_PARTICIPANTS’,’TRAN_STATE_UNKNOWN’ |
Isolation |
VARCHAR(64) |
트랜잭션의 격리 수준. 다음 중 하나: ‘SERIALIZABLE’, ‘REPEATABLE READ’, ‘COMMITTED READ’, ‘TRAN_UNKNOWN_ISOLATION’ |
Wait_msecs |
INT |
잠금 상태로 대기(milliseconds) |
Head_lsa |
VARCHAR(64) |
트랜잭션 로그의 처음 주소 |
Tail_lsa |
VARCHAR(64) |
트랜잭션 로그의 마지막 주소 |
Undo_next_lsa |
VARCHAR(64) |
UNDO 트랜잭션의 다음 로그 주소 |
Postpone_next_lsa |
VARCHAR(64) |
실행 될 연기된 레코드의 다음 로그 주소 |
Savepoint_lsa |
VARCHAR(64) |
마지막 세이브 포인트의 로그 주소 |
Topop_lsa |
VARCHAR(64) |
마지막 최상위 동작의 로그 주소 |
Tail_top_result_lsa |
VARCHAR(64) |
마지막 부분 취소 또는 커밋의 로그 주소 |
Client_id |
INT |
클라이언트의 트랜잭션 고유 식별자 |
Client_type |
VARCHAR(40) |
클라이언트 타입. 다음 중 하나 값 ‘SYSTEM_INTERNAL’, ‘DEFAULT’, ‘CSQL’, ‘READ_ONLY_CSQL’, ‘BROKER’, ‘READ_ONLY_BROKER’, ‘SLAVE_ONLY_BROKER’, ‘ADMIN_UTILITY’, ‘ADMIN_CSQL’, ‘LOG_COPIER’, ‘LOG_APPLIER’, ‘RW_BROKER_REPLICA_ONLY’, ‘RO_BROKER_REPLICA_ONLY’, ‘SO_BROKER_REPLICA_ONLY’,’ADMIN_CSQL_WOS’, ‘UNKNOWN’ |
Client_info |
VARCHAR(256) |
클라이언트의 정보 |
Client_db_user |
VARCHAR(40) |
클라이언트의 데이터베이스 로그인 계정 |
Client_program |
VARCHAR(256) |
클라이언트의 프로그램명 |
Client_login_user |
VARCHAR(16) |
클라이언트를 수행 중인 OS 로그인 계정 |
Client_host |
VARCHAR(64) |
클라이언트의 호스트명 |
Client_pid |
INT |
클라이언트의 프로세스 id |
Topop_depth |
INT |
최상위 동작의 단계 |
Num_unique_btrees |
INT |
unique_stat_info 배열에 포함된 고유한 btree 의 개수 |
Max_unique_btrees |
INT |
unique_stat_info_array 의 크기 |
Interrupt |
INT |
수행 중인 트랜잭션의 인터럽트 유무, 0 : 무, 1 : 유 |
Num_transient_classnames |
INT |
트랜잭션에 의해 임시 생성되는 클래스의 개수 |
Repl_max_records |
INT |
복제 레코드 배열의 크기 |
Repl_records |
VARCHAR(20) |
복제 레코드 버퍼 배열, 주소 포인터를 0x12345678 처럼 나타냄, NULL은 0x00000000 을 의미함 |
Repl_current_index |
INT |
복제 레코드의 현재 위치 |
Repl_append_index |
INT |
추가 레코드의 현재 위치 |
Repl_flush_marked_index |
INT |
플러시 표시된 복제 레코드의 인덱스 |
Repl_insert_lsa |
VARCHAR(64) |
쓰기 복제의 로그 주소 |
Repl_update_lsa |
VARCHAR(64) |
갱신 복제의 로그 주소 |
First_save_entry |
VARCHAR(20) |
트랜잭션의 처음 세이브 포인트 시작점. 주소 포인터를 0x12345678 처럼 나타냄, NULL은 0x00000000 을 의미함 |
Tran_unique_stats |
VARCHAR(20) |
다중 열에 대한 로컬 통계 정보. 주소 포인터를 0x12345678 처럼 나타냄, NULL은 0x00000000 을 의미함 |
Modified_class_list |
VARCHAR(20) |
더티 클래쓰의 목록, 주소 포인터를 0x12345678 처럼 나타냄, NULL은 0x00000000 을 의미함 |
Num_temp_files |
INT |
임시 파일의 개수 |
Waiting_for_res |
VARCHAR(20) |
대기 리소스, 주소 포인터를 0x12345678 처럼 나타냄, NULL은 0x00000000 을 의미함 |
Has_deadlock_priority |
INT |
데드락 우선순위 유무, 0 : 무, 1 : 유 |
Suppress_replication |
INT |
플래그가 세팅 될 때 복제 로그 쓰기를 생략 |
Query_timeout |
DATETIME |
query_timeout 시간 내에 퀴리는 수행되어야 함. NULL일 경우 질의가 끝날 때 까지 기다림. |
Query_start_time |
DATETIME |
질의 시작 시간, 질의 완료시 NULL |
Tran_start_time |
DATETIME |
트랜잭션 시작 시간, 트랜잭션 완료시 NULL |
Xasl_id |
VARCHAR(64) |
vpid:(volid|pageid),vfid:(volid|pageid), 질의 완료시 NULL |
Disable_modifications |
INT |
0보다 클 경우 수정을 금지 |
Abort_reason |
VARCHAR(40) |
트랜잭션 중지 사유, 다음 중 하나 ‘NORMAL’, ‘ABORT_DUE_TO_DEADLOCK’, ‘ABORT_DUE_ROLLBACK_ON_ESCALATION’ |
다음은 이 구문을 수행한 예이다.
SHOW TRAN TABLES WHERE CLIENT_TYPE = 'CSQL';
=== <Result of SELECT Command in Line 1> ===
<00001> Tran_index : 1
Tran_id : 58
Is_loose_end : 0
State : 'ACTIVE'
Isolation : 'COMMITTED READ'
Wait_msecs : -1
Head_lsa : '(-1|-1)'
Tail_lsa : '(-1|-1)'
Undo_next_lsa : '(-1|-1)'
Postpone_next_lsa : '(-1|-1)'
Savepoint_lsa : '(-1|-1)'
Topop_lsa : '(-1|-1)'
Tail_top_result_lsa : '(-1|-1)'
Client_id : 108
Client_type : 'CSQL'
Client_info : ''
Client_db_user : 'PUBLIC'
Client_program : 'csql'
Client_login_user : 'cubrid'
Client_host : 'cubrid001'
Client_pid : 13190
Topop_depth : 0
Num_unique_btrees : 0
Max_unique_btrees : 0
Interrupt : 0
Num_transient_classnames: 0
Repl_max_records : 0
Repl_records : NULL
Repl_current_index : 0
Repl_append_index : -1
Repl_flush_marked_index : -1
Repl_insert_lsa : '(-1|-1)'
Repl_update_lsa : '(-1|-1)'
First_save_entry : NULL
Tran_unique_stats : NULL
Modified_class_list : NULL
Num_temp_files : 0
Waiting_for_res : NULL
Has_deadlock_priority : 0
Suppress_replication : 0
Query_timeout : NULL
Query_start_time : 03:10:11.425 PM 02/04/2016
Tran_start_time : 03:10:11.425 PM 02/04/2016
Xasl_id : 'vpid: (32766|50), vfid: (32766|43)'
Disable_modifications : 0
Abort_reason : 'NORMAL'
SHOW THREADS¶
각 스레드의 내부 정보를 출력한다. 반환 결과는 “Index” 칼럼의 오름차순으로 정렬되며, 출력되는 스레드 엔트리의 스냅샷이 일관되지 않을 수도 있다. SA MODE일 경우 이 구문은 아무런 결과도 출력하지 않는다.
SHOW THREADS [ WHERE expr ];
해당 구문은 다음의 칼럼을 출력한다.
칼럼명 |
타입 |
설영 |
---|---|---|
Index |
INT |
쓰레드 시작 인덱스 |
Jobq_index |
INT |
워커 쓰레드의 작업 큐 인덱스. 워커 쓰레드가 아닌 경우 NULL |
Thread_id |
BIGINT |
쓰레드 식별자 |
Tran_index |
INT |
쓰레드가 속한 트랜잭션 인덱스. 관련 쓰레드가 없을 경우 NULL |
Type |
VARCHAR(8) |
쓰레드 종류. 다음 중 하나 ‘MASTER’, ‘SERVER’, ‘WORKER’, ‘DAEMON’, ‘VACUUM_MASTER’, ‘VACUUM_WORKER’, ‘NONE’, ‘UNKNOWN’. |
Status |
VARCHAR(8) |
쓰레드 상태. 다음 중 하나 ‘FREE’, ‘RUN’, ‘WAIT’, ‘CHECK’. |
Resume_status |
VARCHAR(32) |
재시작 상태. 다음 중 하나 ‘RESUME_NONE’, ‘RESUME_DUE_TO_INTERRUPT’, ‘RESUME_DUE_TO_SHUTDOWN’, ‘PGBUF_SUSPENDED’, ‘PGBUF_RESUMED’, ‘JOB_QUEUE_SUSPENDED’, ‘JOB_QUEUE_RESUMED’, ‘CSECT_READER_SUSPENDED’, ‘CSECT_READER_RESUMED’, ‘CSECT_WRITER_SUSPENDED’, ‘CSECT_WRITER_RESUMED’, ‘CSECT_PROMOTER_SUSPENDED’, ‘CSECT_PROMOTER_RESUMED’, ‘CSS_QUEUE_SUSPENDED’, ‘CSS_QUEUE_RESUMED’, ‘QMGR_ACTIVE_QRY_SUSPENDED’, ‘QMGR_ACTIVE_QRY_RESUMED’, ‘QMGR_MEMBUF_PAGE_SUSPENDED’, ‘QMGR_MEMBUF_PAGE_RESUMED’, ‘HEAP_CLSREPR_SUSPENDED’, ‘HEAP_CLSREPR_RESUMED’, ‘LOCK_SUSPENDED’, ‘LOCK_RESUMED’, ‘LOGWR_SUSPENDED’, ‘LOGWR_RESUMED’ |
Net_request |
VARCHAR(64) |
net_requests 배열의 요청 이름, 예: ‘LC_ASSIGN_OID’. 요청 이름이 없을 경우 NULL |
Conn_client_id |
INT |
쓰레드에 응답하는 클라이언트의 식별자, 클라이언트의 식별자가 없을 경우 NULL |
Conn_request_id |
INT |
쓰레드가 처리하고 있는 요청의 식별자, 요청 식별자가 없을 경우 NULL |
Conn_index |
INT |
연결 인덱스, 없을 경우 NULL |
Last_error_code |
INT |
마지막 에러 코드 |
Last_error_msg |
VARCHAR(256) |
마지막 에러 메세지, 메세지가 256 자 보다 클 경우 일부만 보인다. 에러 메세지가 없을 경우 NULL |
Private_heap_id |
VARCHAR(20) |
쓰레드 내부 메모리 할당자의 주소, 예: 0x12345678. 관련 힙 id 가 없을 경우 NULL |
Query_entry |
VARCHAR(20) |
QMGR_QUERY_ENTRY의 주소 , 예: 0x12345678, 연관된 QMGR_QUERY_ENTRY 가 없을 경우 NULL. |
Interrupted |
INT |
요청/트랜잭션의 인터럽트 유/무 0 또는 1 |
Shutdown |
INT |
서버의 중지 진행 여/부, 0 또는 1 |
Check_interrupt |
INT |
0 또는 1 |
Wait_for_latch_promote |
INT |
0 또는 1, 쓰레드가 래치 프로모션(latch promotion)을 대기하는 여/부 |
Lockwait_blocked_mode |
VARCHAR(24) |
잠금대기 블록 모드, 다음 중 하나. ‘NULL_LOCK’, ‘IS_LOCK’, ‘S_LOCK’, ‘IS_LOCK’, ‘IX_LOCK’, ‘SIX_LOCK’, ‘X_LOCK’, ‘SCH_M_LOCK’, ‘UNKNOWN’ |
Lockwait_start_time |
DATETIME |
차단이 시작된 시간, 차단 상태 아닌 경우 NULL |
Lockwait_msecs |
INT |
차단되었던 시간(milliseconds), 차단된 상태가 아닌 경우 NULL |
Lockwait_state |
VARCHAR(24) |
잠금 대기 상태 예: ‘SUSPENDED’, ‘RESUMED’, ‘RESUMED_ABORTED_FIRST’, ‘RESUMED_ABORTED_OTHER’, ‘RESUMED_DEADLOCK_TIMEOUT’, ‘RESUMED_TIMEOUT’, ‘RESUMED_INTERRUPT’. 블록 된 상태가 없을 경우 NULL |
Next_wait_thread_index |
INT |
다음 대기 쓰레드 인덱스, 없을 경우 NULL |
Next_tran_wait_thread_index |
INT |
잠금 매니저의 다음 대기 쓰레드 인덱스, 없을 경우 NULL |
Next_worker_thread_index |
INT |
css_Job_queue.worker_thrd_list 의 다음 워커 쓰레드 인덱스, 없을 경우 NULL |
다음은 이 구문을 수행한 예이다.
SHOW THREADS WHERE RESUME_STATUS != 'RESUME_NONE' AND STATUS != 'FREE';
=== <Result of SELECT Command in Line 1> ===
<00001> Index : 183
Jobq_index : 3
Thread_id : 140077788813056
Tran_index : 3
Type : 'WORKER'
Status : 'RUN'
Resume_status : 'JOB_QUEUE_RESUMED'
Net_request : 'QM_QUERY_EXECUTE'
Conn_client_id : 108
Conn_request_id : 196635
Conn_index : 3
Last_error_code : 0
Last_error_msg : NULL
Private_heap_id : '0x02b3de80'
Query_entry : '0x7f6638004cb0'
Interrupted : 0
Shutdown : 0
Check_interrupt : 1
Wait_for_latch_promote : 0
Lockwait_blocked_mode : NULL
Lockwait_start_time : NULL
Lockwait_msecs : NULL
Lockwait_state : NULL
Next_wait_thread_index : NULL
Next_tran_wait_thread_index: NULL
Next_worker_thread_index : NULL
<00002> Index : 192
Jobq_index : 2
Thread_id : 140077779339008
Tran_index : 2
Type : 'WORKER'
Status : 'WAIT'
Resume_status : 'LOCK_SUSPENDED'
Net_request : 'LC_FIND_LOCKHINT_CLASSOIDS'
Conn_client_id : 107
Conn_request_id : 131097
Conn_index : 2
Last_error_code : 0
Last_error_msg : NULL
Private_heap_id : '0x02bcdf10'
Query_entry : NULL
Interrupted : 0
Shutdown : 0
Check_interrupt : 1
Wait_for_latch_promote : 0
Lockwait_blocked_mode : 'SCH_S_LOCK'
Lockwait_start_time : 10:47:45.000 AM 02/03/2016
Lockwait_msecs : -1
Lockwait_state : 'SUSPENDED'
Next_wait_thread_index : NULL
Next_tran_wait_thread_index: NULL
Next_worker_thread_index : NULL
SHOW JOB QUEUES¶
작업 큐의 상태를 보여준다. SA MODE일 때에 이 문은 아무 결과도 보여주지 않는다.
SHOW JOB QUEUES;
이 질의는 다음의 칼럼들을 출력한다:
칼럼명 |
타입 |
설명 |
---|---|---|
Jobq_index |
INT |
작업 큐의 인덱스 |
Num_total_workers |
INT |
큐의 워커 쓰레드 총 개수 |
Num_busy_workers |
INT |
큐의 활성 워커 쓰레드의 개수 |
Num_connection_workers |
INT |
큐의 연결(connection) 워커 쓰레드의 수 |
SHOW PAGE BUFFER STATUS¶
데이터 페이지 버퍼의 상태를 출력한다.
SHOW PAGE BUFFER STATUS;
해당 구문은 다음의 칼럼을 출력한다.
칼럼 이름 |
타입 |
설명 |
---|---|---|
Hit_rate |
NUMERIC(13,10) |
데이터 버퍼의 페이지 적중률 (이전 출력 이후) |
Num_hit |
BIGINT |
데이터 버퍼의 페이지 적중 수 (이전 출력 이후) |
Num_page_request |
BIGINT |
데이터 버퍼에 페이지 요청 수 (이전 출력 이후) |
Pool_size |
INT |
데이터 버퍼의 전체 페이지 수 |
Page_size |
INT |
데이터 버퍼의 단일 페이지 크기 |
Free_pages |
INT |
데이터 버퍼의 여유 페이지 수 |
Victim_candidate_pages |
INT |
데이터 버퍼의 희생자(victim) 후보 페이지 수 |
Clean_pages |
INT |
데이터 버퍼의 갱신되지 않은 페이지 수 |
Dirty_pages |
INT |
데이터 버퍼의 갱신된 페이지 수 |
Num_index_pages |
INT |
데이터 버퍼의 인덱스 페이지 수 |
Num_data_pages |
INT |
데이터 버퍼의 데이터 페이지 수 |
Num_system_pages |
INT |
데이터 버퍼의 시스템 페이지 수 |
Num_temp_pages |
INT |
데이터 버퍼의 임시 페이지 수 |
Num_pages_created |
BIGINT |
데이터 버퍼에서 새롭게 생성된 페이지 수 (이전 출력 이후) |
Num_pages_written |
BIGINT |
데이터 버퍼에서 디스크로 쓰여진 페이지 수 (이전 출력 이후) |
Pages_written_rate |
NUMERIC(20,10) |
데이터 버퍼에서 디스크로 초당 쓰여진 페이지 수 (이전 출력 이후) |
Num_pages_read |
BIGINT |
데이터 버퍼로 디스크에서 읽은 페이지 수 (이전 출력 이후) |
Pages_read_rate |
NUMERIC(20,10) |
데이터 버퍼로 디스크에서 초당 읽은 페이지 수 (이전 출력 이후) |
Num_flusher_waiting_threads |
INT |
데이터 버퍼의 페이지 할당을 대기하는 쓰레드 수 |
다음은 이 구문을 수행한 예이다.
-- csql> ;line on
SHOW PAGE BUFFER STATUS;
<00001> Hit_rate : 0.0000000000
Num_hit : 0
Num_page_request : 0
Pool_size : 32768
Page_size : 16392
Free_pages : 32739
Victim_candidate_pages : 0
Clean_pages : 32767
Dirty_pages : 1
Num_index_pages : 2
Num_data_pages : 15
Num_system_pages : 12
Num_temp_pages : 0
Num_pages_created : 0
Num_pages_written : 0
Pages_written_rate : 0.0000000000
Num_pages_read : 0
Pages_read_rate : 0.0000000000
Num_flusher_waiting_threads: 0