태그 미디어로그 위치로그
'인덱스 정의'에 해당되는 글 1건
알티베이스의 친절한 DESC 기능
개발자 세상

오늘은 알티베이스 iSQL의 친절한 DESC기능에 대해 간단히 소개하고자 합니다.

http://ukja.tistory.com/258에서 ukja님은 DESC 기능을 튜닝 툴의 범주에 넣는다는 개인적인 견해와 더불어 부족한 DESC기능을 보완하기 위해 작성한 스크립트를 공개했습니다. (덧붙여 소개하자면 ukja님은 세계적인 오라클 전문가입니다. 특히나 블로그를 통해 새로운 이슈를 지속적으로 생산하고, 영문 블로그를 운영하며 영문권 엔지니어와 소통하는 제가 아는 유일한 블로거입니다.)

문득 위의 글을 읽다가 저 글에서 필요로 하는 기능의 일부는 알티베이스에서 이미 제공하고 있는데… 라는 생각이 스쳐 글을 남깁니다.

DESC 명령은 데이블의 정의를 보고자 할 때 주로 사용합니다. 일반적으로 테이블의 정의 자체(칼럼 이름. 타입, 널 여부)만을 제공하는 경우가 많습니다. (타DBMS를 추가로 두 개 정도 확인해보았는데, 큰 차이는 없었습니다.)

하지만 사용자는 테이블에 대한 정보를 알고자 할 때, 테이블 칼럼에 대한 정보와 더불어 인덱스에 대한 정보까지 확인하고자 하는게 일반적이라 생각합니다.

알티베이스는 iSQL의 DESC명령은 칼럼의 이름, 타입, 널 여부와 더불어 테이블이 속한 테이블스페이스 정보와 인덱스 정보 등을 제공합니다.

예를 들어 아래와 같이 T1테이블을 만들고 DESC명령을 이용하여 조회해 보겠습니다.

  1. iSQL> CREATE TABLE T1 (A NUMBER PRIMARY KEY, B CHAR(100), C DATE NOT NULL);  
  2. Create success.  
  3. iSQL> CREATE INDEX T1_IDX_B ON T1(B);  
  4. Create success.  
  5. iSQL> DESC T1;  
  6. [ TABLESPACE : SYS_TBS_MEM_DATA ]  
  7. [ ATTRIBUTE ]  
  8. ------------------------------------------------------------------------------  
  9. NAME                                     TYPE                        IS NULL  
  10. ------------------------------------------------------------------------------  
  11. A                                        FLOAT           FIXED       NOT NULL  
  12. B                                        CHAR(100)       FIXED  
  13. C                                        DATE            FIXED       NOT NULL  
  14. INDEX ]  
  15. ------------------------------------------------------------------------------  
  16. NAME                                     TYPE     IS UNIQUE     COLUMN  
  17. ------------------------------------------------------------------------------  
  18. __SYS_IDX_ID_106                         BTREE    UNIQUE        A ASC  
  19. T1_IDX_B                                 BTREE                  B ASC  
  20. PRIMARY KEY ]  
  21. ------------------------------------------------------------------------------  
  22. 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가 테이블의 칼럼 이름과 타입 등을 표시하는 것에 비해 인덱스 정보를 비롯한 추가의 정보를 편리하게 제공하고 있답니다. ^^