얼마전에 고객사에 Informix 12.10.FC14버전을 설치했었는데 기존에 실행했던 쉘스크립트가 실행이 안되더군요. 오늘 IBM My Notifications 메일을 보고 관련된 내용을 알게 되어 공유하고자 합니다. 관련된 문서는 아래 링크에서 확인하실 수 있습니다. www.ibm.com/support/pages/when-invoking-dbinfodbspacepartnum-error-727-raised DBINFO 함수를 호출할 때 발생하는 문제인데요. partnum 값이 작은 경우 727 오류가 발생합니다. $ echo "select first 1 dbinfo('dbspace',partnum) from systabnames;" | dbaccess sysmaster Database selected...
안녕하세요. 인포믹스에서 테이블과 인덱스의 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..
인포믹스에는 blobspace라는 데이터 저장영역이 있습니다. text와 byte 형식의 데이터를 저장할 수 있는 공간인데요. blobspace의 데이터 이동중에 알게된 정보를 공유하고자 글을 씁니다. pagesize가 2KB인 blobspace의 데이터를 pagesize가 8KB인 blobspace로 이동중 스토리지 부족 오류가 발생했습니다. 기존의 2KB 페이지의 데이터 여러개가 8KB에 들어갈 것이라 생각했는데 그렇지 않았습니다. IBM Knowledge Center의 문서에도 blobpage에 데이터를 저장하고 남는 공간은 사용하지 않는다고 하네요. 더보기 The storage strategy used to store simple large objects in a blobspace differs ..
안녕하세요. 지난번에 이어 Informix에서 Oracle 데이터베이스 참조하기 위한 구성을 테스트해봤습니다. 마찬가지로 Enterprise Gateway Manager를 사용했습니다. 그런데 Informix 데이터베이스에 접속한 상태에서 Oracle 데이터베이스를 참조하려고 하니 908 오류가 발생하면서 접속이 되지 않더군요. 그래서 이번에는 EGM 7.31.UD3 버전으로 테스트를 시도해봤습니다. 1. 테스트 환경 ① O/S : CentOS 7 ② 클라이언트 : Informix Server 12.10, Informix Server 14.10 ③ 접속 대상 : Oracle 11gR2, SQL Server 2017 on Linux ④ EGM 버전 : 7.31.UD3 2. 환경변수 설정 별도 EGM 인스턴..
안녕하세요. Informix는 기본적으로 Informix간의 데이터베이스 상호 참조는 가능하지만, 이기종 데이터베이스를 참조하는 기능은 없습니다. 이기종 데이터베이스를 참조하려면 Informix Enterprise Gateway Manager(EGM)가 필요한데요. EGM은 아래 그림과 같이 Informix Server와 별도의 프로세스를 거쳐서 이기종 데이터베이스에 접근할 수 있도록 해줍니다. Enterprise Gateway는 DRDA 프로토콜과 ODBC를 사용하는 두가지 제품군이 있습니다. DRDA 프로토콜로는 DB2/zos와 UDB에, ODBC로는 DataDirect 사에서 제공하는 ODBC 관리자 및 드라이버를 통해 Oracle, SQL Server, MySQL 등의 데이터베이스에 접근할 수 있..
예전에 데이터베이스 사랑넷에서 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 프로시저를 사용해서 쿼리 플랜을 보는 방법을 제시하기..
- Total
- Today
- Yesterday