본문 바로가기

전체 글

오라클에서 not exists, not in, minus의 성능차이 1. not in SELECT * FROM A WHERE a.key not in (SELECT b.key FROM B) 형태의 구문이며, B쪽을 먼저 access하여 b.key로 a.key에 공급자역할을 하는 서브쿼리로 쓰고 싶을 때 주로 사용합니다. 2. not exists SELECT * FROM A WHERE not exists (SELECT * FROM B WHERE b.key = a.key) 형태의 구문이며, A쪽을 먼저 access하고 나서 a의 각 row들을 not exists로 조사하여 filtering하는 처리를 할 때 주로 사용합니다. 즉, B를 access하기 전에 A쪽의 전체범위가 먼저 access됩니다. 이 때의 서브쿼리는 공급자가 아닌 확인자역할만 해 줄 수 있습니다. 3. mi.. 더보기
테이블복사 1. 테이블 생성 & 데이터 복사 CREATE TABLE COPY_TBL AS SELECT * FROM ORI_TBL; 2. 테이블 데이터 복사 INSERT INTO COPY_TBL SELECT * FROM ORI_TBL; 더보기
다른 디비에 테이블 복사, 다른테이블에 데이터삽입 한서버 내에 A라는 디비와 B라는 디비가 있는 상황에서.. A디비안의 aaa테이블을 B 디비 안에 그대로 넣고 싶을때.. 먼저 B디비 안에 aaa테이블과 같은 칼럼구조로 테이블을 생성하고 난 후에.. B디비안에 만든 테이블 이름을 bbb라고 합시다.. 그리고 테이블 안의 칼럼들은 no,name,email 이 있다고 가정합시다.. (root라던지.. 아님 두 디비에 접근 권한을 가지는 다른 계정에서..) replace into B.bbb (no,name,email) select no,name,email from A.aaa; 를 하면 간단히 다른 디비 테이블에 복사할수 있답니다. 또..다른 상황으로 이번엔 하나의 디비안에 여러개의 테이블이 있겠죠.. 그중에 aaa라는 테이블과 bbb라는 테이블이 있다고 가정.. 더보기