Select 지연 현상 원인에 대해서.. 0 2 1,729

by 닭강정호떡 [Oracle Tuning] [2017.03.21 15:17:15]


Db file sequential read를

세션이벤트에서 조회했을시 

P1 값이 데이터 파일멤버인데 

그 데이터파일에 해당하는 테이블스페이스가 있잖아요!?

그 안에서의 테이블 중 풀스캔이 일어나는 것들이나 인덱스 문제가 잇는 테이블이있다면

가끔 지연현상이일어날수잇나요!?

근데 다른때에도 그 데이터파일을 조회하긴해서 db file sequential read 가 일어나긴하지만

제 예상에 그 지연현상이 일어나는 시기에 그 테이블 조회 양이 많아져서 그런거아닌가해서요..

혹시 그 순간 그 테이블 조회량이 많은지 아는 방법도 잇나요!?

 

 

by 짱아 [2017.03.21 16:44:49]

Db file sequential read Wait 의 경우 인덱스를 통해 데이터를 조회시 발생 하는 아주 일반적인 wait 입니다.

full scan 조회 되었다면, Db file Scattered Read 가 발생 하게 되겠죠..

Db file sequential read 로 대기 하는것이 중요 한게 아니라 어떤 인덱스를 사용 했냐가 중요 할듯 하군요..

만일, 동일 SQL 이 동일 SQL PLAN 으로 수행시 어느때는 빠르고 , 어느때는 지연 이라면 님의 말씀 처럼 데이터 조회량 과 관련 있을수 있겠네요.

우선 해당 SQL에서 어떤 인덱스를 사용 했는지.. 해당 인덱스가 조회 하는 SQL 조건에 적합한지 부터 살펴 보시는것이 좋겠습니다.

짧은 의견 이었습니다.


by 와일드키드 [2017.03.22 15:19:54]

두가지 확인해볼 필요가 있겠네요?

1. 해당 인덱스의 조건별 데이타 분포를 확인 => 성씨로 된 인덱스에서 김씨를 찾느냐? 가씨를 찾느냐?

인덱스를 타더라도 사용자가 가씨를 찾으면 빠르고 김씨를 찾으면 느리겠죠?

김씨를 찾았고 index를 탔는데(plan : sequential read) 이게 single block io를 일으키니 많은 인덱스를 스캔하다보면

많은 block을 더 많이 읽어야 하니 오히려 더 느립니다.

2. 해당 sql이 돌아갈때 wait event를 확인하시고 latch가 걸렸는지 lock이 걸려서 대기하는지도 보셔야 합니다.

 

^^ 이상 허접한 내용 올립니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입