본문 바로가기

닷컴's_열공

INSERT PARALLEL,APPEND 테스트 출처 : https://bae9086.tistory.com/364 빠른 결론 : 대용량 INSERT 빠르게 수행하려면 PARALLEL + APPEND 옵션을 사용하면 된다. 시나리오 테이블은 약 6G이고, 37100209 건 존재함. 0.테스트 테이블 생성 create table ord_item_par as select * from ord_item where 1=2; 1.parallel dml + nologging 명령어 주고 /*+ append parallel(ord_item_par 8) */ 힌트 alter session enable parallel dml; alter table ord_item_par nologging; - ------------------------[Start Time: 2022/..
대량의 데이터 INSERT(HINT) 출처 : https://sunder4.tistory.com/506 insert /*+ APPEND PARALLEL(ems_test_temp 4)/ into ems_test_temp nologging select /*+ PARALLEL(ems_test 4) */ * from ems_test; or alter 명령어를 통해서 테이블 자체를 nologging로 바꾸고.. insert 작업이 끝나면 다시 logging 모드로 변경합니다.. alter session set optimizer_goal=all_rows; alter session set sort_area_size=52428800;
[oracle] Nologging 과 insert apend - 아래 실험 결과를 보시면, insert /*+ append */ into 의 문법이 맞고 insert into /*+ append */ 는 틀립니다. 이번에도 같은 이유로 redolog가 generation 된듯합니다. - append후에 nologging 옵션이 붙는 것도 잘못된 문법으로 보입니다. 아래처럼 I NSERT /*+ APPEND NOLOGGING PARALLEL */ 병렬 insert를 할 경우에 Parallel 과 함께 사용됩니다. SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle9i Enterprise Edition Release 9.2.0..
오라클 db link 스크립트 CREATE DATABASE LINK "링크명" CONNECT TO "사용자명" IDENTIFIED BY "패스워드" USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 아이피 또는 도메인)(PORT=포트)) )' (CONNECT_DAT = (SID = SID명) ) )' ;
테이블,컬럼 정의서 추출 _ 오라클 sql --테이블 정의서 추출하기 SELECT A.TABLE_NAME, REGEXP_SUBSTR(B.COMMENTS,'[^|]+',1,1) AS CMT FROM USER_TABLES A, USER_TAB_COMMENTS B WHERE B.TABLE_NAME = A.TABLE_NAME ORDER BY A.TABLE_NAME; -- 컬럼 정의서 추출하기 SELECT TBL.TABLE_NAME , TCM.COMMENTS , TBL.TABLESPACE_NAME , TCL.COLUMN_ID , TCL.COLUMN_NAME , CCM.COMMENTS , DATA_TYPE , DATA_LENGTH /* CASE WHEN TCL.DATA_TYPE = 'VARCHAR2' OR TCL.DATA_TYPE = 'CHAR' OR TC..
오라클 프로시져 호출하기 OUT이 있는 경우 프로시저를 실행할 때는 간단하게 아래처럼 실행하면 됩니다. CALL prc_test(); CALL prc_test('x'); ==> IN 파라미터가 있을 경우 EXEC prc_test(); EXEC prc_test('x'); ==> IN 파라미터가 있을 경우 EXECUTE prc_test(); EXECUTE prc_test('x'); ==> IN 파라미터가 있을 경우 위에 뭘해도 실행이 된다. 다만 out이 있을때는 아래와 같이 선언하고 sql 실행을 하면 된다. DECLARE out1 varchar2(10); out2 varchar2(10); BEGIN prc_test('C1234', out1, out2); dbms_output.put_line(out1 || ':' ||out2); END;
[퍼옴]Excel파일 Read/Write https://madeinjeon.tistory.com/59
Oracle - Split 방식, 문자열의 세로 분리 - 참조 참조 사이트 : http://develop.sunshiny.co.kr/965 /* ############# # 문자열 분리 ############# 1) 정규식, CONNECT BY 를 이용 SPLIT 방식 분리 > 구분자에 따라 문자 분리(새로 출력)*/WITH TT AS ( SELECT '34,655,677,666.555' TX FROM DUAL ) SELECT TRIM(REGEXP_SUBSTR(TX, '[^,]+', 1, LEVEL)) AS TX FROM TT CONNECT BY INSTR(TX, ',', 1, LEVEL - 1) > 0; TX---------------------------34655666555E--------------------------- /* 2) 정규식, 기타 함수를 이용 ..