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..
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 ..
회사에서 sqlgate 정품을 사용하고 있는데 예전 버전이라 그런지 특정 테이블의 index 나 컬럼 정보를 쉽게 찾을 수가 없어서 매번 짜증이 나더군요. 단축키는 고사하고 테이블정보 보는 화면에서 다른 테이블 정보를 볼려면 콤보박스로 선택해서 봐야 한다는. . . "콤보 + 검색" 기능으로 했다면 더 편리했을 텐데 말이죠. 아무튼 회사에서 sqlgate 버전업 시켜줄일이 만무하고 다른 불법 S/W는 일체 사용하지 못하니 중이 제머리 깎을 수 밖에요. 필요한 정보를 조회하는 SQL를 만들어 미리 화면에 붙여 놓고 작업하는 것이 더 정신 건강에 좋을 듯 합니다. 내공도 쌓구요. ㅎㅎ ---------- SQL BEGIN -------------------------------------- select a...
- Total
- Today
- Yesterday
- Life Chair
- 유가바이트디비
- 파나소닉 비데 DL-EH10KWS
- Sybase IQ
- 코라나 19
- yugabyteDB
- 별잉 빛나는 밤
- 카카오 에드
- 증권정보포털
- weka
- 브리다 정수기
- 로니카 BCS
- Pixel Pals
- node.js
- 고체 향수
- 톡토기
- GKRS
- 남설 팔찌
- 홈 오피스
- 르세라핌
- 오미크론
- 배당급
- 루미큐브 종류
- 화분벌레
- 솔리드 쿨론
- 빈센트 반 고흐
- 별이 빚나는 밤
- JMW 헤어드라이기기
- VARIDESK
- 매직 트랙패드2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |