본문 바로가기
반응형

SQL14

오라클 PARALLEL(병렬처리) PQ_DISTRIBUTE 힌트 오라클에서 병령처리(PARALLEL) 시 사용되는 조인 방식 제어 힌트 -- 힌트 문법 /*+ pq_distribute(inner_table, outer_distribution, inner_distribution) */ -- 두 테이블이 조인될 때 리딩하는 테이블이 Driving Table 또는 Outer Table 조인되어지는 테이블은 Inner Table -- 힌트 옵션별 작동 방식 PQ_DISTRIBUTE( Inner, none, none ) : Full-Partition Wise Join 유도할 때 사용한다 : 양쪽 테이블 모두 조인 컬럼에 대해 같은 기준으로 파티셔닝 되어 있어야 함 PQ_DISTRIBUTE( Inner, partition, none ) : Partial-Partition Wis.. 2023. 9. 21.
윈도우함수 사용하여 누적 값 구하기 - 윈도우 함수 사용하여 누적 값 구하기 : sum() over(partition by) 사용하여 그룹별 row 누적 값을 구해보자- RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  기본 값range between ...  : 값을 기준으로 같은 값이면 묶어서 계산하여 마지막 값을 보여줌(RANGE_TEST 컬럼 값 600 부분 참고) rows between ...  : row 기준으로 row 단위 순차 누적 값을 반환 (ROW_TEST 컬럼 값 참고)range / rows 일 때 결과 값 차이 테스트WITH tmp AS (SELECT 'a' c1, 1 c2, 100 c3 FROM dual UNION ALLSELECT 'a' c1, 2 c2, 100 c3 FR.. 2023. 8. 20.
PARALLEL SQL DBMS_XPLAN 실행통계 보기 DBMS : oracle 19.19 - 일반적인 DBMS_XPLAN 에서는 parallel 프로세스에 대한 통계확인이 안된다 - ALLSTATS ALL 옵션을 사용한 누적 통계 확인 시 parallel 프로세스 확인 가능 : parallel SQL 확인 시 ALLSTATS ALL 및 child_number(두번째 파라미터) 적절히 변경 - ALLSTATS ALL 은 누적치를 보여주므로 주석을 바꿔가면서 수행하여 sql_id를 변경하며 실행하는 방법으로 진행 : 모든 프로세스 통계의 합이라 실행시간은 실제 실행시간보다 많음 - child_number stats은 아래 뷰에서 확인 가능 : SELECT * FROM V$SQL_PLAN_STATISTICS_ALL WHERE SQL_ID = '0ktqj13jw7.. 2023. 8. 4.
INSERT..SELECT / INSERT..VALUES 성능 테스트 DBMS : oracle 19.3 - insert into values 로 한 건씩 처리하는 것과 insert into .. select 방식의 redo 와 buffer get 등 성능 차이 테스트 - insert into select 방식이 훨씬 좋은 성능을 보인다 100만건 insert 테스트 - insert into select 방식 SQL> alter SESSION SET STATISTICS_LEVEL = ALL ; SET LINESIZE 2000 SET PAGES 10000 Session altered. SQL> SQL> SQL> SQL> set timing on SQL> select b.name, a.value from v$mystat a, v$statname b where a.STATISTI.. 2023. 8. 2.
rollup, grouping sets, cube, grouping 함수 rollup grouping sets cube grouping 함수에 대해 알아본다 -- 샘플 테이블 및 데이터 생성 CREATE TABLE TAB10 ( ID VARCHAR2(5), MON VARCHAR2(10), COM VARCHAR2(10), VAL INTEGER ); INSERT INTO TAB10 VALUES ('P001', '2019.10', '삼성', 15000); INSERT INTO TAB10 VALUES ('P001', '2019.11', '삼성', 25000); INSERT INTO TAB10 VALUES ('P002', '2019.10', 'LG', 10000); INSERT INTO TAB10 VALUES ('P002', '2019.11', 'LG', 20000); INSERT I.. 2023. 7. 30.
oracle ABS 함수, 절대값을 구하는 함수 ABS 함수 - 절대값을 구하는 함수로 음수의 데이터를 양수로 표기하여 보여줌 - 컬럼 타입이 number(숫자타입)가 아닌 문자타입도 가능(단 숫자로 변환 가능한 값이어야 함) -- DUAL 사용 단순 테스트 SQL> SELECT ABS(10), ABS(-10), ABS(10.10), ABS(-10.10), ABS('7'), ABS('-7') FROM DUAL ; ABS(10) ABS(-10) ABS(10.10) ABS(-10.10) ABS('7') ABS('-7') ---------- ---------- ---------- ----------- ---------- ---------- 10 10 10.110.1 7 7 -- 테이블 생성하여 테스트 SQL> CREATE TABLE SK.ABS_TEST A.. 2023. 7. 18.
반응형