오라클 파티션 확인 SELECT * FROM USER_TAB_PARTITIONS ; SELECT * FROM USER_IND_PARTITIONS ; SELECT * FROM USER_PART_TABLES ; SELECT * FROM USER_PART_INDEXES ; Programming/Oracle 2022.05.18
DBMS_STATS(통계정보) dbms_stats는 통계정보 이력 관리가 가능하다 partitioned table에 대해서 analyze로 통계 정보를 만들 경우 부정확한 통계정보를 추출 할수도 있어 DBMS_STATS package를 사용하여 통계 정보를 사용 할 것을 권고함. DBMS_STATS는 문제가 발생하면 현재 DATA DICTIONARY에 있는 통계 정보를 삭제 후 USER STATISTICS TABLE에 저장되어 있는 이전 통계정보를 IMPORT하여 이전과 동일하게 변경하는 것이 가능함. 1) 통계정보 테이블 생성 DBMS_STATS.CREATE_STAT_TABLE(table_owner, table_name, tablespace_name); . TABLESPACE_NAME DEFAULT값 = NULL . EXEC DBM.. Programming/Oracle 2022.05.18
오라클 히든 파라미터(optimizer_adaptive_cursor_sharing, optimizer_extended_cursor_sharing_rel) _optimizer_adaptive_cursor_sharing 오라클11G 부터 Bind Peeking 기능 단점을 보완하기 위해 바인드 변수 값에 따라 실행계획을 여러 가지로 관리할 수 있도록 하는 파라미터이다 Bind 값이 바뀌면 유연하게 처리 하겠다는 의미로 Bind 변수의 값에 따라 오라클이 적절한 Child Cursor를 생성하여 이에 맞는 실행 계획을 생성(새로운 Child Cursor)한다. Bind Peeking에 의한 부작용이 없어지게 되지만, 조건절에 쓰인 컬럼에 Histogram이 있고, Histogram의 분포도에 따라 실행 계획에 큰 차이가 있을 수 있다고 판단된다는 조건이 중요하다 (적절한 Histogram 없으면 의미가 없다) 1) 기본값 optimizer_adaptive_cu.. Programming/Oracle 2022.05.17
temp datafile 추가 1) temp파일 확인 ( tempfile은 dba_data_files에 안나온다) select * from dba_temp_files 2) temp datafile 추가 하기 (초기size : 3G 자동증가 : 10M 최대사이즈 : 32G) alter tablespace temp add tempfile '/data5/SWERP/temp03.dbf' size 3G reuse autoextend on next 10M maxsize 32G ; 3) maxsize변경(maxsize변경시 바이트로 입력, 단위를 G(기가)로 넣으면 size over 에러 발생) alter database tempfile '/data5/SWERP/temp03.dbf' autoextend on maxsize 34359721984 ; Programming/Oracle 2022.04.27
오라클 하드파싱 횟수 확인 리터럴(Literal) SQL WHERE절의 값에 문자,숫자 상수값을 하드코딩해서 작성한 것 select emp_nm from emp where emp_id = '12345' ; Bind Variable SQL WHERE절의 값을 바인드 변수 형태(:v)로 표시한 것 select emp_nm from emp where emp_id = :as_emp_id ; 리터럴 SQL문을 많이 사용하면 하드파싱의 빈도를 높아져서 Library Cache에서 Cache되는 SQL문들이 자주 age out 하게 되고 Dictionary Cache의 사용율을 높인다 Shared SQL Area의 SQL문에서 리터럴 SQL을 찾아서 Bind Variable을 이용한 방법으로 바꾸어야 성능 향상이 된다. 오라클 하드파싱 횟수 .. Programming/Oracle 2022.04.25
Literal SQL 찾기 Literal SQL 찾기 SELECT A.*, (SELECT SQL_ID || ', ' || MODULE || ',' || SQL_TEXT FROM V$SQL B WHERE B.SQL_TEXT LIKE A.SQL_TEXT || '%' AND ROWNUM = 1 ) SQL_ID FROM ( SELECT SUBSTR(SQL_TEXT, 1, 80) SQL_TEXT , COUNT(*) CNT FROM V$SQL WHERE 1 = 1 -- AND ROWNUM Programming/Oracle 2022.04.21
AWR 변경 1) AWR 변경 - 10분 간격 , TOTSQL = 30개로 변경 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS ( [RETENTION => retention_time], [INTERVAL => interval_time], [TOPNSQL => topn_sql_number] ) ; sysdba 권한을 가지고 있는 system계정에서 실행 2) 변경 내역 확인 3) 삭제 DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHO_RANGE ( LOW_SNAP_ID => snap_id, HIGH_SNAP_ID => snapid [DBID => dbid] ) ; 4) 보관주기 변경(default : 8일을 15일로 변경) DBMS_WORKLOAD_REPOS.. Programming/Oracle 2022.04.21
오라클 히든 파라미터 조회(optim_peek_user_binds) 오라클 히든 파라미터 조회 방법 : hidden parameter는 맨 앞에 "_"가 붙어 있다 1) sys계정으로 접속(또는 sqlplus '/as sysdba' 등의 Admin계정으로 접속) - PL/SQL DEVELOPER에서는 connect us : SYSDBA 선택 후 SYS계정으로 접속 2) 쿼리 실행 SELECT KSPPINM, KSPPSTVL FROM X$KSPPI X, X$KSPPCV Y WHERE X.INDX = Y.INDX AND X.KSPPINM LIKE '%optim_peek_user_binds%' AND SUBSTR(X.KSPPINM, 1, 1) = '_' 3) 히든 파라미터(hidden parameter) 변경 ① ALTER SYSTEM SET "파라미터명" = 변경값 SCOP.. Programming/Oracle 2022.04.19
랜덤 패스워드 만들기(오라클) 랜덤 패스워드 만들기 . 6자리 . 문자(알파벳 대,소문자 4자리) 포함 . 숫자 1자리 포함(0~9사이) . 특수문자 1자리 포함(!@#$^&*) STRING OPTION 문자열 형태 U 혹은 u : 대문자 알파벳의 문자열 L 혹은 l : 소문자 알파벳의 문자열 A 혹은 a : 대소문자 구분 없이 임의의 알파벳의 문자열 X 혹은 x : 임의의 대문자 알파벳 혹은 숫자의 문자열 P 혹은 p : 임의의 출력 가능한 문자들의 배열 LENGTH 문자열 길이 VALUE 지정된 범위 내에서 임의의 숫자를 생성 만약 범위가 지정되지 않는다면 기본값인 0과 1 사이의 숫자를 생성함 예제 SELECT DBMS_RANDOM.STRING('a', 4)||trunc(DBMS_RANDOM.value(0,9))|| (selec.. Programming/Oracle 2022.04.14