오늘은 알티베이스 iSQL의 친절한 DESC기능에 대해 간단히 소개하고자 합니다.
http://ukja.tistory.com/258에서 ukja님은 DESC 기능을 튜닝 툴의 범주에 넣는다는 개인적인 견해와 더불어 부족한 DESC기능을 보완하기 위해 작성한 스크립트를 공개했습니다. (덧붙여 소개하자면 ukja님은 세계적인 오라클 전문가입니다. 특히나 블로그를 통해 새로운 이슈를 지속적으로 생산하고, 영문 블로그를 운영하며 영문권 엔지니어와 소통하는 제가 아는 유일한 블로거입니다.)
문득 위의 글을 읽다가 저 글에서 필요로 하는 기능의 일부는 알티베이스에서 이미 제공하고 있는데… 라는 생각이 스쳐 글을 남깁니다.
DESC 명령은 데이블의 정의를 보고자 할 때 주로 사용합니다. 일반적으로 테이블의 정의 자체(칼럼 이름. 타입, 널 여부)만을 제공하는 경우가 많습니다. (타DBMS를 추가로 두 개 정도 확인해보았는데, 큰 차이는 없었습니다.)
하지만 사용자는 테이블에 대한 정보를 알고자 할 때, 테이블 칼럼에 대한 정보와 더불어 인덱스에 대한 정보까지 확인하고자 하는게 일반적이라 생각합니다.
알티베이스는 iSQL의 DESC명령은 칼럼의 이름, 타입, 널 여부와 더불어 테이블이 속한 테이블스페이스 정보와 인덱스 정보 등을 제공합니다.
예를 들어 아래와 같이 T1테이블을 만들고 DESC명령을 이용하여 조회해 보겠습니다.
- iSQL> CREATE TABLE T1 (A NUMBER PRIMARY KEY, B CHAR(100), C DATE NOT NULL);
- Create success.
- iSQL> CREATE INDEX T1_IDX_B ON T1(B);
- Create success.
- iSQL> DESC T1;
- [ TABLESPACE : SYS_TBS_MEM_DATA ]
- [ ATTRIBUTE ]
- ------------------------------------------------------------------------------
- NAME TYPE IS NULL
- ------------------------------------------------------------------------------
- A FLOAT FIXED NOT NULL
- B CHAR(100) FIXED
- C DATE FIXED NOT NULL
- [ INDEX ]
- ------------------------------------------------------------------------------
- NAME TYPE IS UNIQUE COLUMN
- ------------------------------------------------------------------------------
- __SYS_IDX_ID_106 BTREE UNIQUE A ASC
- T1_IDX_B BTREE B ASC
- [ PRIMARY KEY ]
- ------------------------------------------------------------------------------
- A
제일 상단을 보시면, 테이블스페이스로 SYS_TBS_MEM_DATA라는 메모리 테이블 스페이스를 사용한다는 것을 표시해주고 있습니다. 알티베이스는 메모리 테이블과 디스크 테이블 기능을 동시에 제공하는 하이브리드 DBMS이므로 DESC명령으로 테이블이 속한 테이블스페이스를 표시해주는 기능은 매우 유용합니다.
계속 보시면, 기본적으로 T1 테이블에 NOT NULL 속성인 A 칼럼과 C 칼럼의 정보가 표시되고, 더불어 PRIMARY KEY가 A칼럼에 걸려있음이 표시됩니다. 또한 인덱스 정보에 생성한 T1_IDX_B라는 인덱스와 더불어 PRIMARY KEY를 위해 자동 생성된 __SYS_IDX_ID_106이라는 인덱스 역시 표시됨을 확인 할 수 있습니다.
위에서 보시는 바와 같이 알티베이스의 DESC 명령은 단순히 타 DBMS가 테이블의 칼럼 이름과 타입 등을 표시하는 것에 비해 인덱스 정보를 비롯한 추가의 정보를 편리하게 제공하고 있답니다. ^^
'개발자 세상' 카테고리의 다른 글
유닉스? unics? unix! (4) | 2014.02.19 |
---|---|
11월 알티베이스 정기교육 안내 (0) | 2014.02.16 |
iSQL에서 로우를 세로로 출력 (SET VERTICAL ON) (7) | 2014.02.15 |
알티베이스 8월 정기교육 안내입니다 (1) | 2014.02.14 |
알티베이스 7월 정기교육 안내 (0) | 2014.02.14 |