TmaxData의 Tibero4로 migration을 진행하면서 알게된 몇가지 내용 중 Index rebuild에 대해서 얘기해보고자합니다. 기존에 사용하던 Oracle을 기준으로 하면... (제가 가장 잘 아는게 Oracle이라 이녀석이 기준입니다.) Index를 사용하다가 rebuild 해줄때 몇가지 옵션을 줄 수 있습니다.

SQL> ALTER INDEX IDX01 REBUILD ONLINE;
   * 기존의 인덱스를 계속 유지한채로 REBUILD하고, REBUILD가 끝나면 바꿔치기 하는 옵션이죠.

SQL> ALTER INDEX IDX01 REBUILD ONLINE TABLESPACE TS_IDX2;
   * REBUILD를 하면서 저장하는 TABLESPACE도 바꾸는 옵션이죠.


 사실 DB 관리를 하다보면 tablespace를 바꿔줄 일이 가끔씩 생깁니다. 그래서 Tablespace를 바꿀 수 있는 옵션은 아주 유용합니다. 그런데... Tibero4에서는 이를 지원하지 않고 있네요. ㅡ.ㅡ
[General syntax error]라는 오류가 발생합니다. Tmax에서도 지원하지 않는다고 하네요. 그런데, Tmax에서 제공하는 Tibero 관리/개발용 툴인 tbAdmin에는 인덱스 리빌드창(마법사??)에서 Tablespace를 선택할 수 있도록 되어있습니다. 혹시나 해서 실행시켜보니까 똑같은 오류가 발생하네요.


 Tibero를 사용하면 꼭 사용해보게되는 tbAdmin이라는 Tool이 있습니다. Tmax에서 Eclipse 기반으로 개발한 Tibero client tool입니다.
 작년 겨울부터 사용해온 툴인데... 이건 뭐...이클립스로 이런 저런 툴을 다 만들수 있구나 하는걸 알 수 있습니다.
IBM은 심포니라는 오피스 프로그램까지 만들어 놓기는 했지만, 국내 기업 중에서 이렇게 툴을 만들어 내놓은게 참 반갑더군요.

 문제는 Tibero에 있지 않나 생각합니다. tbAdmin에는 설정하는 항목이 있는데, Tibero에서는 막상 그 설정변경된 내용이 지원되지 않아서 에러가 발생하는 웃기는 상황이 있더군요.
뭐... 자세한 내용은 다음에 소개하도록 하겠습니다. 다만... 이클립스 기반으로 만들 툴이 좀 아깝구나 하는 생각이 들었습니다. 그럭저럭 client 설치없이 바로 쓸 수 있는 편한 환경이던데...

 현재 재직중인 직장에서 TmaxData의 Tibero4로 DBMS를 migration 및 신규 서비스 구축을 한다는 말씀을 드렸었나요? 음... 암튼 지금 그런 일이 진행되고 있습니다. 나름 대규모 작업이 진행중인데요.
국내 기업이다보니 버그나 기능 개선이 요구되면 그때그때 패치가 되고 있습니다. 이건 뭐 긍정적이라고 생각합니다. 아직 개선할 점이 많은게 문제이긴하지만 대응이 빠른 편이라고 생각합니다. 좋게좋게 생각해야죠.

 이번에 말씀드리려는건 현재 패치가 진행중이라고 알고있는데요. PSM(Oracle의 PL/SQL에 해당함)을 이용해서 함수(Function)를 만들어서 쓸때 생기는 문제입니다.

문제점 : select문장에서 만들어 놓은 함수를 실행시켰는데, 널(null) 값이 반환된다.

원인 : 함수안에서 실행되는 Query 문장이 인덱스를 타게되면 널(null) 값이 반환된다.

해결책 : 현재 패치 진행중이라고 한다. 일단 Full table scan하도록 힌트를 주면 됨.

 뭐... 패치 중이니까요... 곧 해결되겠죠.

+ Recent posts