인포믹스 12.10.FC14버전에서 발견된 defect를 공유드립니다. 경우에 따라서는 심각한 문제가 될 것 같은데요. LPAD와 RPAD 함수 사용시 발생하는 문제입니다. 오류가 발생하는 조건은 아래와 같습니다. 1) multi-byte character set으로 구성된 데이터베이스 (en_us.utf8, ko_kr.ksc, ko_kr.949등) 2) source string이 varchar 또는 lvarchar 타입일 경우 3) source string이 empty string('')인 경우 상당히 오류가 발생할 가능성이 높은 조건입니다. 아래는 오류를 재현한 과정입니다. /work2/INFORMIX/1210FC14]export DB_LOCALE=en_us.utf8 /work2/INFORMIX/12..
안녕하세요. 인포믹스 14.10.xC2 버전부터 파일시스템의 Chunk를 빠르게 생성하는 기능이 추가되었습니다. 기존에는 파일시스템에서 Chunk를 생성하면 크기가 클수록 오래걸렸는데요. 이 기능을 사용하면 onspaces 명령을 실행하는 즉시 Chunk가 생성됩니다. Configuration 설명을 보면 다음과 같이 나와있습니다. Configuration Parameter Info id name type maxlen units rsvd tunable 108 USE_FALLOCATE BOOL 2 * default : 1 onconfig: 1 current : 1 This parameter is undocumented. Description: Enabling USE_FALLOCATE allows the s..
Informix는 PDQ 값에 따라 가용한 스레드 수만큼 작업이 병렬로 수행됩니다. PDQ 값은 세션에서 SET PDQPRIORITY 문장으로 설정할 수 있는데요. 프로시저가 컴파일될때 이 값이 인코딩되면서 카탈로그 테이블에 저장된다고 합니다. Fernando 의 블로그에서 루틴의 PDQ값을 참조할 수 있는 자세한 설명을 보실 수 있습니다. http://informix-technology.blogspot.com/2011/01/stored-procedure-pdq-pdq-dos.html Stored procedure PDQ / PDQ dos procedimentos This article is written in English and Portuguese Este artigo está escrito em I..
index page 최대 개수에 대해 조사하다보니 extent 할당에 대해서도 우연히 문서를 읽게 되었습니다. IBM Knowledge Center에 따르면 11.70.xC1 버전부터 partition header pages의 공간이 부족해지면 secondary header pages가 자동으로 할당된다고 합니다. https://www.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.perf.doc/ids_prf_309.htm If you have a table that needs more extents and the database server runs out of space on the partition header page, the database ..
예전에 Ben Thompson의 블로그에서 Index fragment의 page limit에 대한 글을 읽었습니다. 2014년의 글인데 Index의 페이지 수가 12.1버전부터 2^31 (2,147,483,647)개로 증가했다는 것이지요. IBM Knowledge Center에도 문서화되어 있습니다. https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.adref.doc/ids_adr_0718.htm#ids_adr_0718__table 블로그의 저자인 Ben은 11.7 버전에서도 테스트해보았다는 내용이 있습니다. 그러나 IBM 문서에는 해당 내용이 없어서, IBM Community에 자문을 구하고자 질문을 올렸고 Art와 Ben이 몇가지 조..
안녕하세요. IBM Community에서 Informix의 rowid를 참조하는 내용이 있어 공유하고자 합니다. 원래 글의 내용은 Informix page 할당 개수의 한계에 관련된 질문이었는데 파티션된 테이블의 rowid에 대한 내용이 중간에 언급되었습니다. 인포믹스의 파티션된 테이블은 rowid 컬럼이 존재하지 않는데, 파티션 테이블에 rowid를 표시되도록 하려면 아래의 명령으로 숨겨진 ROWID 컬럼을 추가할 수 있습니다. ALTER TABLE frag1 ADD ROWIDS; 그런데 ifx_row_id라는 숨겨진 컬럼이 있다고 합니다. 이리저리 자료들을 찾아보니 11.50 버전부터 지원되었다고 하는데요. IBM Knowledge Center에는 공식적으로 문서화되지 않았습니다. 기존 테이블에 ro..
안녕하세요. 회사 업무로 원격지에 있는 DB서버의 SEQUENCE값을 가져오는 방법에 대해 조사해보았습니다. 직접 쿼리로 수행하는 것보다는 VIEW를 사용하는 방법을 먼저 시도해보았는데요. 인포믹스의 경우는 아래와 같이 8319 오류가 발생했습니다. 8319 오류메시지를 finderr 명령으로 살펴보면 VIEW 정의에서는 CURRVAL 또는 NEXTVAL 키워드를 사용할 수 없다고 나와있습니다. Db2와 Oracle에서도 동일한 제약사항이 있었습니다. 어쨌든 이런 현상을 우회하기 위해 사용자 정의 함수를 생성하고 해당 함수를 호출하는 VIEW를 생성해보았습니다. VIEW가 잘 생성되고 조회도 아래와 같이 잘 수행되었습니다. RDBMS의 ANSI 표준인지 명확히 어떤 이유로 직접 VIEW 정의에서 사용할 ..
안녕하세요. 오늘 IBM의 defect 알림 메일에서 Informix 결함 관련 내용이 있어 공유드립니다. Informix 14.10의 세번째 12월 5일에 fix pack이 공개되었는데 벌써 결함이 발견되었습니다. 다행히 서버가 다운되지는 않는 것 같지만 마이그레이션 이슈가 있겠네요. APAR 번호는 아래와 같습니다. IT31187: ALTER TABLE CAN FAIL WITH -959/-172 AND ASSERT FAILED 해당 내용은 특정 조건의 테이블과 인덱스가 생성되어 있는 상태에서, INTEGER 타입 컬럼을 추가할 때 약간의 시간 소요후에 -959/-172 오류가 발생하면서 컬럼이 추가되지 않는 것입니다. 아래는 제가 테스트한 내용입니다. $ dbaccess stores_demo - > ..
- Total
- Today
- Yesterday