
2021년 2월 24일 발표된 2021년의 Informix Roadmap 자료를 공유드립니다. 2021년 3분기에 12.10 버전의 차기 Fixpack이 예정되어 있다고 합니다. 12.10 버전은 2013년에 공개된 버전인데도 꾸준히 Fixpack이 공개되고 있네요. 14.10 버전도 올해 7번째 Fixpack이 공개되니 Informix 업그레이드를 고려한다면 14.10 버전도 충분히 안정적일 것으로 보입니다. 인포믹스 RSS, HDR, ER과 같은 복제 기능이 계속 개선중이고 모니터링 프로그램인 InformixHQ도 지속적으로 버전업이 이뤄질 모양입니다. Parallel Table Restore는 구체적으로 어떤 기능인지 모르겠지만 복구 성능에 관련된거라면 기대되는군요. row size도 2GB로 증가..
Informix에서 DECIMAL 형식으로 정의된 컬럼의 길이를 확인하는 방법을 정리해보겠습니다. 컬럼 정보는 syscolumns 카탈로그 테이블에서 참조할 수 있는데, 컬럼의 길이는 collength 컬럼의 값으로 확인할 수 있습니다. DECIMAL이나 MONEY 형식의 경우 전체 자릿수(precision), 소수 자릿수(scale)로 정의되는데 각 자릿수에 대해서 표시하는 컬럼은 없습니다. 이 정보를 나타내는 카탈로그 테이블이 있는지 IBM Community에 자문을 구했습니다. 먼저 Jonathan의 답변에 의하면 precision과 scale에 해당하는 값을 보여주는 컬럼은 없고 syscolumns 테이블의 collength 값을 16진수로 변환하여 확인할 수 있다고 합니다. $ dbaccess ..

Informix 서비스가 온라인 상태에서 어떻게 백업이 수행되는지 조사해봤습니다. 오랜기간 Informix를 경험했으면서도 아직도 내부 아키텍처에 정확히 알지 못하고 있었네요. Informix 데이터베이스가 동시에 여러 트랜잭션에 의해 변경되는 중에도 백업을 수행할 수 있는 이유는 Physical Log가 있기 때문입니다. 백업을 시작한 이후부터 데이터가 저장된 청크의 페이지에 변경이 일어나면, 변경된 데이터의 기존 이미지(before-images)를 Physical Log에 기록합니다. 그리고 다시 temp table에 before-images를 복사하여 최종적으로는 백업 미디어(tape)에 기록한다고 하네요. 아래는 그 내용을 도식화한 그림입니다. 백업이 시작된 이후부터는 데이터 청크의 변경된 페이지..
안녕하세요. 인포믹스에서 테이블과 인덱스의 dbspace 위치를 이동시키는 ALTER FRAGMENT INIT 문장에 대해서 테스트한 것을 정리해보겠습니다. 원래 ALTER FRAGMENT INIT 문장은 기존의 테이블의 파티션 스키마를 수정하기 위한 용도인데 파티션되지 않은 테이블에도 적용되어서 테스트를 해보았습니다. 데모용 데이터베이스의 stores_demo:customer 테이블을 사용하여 아래와 같이 customer_copy라는 테이블을 만들고 데이터를 63만건 정도 입력했습니다. drop table customer_copy; create raw table "informix".customer_copy ( customer_num serial not null , fname char(15), lname..
예전에 데이터베이스 사랑넷에서 dbload를 사용해서 특정 형식의 datetime 데이터를 입력하는 방법에 대해 답변한 적이 있는데 IBM Community에도 질문이 올라왔네요. 블로그에도 정리할 겸 올려봅니다. 먼저 입력하려는 데이터 형식은 '2019.10.03 05:24:24' 이런 식입니다. 인포믹스에서 기본 datetime 포맷을 살펴보면 아래와 같습니다. [informix@db2 ids1410fc3]$ echo "select current::datetime year to second " | dbaccess stores_demo Database selected. (expression) 2020-07-09 20:51:26 기본 포맷이 저렇게 표시되다보니 dbload로 데이터를 입력하면 아래와 같이..

맙소사..인포믹스 12.10.xC2 버전부터 쿼리 플랜을 확인하는 함수가 이미 있었네요. InformixHQ의 Schema Manager에서 쿼리 플랜을 확인하다가 알게되었습니다. 문서화가 되어있었다면 좋았을텐데.. 아래는 ifx_explain 함수를 사용해 쿼리 플랜을 출력한 예제입니다. > execute function ifx_explain( 'select * from systables' ); (expression) QUERY: (OPTIMIZATION TIMESTAMP: 06-29-2020 23:12:56) ------ select * from systables Estimated Cost: 18 Estimated # of Rows Returned: 266 1) informix.systables: S..
14.10.xC4 버전부터 공식적으로 클라이언트에서도 쿼리 플랜을 확인할 수 있는 함수가 제공되는군요. 인포믹스는 과거부터 DB서버에서 set explain 문장을 실행한 후 SQL 문장을 실행하면 생성되는 파일에서 쿼리 플랜을 참조할 수 밖에 없었는데요. 그렇다보니 클라이언트에서는 쿼리 플랜을 볼 방법이 없었습니다. 그래서 11.50버전부터 쿼리 플랜을 시각화하는 explain_sql이라는 루틴이 제공되었는데 IBM Data Studio에서 제한적으로만 쓸 수 있어서 그렇게 많이 사용되지는 않았습니다. 사실 Data Studio는 Db2에 더 최적화 된 느낌이라 인포믹스 DB에 사용하기에는 좀 불편하지요. 그래서 Fernando Nunes씨가 SQL 프로시저를 사용해서 쿼리 플랜을 보는 방법을 제시하기..
online.log 파일을 보다가 바뀐부분을 또 찾았네요. online.log 내용에서 라인마다 날짜를 표시하는 방식이 몇가지 추가되었습니다. 기존에는 MSG_DATE 파라미터 설정값을 0과 1로만 설정할 수 있었는데요. 14.10.xC4 버전부터는 0,1,2,3 의 값을 설정할 수 있습니다. 아래는 onstat에서 보여주는 MSG_DATE 파라미터의 설명입니다. $ onstat -g cfg full MSG_DATE IBM Informix Dynamic Server Version 14.10.FC4W1DE -- On-Line -- Up 23:01:10 -- 2631308 Kbytes Configuration Parameter Info id name type maxlen units rsvd tunable 1..
- Total
- Today
- Yesterday