Database/Oracle8 [Oracle] SQL 성능 지표 - 2 1. recursive callsProblem Signal : 불필요하게 많음 => 파싱/권한체크/사전조회 등 내부 SQL이 과다Root Cause? : 바인드 미사용으로 하드파싱 반복, 동적 SQL 남발, 필요 없는 DDL/권한 확인Improvement Approach바인드 변수 사용/커서 재사용(SESSION_CACHED_CURSORS 확인)동적 SQL 정적화, 빈번한 DDL 제거권한/사전조회 유발 로직 최소화(불필요한 USER_* / DBA_* 조회 제거) 2. db block gets (Current read)Problem Signal : 과도함 => 갱신/잠금/핫블록 접근이 잦거나 몰림Root Cause? : UPDATE/DELETE, SELECT FOR UPDATE, 단일 시퀀스·단일 키에 삽.. 2025. 10. 22. [Oracle] SQL 성능 지표 지표의미증가 원인튜닝 시 성능이 좋아지는 방향recursive calls사용자가 낸 SQL을 처리하는 중 내부적으로 발생한 추가 SQL 호출 수데이터 사전 조회, 권한 확인, 동적 SQL 남발, 바인드 미사용에 따른 잦은 hard parse↓ (불필요 감소)db block gets"Current block"을 읽은 횟수FOR UPDATE, 시퀀스/핫블록 접근, 잦은 업데이트업무 특성 따라 다름 (쓰기 많은 트랜잭션은 증가 가능)consistent gets"Consistent block"을 읽은 횟수불필요한 대량 스캔, 비효율 조인/카디널리티 오차↓ (행당/실행당 논리읽기 감소)physical reads디스크에서 실제 물리 읽기 발생 횟수캐시 미스, 대용량 FTS, 작은 버퍼 캐시↓ (필수 IO 최소화)r.. 2025. 10. 22. [Oracle] ROLE_TAB_PRIVS vs. DBA_TAB_PRIVS Oracle 권한에 대해 공부하던 중, 위 두 Data Dictionary View에 대해 헷갈려서 정리해놓으려고 한다. 뷰 보여주는 대상 권한 부여 주체 예시뷰보여주는 대상권한 부여 주체예시ROLE_TAB_PRIVSRole 기준 객체 권한ROLE만ROLE HR_VIEW → EMP 테이블 SELECTDBA_TAB_PRIVS전체 객체 권한사용자 + ROLE 다 포함철수(사용자)에게 SELECT, HR_VIEW(ROLE)에게 SELECT ROLE_TAB_PRIVS : ROLE이 가지고 있는 테이블 권한만 보여줌DBA_TAB_PRIVS : 사용자 또는 ROLE이 직/간접으로 부여받은 테이블 권한 전체를 보여줌예를들어, 특정 사용자가 직접 EMP 테이블에 권한을 부여받았으면 DBA_TAB_PRIVS에서는 확인.. 2025. 10. 20. [Oracle] 권한 확인 방법 1. table 단위로 부여 된 경우dba_tab_privsSELECT * FROM DBA_SYS_PRIVSWHERE GRANTEE='사용자명'; 2. role 단위로 부여 된 경우dba_role_privsSELECT * FROM DBA_ROLE_PRIVSWHERE GRANTEE='사용자명'; 3. system 특수 권한dba_sys_privsSELECT * FROM DBA_SYS_PRIVSWHERE GRANTEE='사용자명'; 4. 타 사용자에게 부여한 객체(테이블 등) 권한 확인SELECT * FROM DBA_TAB_PRIVSWHERE OWNER='테이블소유자명';SELECT * FROM DBA_TAB_PRIVSWHERE GRANTEE='권한부여자명'; 2025. 10. 20. 이전 1 2 다음