며칠 전에 gurubee에서 오라클 데이터베이스의 인덱스에 상수값을 넣는 방식에 대한 질문글이 올라와 찾아본 내용을 정리해보려고 합니다. 몇개의 블로그 글과 오라클 매뉴얼에서 이와 관련된 재미있는 내용을 발견했습니다. 오라클은 인덱스의 키 값이 모두 NULL인 row에 대해서는 저장하지 않는다는 것입니다. Oracle Database does not store in the index any rows where all the keys are NULL. docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5010.htm 이런 특성으로 인해 WHERE 조건절에 IS NULL을 사용할 경우 테이블 스캔이 발생할 수 있습니다. 이런 경우를 회피하기 위한 방법이 ..
안녕하세요. 지난번에 이어 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 등의 데이터베이스에 접근할 수 있..
요즘 구루비(gurubee.net)에서 쉬운 질문 위주로 SQL작성 연습을 해보고 있습니다. 생각보다 다양한 DBMS에 대한 질문이 꾸준히 올라오고 있어서 많은 공부가 되네요. 연속된 일자를 그룹으로 표시하는 내용인데 참고가 될 만한 내용이라 정리해보았습니다. 먼저 그룹을 만들고자 하는 테이블의 형태는 아래와 같습니다. KEY DATE 99769 2020-09-02 99769 2020-09-03 99769 2020-09-04 99769 2020-09-05 99769 2020-09-10 99769 2020-09-11 99769 2020-09-14 99769 2020-09-15 99769 2020-09-16 99769 2020-09-17 99769 2020-09-18 99769 2020-09-19 99769..
안녕하세요. ProDBA에서 MariaDB에서 ODBC를 사용해서 다른 데이터베이스를 참조할 수 있는 기능이 있다고해서 테스트해봤습니다. 제가 테스트한 환경은 CentOS 6.10와 MariaDB 10.2.32 입니다. 우선 MariaDB는 설치되어 있다고 가정하겠습니다. CONNECT Engine을 설치하는 방법은 아래 블로그를 참고했습니다. cirius.tistory.com/1609 CONNECT Engine을 설치하는 과정은 위의 블로그에 잘 소개되어 있어서 저의 시행착오를 공유하고자 합니다. 1. isql에서 'Can't open lib 'libsqora.so.11.1' : file not found' 메시지가 발생하는 경우 [root@db1 client64]# isql -v myora [0100..
예전에 데이터베이스 사랑넷에서 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로 데이터를 입력하면 아래와 같이..
사용자 예외 처리시 RAISE_APPLICATION_ERROR 구문을 사용하는데, 예외 상황이 발생할 경우 ORA-06512 메시지가 같이 나오더군요. 구루비 커뮤니티에서 사용자가 정의한 오류만 출력하는 방법에 대한 질문글이 있어서 나중에 참고도 할겸 찾아보았습니다. 먼저 구루비 커뮤니티 강좌의 사용자 정의 예외 예제입니다. (www.gurubee.net/lecture/1073) CREATE OR REPLACE PROCEDURE User_Exception (v_deptno IN emp.deptno%type ) IS -- 예외의 이름을 선언 user_define_error EXCEPTION; -- STEP 1 cnt NUMBER; BEGIN DBMS_OUTPUT.ENABLE; SELECT COUNT(emp..
맙소사..인포믹스 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..
- Total
- Today
- Yesterday