오라클에서 select를 할 경우 해당 테이블의
컬럼이 많은경우
Select문에 기술한 컬럼 개수에 따라
읽어 들이는 블럭의 수가 달라 지나요?
------------------
다시 말하자면
일단 오라클에서 조회를 할때
디스크에서 블럭단위로 데이터를 읽어 들이는걸로 알고 있는데요
컬럼의 길이를 모두 합한 경우
두블럭 이상이 됫다고 가정한다면
Select문에 단 하나의 컬럼만
기술 하고 rownum <2 한 경우
오라클은 한블럭만 읽나요?
아니면 한로우 전체를 읽기위해
두블럭 이상을 읽어 들이나요?
이것에 따라 대용량의 데이터를 읽어 들일때
컬럼을 기술 하느냐 마느냐가
디스크 i/o 측면에서 튜닝에 중요한 요소가
될것 같습니다만^^
여기저기 찾아봐도
자료를 찾기가 쉽지가 안네요^^
아시는분 간단하게나마
답변 좀 부탁 드리고요
관련 자료를 어디서 찾아보면 될지 힌트라도
좀 부탁 드립니다^^
Disk I/O 관점으로 보면 블럭단위로 읽기 때문에 필요한 컬럼만 기술해도 모든 블럭을 읽습니다.
다만 그렇다고 해서 * 를 사용하는게 좋은 건 아니죠. 필요한 컬럼만 기술하는것을 권장합니다.
해당 컬럼이 인덱스 컬럼이라면? 인덱스만 읽고 끝날 수 있구요.
정렬 쿼리라면? 정렬 공간을 덜 사용하게 되구요.
해시 조인이라면? 해시맵 공간을 덜 차지할 것이고
I/O 관점이 아닌 데이터 전송량 관점에서 보면 전송량이 줄겠네요.
* 쓰는 것보다 I/O 성능이 좋아지지도 않고 일일이 적기가 불편하다구요?
필요한 컬럼만 기술하는 것이 코딩 약간 불편한거 빼고는 나쁠게 하나도 없습니다.