Historical SQL Monitor Report
·
Oracle/Performance
12.1 버전부터 SQL Monitor Report 데이터가 AWR에 저장됩니다. 아래와 같이 DBMS_AUTO_REPORT.REPORT_REPOSITORY_DETAIL 함수로 Historical SQL Monitor Report를 생성할 수 있습니다. rid에 리포트 ID, type에 TEXT 또는 ACTIVE를 입력합니다. -- 1 SELECT DBMS_AUTO_REPORT.REPORT_REPOSITORY_DETAIL (rid => :v_rid, type => 'TEXT') AS report FROM DUAL; 아래 쿼리로 Historical SQL Monitor Report의 리포트 ID를 조회할 수 있습니다. DBA_HIST_REPORTS는 AWR로 캡처된 XML 보고서에 대한 정보를 표시합니다...
히든 파라미터 조회 뷰
·
Oracle/Administration
히든 파라미터 조회 뷰를 생성해보겠습니다. 보안상의 이유로 이 뷰는 운영 환경이 아닌 테스트 환경에서만 사용해야 합니다. 아래 쿼리로 기본이 되는 GV$PARAMETER 뷰와 GV$PARAMETER_VALID_VALUES 뷰의 소스를 조회할 수 있습니다.-- 1SELECT view_name, view_definition FROM v$fixed_view_definition WHERE view_name IN ('GV$PARAMETER', 'GV$PARAMETER_VALID_VALUES');VIEW_NAME VIEW_DEFINITION------------------------- --------------------------------------------------------..
로우 랜덤 조회
·
Oracle/Performance
개요 랜덤 Ton-N 쿼리를 사용하지 않아도 로우를 랜덤하게 조회할 수 있습니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. t1 테이블에는 10,000,000개의 행이 저장되어 있습니다. -- 1 DROP TABLE t1 PURGE; DROP TABLE t2 PURGE; DROP TABLE t3 PURGE; DROP TABLE t4 PURGE; CREATE TABLE t1 (c1, c2) AS SELECT ROWNUM, LPAD ('X', 100, 'X') FROM XMLTABLE ('1 to 10000000'); CREATE TABLE t2 (c1 NUMBER, c2 VARCHAR2(100)); CREATE TABLE t3 (c1 NUMBER, c2 VARCHAR2(100)); CREATE ..
병렬 쿼리에서 사용자 정의 함수의 동작 #2
·
Oracle/Performance
병렬 쿼리에서 패키지 변수를 사용한 사용자 정의 함수는 PARALLEL_ENABLE 키워드의 기술 여부에 따라 동작이 달라질 수 있습니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 AS SELECT ROWNUM AS c1, LPAD ('X', 4000, 'X') AS c2 FROM XMLTABLE ('1 to 8'); 아래 f1, f2 함수는 세션 ID와 pkg1.gv1 패키지 변수에 1을 더한 값을 반환합니다. 아울러 f2 함수에만 PARALLEL_ENABLE 키워드를 사용합니다. -- 2-1 DROP PACKAGE pkg1; CREATE OR REPLACE PACKAGE pkg1 IS gv1 NUMBER := 0; ..
병렬 쿼리에서 사용자 정의 함수의 동작 #1
·
Oracle/Performance
병렬 쿼리에서 사용자 정의 함수는 사용 방법과 실행 위치에 따라 동작이 달라질 수 있습니다. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 DROP TABLE t1 PURGE; CREATE TABLE t1 AS SELECT ROWNUM AS c1, LPAD ('X', 4000, 'X') AS c2 FROM XMLTABLE ('1 to 8'); 아래 f1 함수는 세션 ID를 반환합니다. -- 2 CREATE OR REPLACE FUNCTION f1 (i_v1 IN NUMBER) RETURN NUMBER IS BEGIN RETURN SYS_CONTEXT ('USERENV', 'SID'); END; / 아래 쿼리는 f1 함수를 사용합니다. PX 서버가 f1 함수를 수행하여 4개의 세션 ID가 반..
SQL 문 실행 결과 파싱
·
Linux
SQL*Plus 기반의 배치 실행 결과를 분석하기 위해 SQL 문의 실행 결과를 파싱할 수 있는 간단한 awk 스크립트를 작성합니다. 실행 결과를 생성하기 위해 아래 스크립트를 실행하겠습니다. SPOOL log.txt DROP TABLE T1 PURGE; CREATE TABLE T1 AS SELECT ROWNUM AS C1 FROM XMLTABLE ('1 to 10000'); INSERT INTO T1 SELECT * FROM T1; UPDATE T1 SET C1 = 1; DELETE FROM T1 WHERE C1 = 1; COMMIT; SPOOL OFF 아래와 같은 실행 결과가 생성됩니다. SQL> SQL> DROP TABLE T1 PURGE; Table dropped. Elapsed: 00:00:00..
Exadata Flash Cache 내용 조회
·
Exadata
Exadata Flash Cache 내용을 조회하는 External Table을 생성해보겠습니다. 먼저 아래 내용으로 fc_content_ext.sh 파일을 작성하고 권한을 설정합니다. $ vi fc_content_ext.sh #!/bin/bash /usr/local/bin/dcli -g /home/oracle/cell_group -l root cellcli -e \ LIST FLASHCACHECONTENT ATTRIBUTES \ dbID, dbUniqueName, objectNumber, tableSpaceNumber, cachedSize, cachedKeepSize, cachedWriteSize, \ columnarCacheSize, columnarKeepSize, hitCount, missCount..
V$CELL_STATE 뷰
·
Exadata
개요 V$CELL_STATE 뷰는 셀 서버 네트워크 계층 정보, 스케줄링 계층 정보, 셀 서버 구성 정보와 같은 셀 서버의 주요 성능 통계를 표시합니다. 칼럼 구성은 아래와 같습니다. statistics_type 칼럼에 통계 유형, statistics_value 칼럼에 통계 값이 저장되어 있습니다. 통계 유형에 따라 상이한 XML 포맷의 통계 값이 저장되어 있습니다. 이름 널? 유형 ---------------- --- -------------- CELL_NAME VARCHAR2(1024) STATISTICS_TYPE VARCHAR2(15) -- 통계 유형 OBJECT_NAME VARCHAR2(1024) STATISTICS_VALUE CLOB -- 통계 값(XML) CON_ID NUMBER 통계 유형은 ..
V$CELL_CONFIG_INFO 뷰
·
Exadata
개요 V$CELL_CONFIG_INFO 뷰는 셀 서버의 설정 정보를 표시합니다. V$CELL_CONFIG 뷰와 구조가 유사하지만 저장된 정보가 상이하고 데이터가 즉시 갱신된다는 점에서 차이가 있습니다. 뷰의 데이터는 AWR의 DBA_HIST_CELL_CONFIG, DBA_HIST_CELL_CONFIG_DETAIL 뷰에 저장됩니다. 칼럼 구성은 아래와 같습니다. conftype 칼럼에 설정 유형, confval 칼럼에 설정 값이 저장되어 있습니다. 이름 널? 유형 ------------ --- -------------- CELLNAME VARCHAR2(1024) CELLHASH NUMBER CONFTYPE VARCHAR2(15) -- 설정 유형 CONFVAL_HASH NUMBER CONFVAL CLOB -..
V$CELL_CONFIG 뷰
·
Exadata
개요 V$CELL_CONFIG 뷰는 셀 서버의 설정 정보를 표시합니다. 데이터는 하루 한번 오전 7시 ~ 9시 사이에 갱신되는 것으로 보입니다. 칼럼 구성은 아래와 같습니다. conftype 칼럼에 설정 유형, confval 칼럼에 설정 값이 저장되어 있습니다. 이름 널? 유형 -------- --- -------------- CELLNAME VARCHAR2(1024) CELLHASH NUMBER CONFTYPE VARCHAR2(15) -- 설정 유형 CONFVAL CLOB -- 설정 값(XML) CON_ID NUMBER 설정 유형은 아래와 같습니다. 설정 유형에 따라 상이한 XML 포맷의 설정 값이 저장되어 있습니다. CELL CELLDISKS GRIDDISKS IORM: I/O Resource Man..
DBMS_XPLAN.FORMAT_* 함수
·
Oracle/PLSQL
DBMS_XPLAN 패키지에는 숫자 값의 포맷팅할 수 있는 다수의 함수가 포함되어 있습니다. 참고로 이 함수들은 문서화되지 않았습니다. FORMAT_NUMBER, FORMAT_NUMBER2 함수는 숫자 값을 1000 기준의 SI 단위 문자 값으로 포맷팅합니다. SI 단위는 대문자로 표시됩니다. -- 1 SELECT POWER (10, ROWNUM) AS c1 , DBMS_XPLAN.FORMAT_NUMBER (POWER (10, ROWNUM)) AS c2 , DBMS_XPLAN.FORMAT_NUMBER2 (POWER (10, ROWNUM)) AS c3 FROM XMLTABLE ('1 to 10'); C1 C2 C3 ----------- ----- ----- 10 10 10 100 100 100 1000 1..
숫자 값을 SI 단위로 표시
·
Oracle/PLSQL
2018년 12월 31일에 작성한 "단위 변환 함수" 글을 보완한 글입니다. 크기가 큰 숫자 값을 SI 단위로 표시하면 데이터의 가독성을 높일 수 있습니다. 아래 fnc_fmt_num 함수는 숫자 값을 SI 단위로 변환한 문자 값을 반환합니다.-- 1CREATE OR REPLACE FUNCTION fnc_fmt_num ( i_val IN NUMBER , i_div IN NUMBER DEFAULT 1024) RETURN VARCHAR2IS v_val NUMBER := i_val; v_idx NUMBER := 1; v_unit VARCHAR2(8) := CASE WHEN i_div = 1024 THEN ' kmgtpez' ELSE ' KMGTPEZ' END;BEGIN IF ..