안녕하세요
DB튜닝을 위해 이것저것 공부하고 시도중에
궁금한점이 발생하여 질문드립니다 .
다름이 아니고 person 이라는 Table이 있습니다.
데이터는 1000로우 정도 존재한다고 가정했을 때
SELECT * FROM person 했을 때의
논리적인 읽기수와 I/O비용을 확인하고
person_test01 이라는 table을 person 테이블과 같은 디자인, 같은 데이터를 추가 후
불필요한 필드를 제거 햇습니다. 기존 필드수의 절반정도를 제거하였습니다.
제거 후 다시 논리적인 읽기수와 I/O비용을 확인하였더니 기존 person 보다 현저히 줄어드는걸 확인하였습니다.
그래서 빈값이지만 불필요한 필드가 페이지의 byte를 차지하여 Page수가 늘어나 논리적인 읽기 수가 증가 한걸로 판단하였는데
다시 person_test02를 만들고 , 필드제거(동일하게), 잘못설정된 필드의 데이터 타입도 수정하여 확인하였더니
최초 테이블인 person과 별차이가 없게 생성되었습니다.
음..최초 생성과정이 person테이블을 테이블 스크립팅으로 이용해서 테이블을 만들고, person의 데이터를 복사하고
필드제거및 데이터 타입 변경을 하였습니다.
이미 데이터를 insert할때 페이지가 할당이되고, 필드를 제거할땐 자동으로 압축? 이 되지 않는건지
아니면 페이지 재할당? 을 해줘야하는건지....
선배님들의 조언을 구하려 작성합니다...
감사합니다!
Comment 2
-
SQL어렵..
2014.08.04 20:01
감사합니다...제가 검색을 많이 못해봤었군요....
앞으로 많이 찾아본 후에 질문 남길 수 있도록 하겠습니다!!
http://www.sqler.com/422481