본문 바로가기

728x90

분류 전체보기

(159)
[펌] 대용량 데이터 처리(Bulk SQL) 요약1. 커서에 한번에 넣고2. Bulk Collect into XX Limit 40000 4만건단위로 XX data SET 처리 (배열??)3. FORALL 4만건 단위로 20번에 INSERT 처리 ------------------------------------------------------------------------------------------------------------------------ 특정 프로시져에서 CPU사용량이 높다고 이것을 튜닝해 달라고 요청이 왔는데 프로시져를 까보니 데이타를 80만건정도를 계속 INSERT시키는 그런 프로그램이었다. 80만건을 계속 INSERT한다는것 자체가 의심이 갔지만 일단 그렇게 해야한다고 하니 이것에 대해 분산처리할 수 있는 방법이 필요했다...
ORACLE DB생성, 사용자생성, GRANT ---------------------------------- --DATA TABLESPACE 정의 CREATE TABLESPACE XXXX_DAT DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\XXXX_DAT.DBF' SIZE 1024M AUTOEXTEND OFF LOGGING ONLINE PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO; ---------------------------------- --INDEX TABLESPACE 정의 CREATE TABLESPACE XXXX_IDX DATAFILE 'D:\oracle\product\10.2.0\or..
ORDER BY nulls FIRST, case when 등등 가능 WITH TEMP AS ( SELECT 'DDDD' AS COD, '1111' AS NAM, NULL AS DPT FROM DUAL UNION ALL SELECT 'AAAA' AS COD, 'AAAA' AS NAM, '600' AS DPT FROM DUAL UNION ALL SELECT 'CCCC' AS COD, 'XXXX' AS NAM, '300' AS DPT FROM DUAL UNION ALL SELECT 'AAAA' AS COD, '에이이에' AS NAM, '400' AS DPT FROM DUAL UNION ALL SELECT 'CCCC' AS COD, '일일일' AS NAM, '900' AS DPT FROM DUAL UNION ALL SELECT 'BBBB' AS COD, 'TWOTWO' AS N..
Oracle 세션관리 기초 SYSTEM계정으로 로그인후 - 현재 연결되어 있는 모든 세션을 볼 수 있음. SELECT * FROM v$session ; -- 관련 파라미터 --> 최대 세션수는 (Process*1.1) + 5 show parameter processes ; show parameter sessions ; -- 현재 세션 확인 select count(*) from v$session ; select * from v$session where status = 'ACTIVE' and username = 'NAMS_USER' ; - 상태별로 모든 세션 상태 보는 쿼리. SELECT COUNT (*) total_cnt, COUNT (DECODE (server, 'DEDICATED', 1, NULL)) dedicated_cnt, ..
계층구조 START WITH, 정렬 ORDER SIBLINGS BY - SCOTT / TIGER 계정으로 로그인후 - EMP 테이블의 조회쿼리를 아래와 같은 결과가 나오도록, 작성 - 계층구조쿼리를 이용하고, SAL컬럼을 EMPNO값단위로 정렬 SELECT LEVEL , LPAD(' ', 8*(LEVEL-1)) || EMPNO , ENAME , JOB , MGR , SAL FROM EMP START WITH EMPNO = 7839 CONNECT BY PRIOR EMPNO = MGR ORDER SIBLINGS BY SAL ASC
DBMS_RANDOM 렌덤값처리 셈플형식을 참고해서, 10000줄짜리 임의 데이터 생성쿼리를 작성 셈플형식 SELECT '123963' AS 사번 --//6자리숫자 고정 , 'Asdfasdf' AS 성 --//첫글자대문자 , 'Hewerw' AS 이름 --//첫글자대문자 , 'AR001' AS 관리유형 --//5글자문자 고정 , '20160801' AS 생일 --//8자리날짜범위내의 문자 FROM DUAL; - 사용목적 테이블 작업후, 데이터가 없어, 업무분석이 어려울때, 임의로 데이터를 생성해서, 추가후에 임시로 작업을 진행할수 있다. SELECT LPAD(ROWNUM,6,'0') AS 사번 --//6자리숫자 고정 , INITCAP(DBMS_RANDOM.STRING('A', 6)) AS 성 --//첫글자대문자 , INITCAP(DBM..
Oracle ROW_NUMBER, MIN, MAX, SUM, FIRST_VALUE, LAST_VALUE, LAG, LEAD WITH TB AS ( SELECT 'DDDD' AS COD, 'AAAA' AS NAM, NULL AS DPT FROM DUAL UNION ALL SELECT 'AAAA' AS COD, 'BBBB' AS NAM, '200' AS DPT FROM DUAL UNION ALL SELECT 'AAAA' AS COD, 'CCCC' AS NAM, '300' AS DPT FROM DUAL UNION ALL SELECT 'BBBB' AS COD, 'DDDD' AS NAM, '100' AS DPT FROM DUAL UNION ALL SELECT 'AAAA' AS COD, 'EEEE' AS NAM, '600' AS DPT FROM DUAL UNION ALL SELECT 'CCCC' AS COD, 'FFFF' AS NAM,..
Oracle NVL, NVL2, DECODE, NULLIF, COALESCE 함수 WITH TA AS ( SELECT '11' AS CHK1 , '12' AS CHK2 , '13' AS CHK3 , '14' AS CHK4 FROM DUAL UNION ALL SELECT '21' AS CHK1 , '22' AS CHK2 , '23' AS CHK3 , '24' AS CHK4 FROM DUAL UNION ALL SELECT '' AS CHK1 , '32' AS CHK2 , '33' AS CHK3 , '34' AS CHK4 FROM DUAL UNION ALL SELECT '' AS CHK1 , '' AS CHK2 , '43' AS CHK3 , '44' AS CHK4 FROM DUAL UNION ALL SELECT '' AS CHK1 , '' AS CHK2 , '' AS CHK3 , '54' ..

728x90