본문 바로가기

SQL13

실행계획에서 Sort 연산 관련 종류 실행계획에서 보이는 Sort연산 관련 설명 Sort Aggregate - 전체 로우를 집계할 경우 (SELECE MAX(A),AVG(B),SUM(C) from AAA) Sort Order by - 데이터를 정렬할 경우 ( SELECE A,B,C from AAA ORDER BY A) Sort Group by - 소팅 알고리즘을 통해 그룹별 집계를 할 경우 (SELECT A,SUM(B) FROM AAA GROUP BY A ORDER BY A) Sort Unique - 서브쿼리절이 Unnesting 되는 경우, Union, Munus 등의 연산인 경우, Distinct 연산 후 Order by절을 사용 Sort Join - Sort Merge Join 하는 경우 Window Sort - Window 함수를 사.. 2021. 12. 14.
[일일점검] 쿼리 및 Shell 파일 - Linux& Unix 제가 일일점검 시 사용하는 Shell 파일을 올리고 사용법에 대해서 포스팅하겠습니다. 1.일일점검용 디렉토리를 생성해줍니다. (저의 경우에는 /u01/app/oracle 아래에 생성하였습니다.) $mkdir dailycheck $mkdir dailycheck/sql 2. dailycheck아래에 daily_chk.sh 파일을 생성합니다. (각자의 폴더에 맞게 수정하여 사용하면됩니다.) cd /u01/app/oracle/diag/rdbms/xe/XE/trace clear tail -1000 al* | awk '{if (($5=="2021") && $6 =="") {vdate = $0} else {print vdate,"|", $0} }' | grep -E -i "ORA-|error" ## sqlplus s.. 2021. 1. 27.
실행계획 확인하기,실제 실행계획 확인하기 실행계획을 확인하는 방법에는 여러가지가 있습니다. 그 중에서 간단하게 확인할 수 있는 방법을 포스팅하겠습니다. 실행계획 확인하기 1.쿼리 수행시 explain plan for 적기 해당 명령문을 포함하여 쿼리를 실행하면 결과값이 나오지 않고, statement processed라는 명령어가 나옵니다. 이 명령어는 SQL의 예상 실행계획을 만들어서 PLAN 테이블에 저장하기만 합니다. PLAN테이블에 저장된 실행계획은 DBMS_XPLAN.DISPLAY명령어를 사용해서 확인 할 수 있습니다. SQL> explain plan for select * from emp where employee_id = 100; Statement Processed. SQL Execution Time > 00:00:00.000 2... 2020. 12. 22.
트리거 생성(IF문 활용해서 Not Null인 컬럼만 트리거 작동) 트리거를 만들 상황이 생겼습니다. 간단한 트리거이긴 하지만, 특정 테이블 컬럼에 INSERT나 UPDATE 발생 시 다른 테이블에 로깅을 위해 해당값을 삽입하는 트리거입니다. 단, NULL 값은 필요없으므로 삽입할 필요가 없는 상황입니다. 테스트 환경에서 대략 생성하여 테스트 수행시 NULL값은 제외하고 잘 작동되는것을 확인하였습니다. 1.테이블 생성 --데이터를 삽입할 테이블 CREATE TABLE TESTLINK (a VARCHAR2(10); --데이터 삽입시 트리거가 insert 할 테이블 CREATE TABLE TESTLINK2 (a VARCHAR2(10)); 2.트리거 생성 TESTLINK의 A 컬럼에 INSERT나 UPDATE 발생시 작동 CREATE OR REPLACE TRIGGER TEST.. 2020. 12. 7.