목록Database (39)
승적이익강 (勝敵而益强)
UPDATE table_a SET column_a = column_b WHERE userid IN (SELECT userid FROM b) UPDATE table_a SET (column_1, column__2) = (SELECT column_a, column_b FROM table_b WHERE join_column_1 = table_a.join_column_a); UPDATE table_a SET column_1 = (SELECT COLUMN FROM table_b WHERE userid = table_a.userid); UPDATE table_a SET (column_1) = (SELECT COLUMN FROM table_b WHERE userid = table_a.userid AND url IS ..
NESTED LOOP JOIN 선행적 특징을 작는데 먼저 액세스되는 테이블의 처리범위에 의해 처리량이 결정됨 Driving Table에 의해 범위가 결정되며 Driving Table의 범위가 적을수록 수행속도는 빨라진다 고로 Driving Table을 어던 테이블로 결정하느냐가 중요하다 -. /*+ use_nl (테이블) */ -. 나중에 처리되는 테이블은 앞서 처리된 값을 받아 액세스하게됨, 즉 값을 받아서 처리범위가 정해짐 -. Driving Table의 인덱스 액세스는 첫번 로우만 Random Access이고, 나머지는 Scan, 연결작업은 Random Access임 -. 연결되는 방향에 따라 사용되는 인덱스들이 달라질 수 있음 -. 연결고리 인덱스 유무에 따라 액세스 방향 및 수행속도에 많은 차이..
SELECT TO_CHAR(YMD,'YYYY-MM-DD') FROM ( SELECT TO_DATE('200512', 'YYYYMM') + (LEVEL - 1) YMD FROM DUAL CONNECT BY (TO_DATE('200512', 'YYYYMM')) + (LEVEL - 1)
SELECT MOD(ABS(DBMS_RANDOM.RANDOM),99) + 1 FROM DUAL;
SELECT TRUNC(B.TSUM) || ' 일 ' || TRUNC(MOD((B.TSUM),1)*24) || ' 시 ' || TRUNC(MOD((B.TSUM)*24,1)*60) || ' 분 ' || TRUNC(ROUND(MOD((B.TSUM)*24*60,1)*60)) || ' 초 ' AS TRESULT FROM ( SELECT SUM(A.T2 - A.T1) AS TSUM FROM ( SELECT 'A001' AS EMPNO, TO_DATE('20060909133624','YYYYMMDDHH24MISS') AS T1, TO_DATE('20060910021244','YYYYMMDDHH24MISS') AS T2 FROM DUAL UNION ALL SELECT 'A002' AS EMPNO, TO_DATE('2..
ANALYZE TABLE Table_Name COMPUTE STATISTICS;
CREATE UNIQUE INDEX IDX_NAME ON TABLE_NAME(COL1,COL2,COL3,COL4) TABLESPACE HU001SI PARALLEL(DEGREE 8); ALTER INDEX IDX_NAME NOPARALLEL;
* SYS_CONNECT_BY_PATH 함수는 연결하려는 문자열의 수가 많아질 경우, 해당 쿼리의 performance 에 문제가 생길 수 있습니다. 충분히 테스트하고 적용하시기 바랍니다. SYS_CONNECT_BY_PATH 함수 사용으로 performance 에 문제가 생길 경우, plsql로 해결하시면 되겠습니다. 예제 1) 다중 Row 결과를 단일행으로 컴마로 분리해 출력하는 방법(1) 에서, 만약 행들이 그룹번호에 따라 그룹으로 나뉘어져 있고, 각 그룹별로 하나의 행으로 컴마로 분리해 출력하려고 하면 어떻게 해야 할 것인가? 이름 그룹 ========== 홍길동 1 김길동 1 이길동 1 홍순신 2 김순신 2 이순신 2 ========== --> 그룹 이름 ====================== ..
결합인덱스 순서의 중요성 process_retailer_input : 약 800만건 - 인덱스 win_sale_info_draw_no_id : period_flag+draw_no+retailer_id win_sale_info_sale_date : period_flag+sale_date_retailer_id win_sale_info_state_name : state_name+draw_no+sale_date - 튜닝전 SELECT sale_date, sysdate, sysdate, sysdate, to_char(nvl((SUM(win_game_1)), 0),'999,999,999'), to_char(nvl(SUM(win_amount_1), 0),'999,999,999,999,999,999'), to_char..
인덱스의 내형적 변형사항 아래 SQL은 하나의 테이블을 access합니다. process_retailer_input : 약 1만건 - 인덱스 : PK : retailer_number - 컬럼 : retailer_number varchar2(18) - 튜닝전 select business_name, chain_number, terminal_type from process_retailer_input where retailer_number = 11100003 call count cpu elapsed disk query current rows ------------------------------------------------------------------ Parse 1 0.00 0.00 0 0 0 0 Exe..