Index는 오라클 튜닝의 기본이며 잘 사용하면 index만한게 없죠. Index 컬럼에 추가,삭제, 수정이 자주 발생하면 index skew 현상이 발생하며 Index에 의해 사용된 공간은 재활용이 안됨으로 디스크 공간 낭비도 심해질 수 있습 니다. 그래서 index를 재구축하는 작업이 필요한데요. 그럼 언제 index rebuild를 수행하면 될까요? 물론 해당 index 사용시 점점 속도가 느려지는 걸 체감할 수 있다면 수행하면 되겠지만 좀더 객관적인 방법이 있어 소개해 드려요. 다음 SQL를 차례대로 수행하시면 됩니다. 1. analyze index 인덱스명 validate structure; 2.select blocks ,pct_used ,distinct_keys ,lf_rows ,del_lf_..
1. Session I/O By User select nvl(ses.USERNAME,'ORACLE PROC') username, OSUSER os_user, PROCESS pid, ses.SID sid, SERIAL#, PHYSICAL_READS, BLOCK_GETS, CONSISTENT_GETS, BLOCK_CHANGES, CONSISTENT_CHANGES from v$session ses, v$sess_io sio where ses.SID = sio.SID order by PHYSICAL_READS, ses.USERNAME; 2. CPU Usage By Session select nvl(ss.USERNAME,'ORACLE PROC') username, se.SID, VALUE cpu_usage fro..
Table Hints: Used to force index selection. ex) SELECT memberID, fname, lname FROM members WITH (INDEX(memberID_index)); Join Hints: Used to specify the type of JOIN strategy used. - Loop, Merge, Hash가 있음. ex) FROM header_table INNER LOOP JOIN detail_table; OPTION (INNER) or OPTION (MERGE) or OPTION (HASH); Query Hints: Hints used to affect GROUP BY and UNION functionality. Lock Hints : Used to ..
SQLPLUS에서 실행해 보세요. GUI환경에서는 아래 SQL를 굳이 사용할 일이 없겠죠. ^^ 1.Locked Session 조회 ----------------------- SELECT LOCK_OBJ.OBJECT_ID , DBA_OBJ.OBJECT_NAME , DBA_OBJ.OBJECT_TYPE , LOCK_OBJ.SESSION_ID , DBA_OBJ.OWNER , LOCK_OBJ.XIDUSN , LOCK_OBJ.SESSION_ID , DECODE(LOCKED_MODE, 2, 'ROW SHARE', 3, 'ROW EXCLUSIVE', 4, 'SHARE', 5, 'SHARE ROW EXCLUSIVE', 6, 'EXCLUSIVE', 'UNKNOWN') LOCKED_MODE FROM V$LOCKED_OBJ..
비교적 데이터가 많은 테이블의 row 건수를 구하고자 할때 제가 몇가지 테스트 해본 결과 아래 방법이 가장 빠르더군요. 인덱스를 이용해서 index fast full scan + parallel로 하는 방법입니다. ---------------------------------------------------------------------------- select /*+ index_ffs(a 인덱스명) parallel_index(a 인덱스명) parallel(a 4) */ count(인덱스컬럼명) from 테이블명 a; ---------------------------------------------------------------------------- 환경마다 다르겠지만 회사에서 3억건이 있는 테이블 ..
01. Lock 확인 ------------------------------------------- SELECT A.SESSION_ID SID ,B.SERIAL# SERIAL_NO ,A.OS_USER_NAME ,A.ORACLE_USERNAME ,B.STATUS FROM V$LOCKED_OBJECT A ,V$SESSION B WHERE A.SESSION_ID = B.SID; 02. Lock 걸린 session 죽이기 ------------------------------------------- ALTER SYSTEM KILL SESSION 'SID, SERIAL_ID';
SELECT 절을 이용해서 특정 row의 컬럼들에 대해 lock를 설정할 수 있음. lock은 commit이나 rollback를 만날때까지 유요함. lock row문은 형식은 아래와 같습니다. ------------------------------------------------------ select from 대상테이블 where 조건 for update of nowait; ------------------------------------------------------ for update of 뒤에 컬럼명을 명시하지 않으면 해당 row 전체가 lock으로 설정됩니다. 그리고 11g 부터 좋은 lock row 문에 유용한 옵션이 추가되었는데요 바로 SKIP LOCKED 입니다. 즉 for update ..
- Total
- Today
- Yesterday
- 톡토기
- 로니카 BCS
- Pixel Pals
- 별이 빚나는 밤
- GKRS
- 고체 향수
- 오미크론
- yugabyteDB
- 르세라핌
- 카카오 에드
- JMW 헤어드라이기기
- 증권정보포털
- 유가바이트디비
- 코라나 19
- 홈 오피스
- 매직 트랙패드2
- 별잉 빛나는 밤
- Sybase IQ
- 화분벌레
- 배당급
- 파나소닉 비데 DL-EH10KWS
- 남설 팔찌
- node.js
- Life Chair
- VARIDESK
- weka
- 루미큐브 종류
- 솔리드 쿨론
- 브리다 정수기
- 빈센트 반 고흐
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |