안녕하세요.
궁금한게 있어서요..
ASE의 satistics에 대해 정확히 나와있는 자료가 없어서요..
update statistics는 정확히 정의를 부탁드리겠습니다.
reoge하는 작업인가요??
reoge하는 작업은 statistics뿐인가요??
답변부탁드립니다
.
1. update statistics는 인덱스의 헤드 컬럼에 대한 데이터 분산 정도를 수치화 해서 sysstatistics 라는 시스템 테이블에 저장합니다. update index statistics 는 인덱스의 모든 컬럼에 대한 데이터 분산 정도를 수치화 해서 systatistics 시스템 테이블에 저장합니다. update all statistics 는 테이블의 모든 컬럼에 대한 데이터 분산 정도를 수치화 해서 저장하고요. 일반적으로는 가장 무난한것은 update index statistics 이구요. 향후 데이터 분포에 영향을 주는 컬럼에 대해서만 statistics 를 돌려주는 것이 시간상 좋겠죠. 테이블별 통계자료는 optdiag 라는 유틸리티를 통해 추출(및 변경)이 가능합니다. 통계정보 갱신 작업은 APL 테이블과 DOL 테이블 모두 작업해줘야 하는 일입니다만, 불행하게도 APL 테이블과 DOL 테이블에서 작업할 때 발생하는 LOCK 이 다릅니다. APL 테이블은 ex-table lock 이발생하고, DOL 테이블은 intent lock만 발생하는 것으로 기억합니다. APL 테이블은 운영중인 서버에는 무리가 가겠죠... 2. reorg 작업은 DOL 테이블에만 국한된 작업입니다. DOL(data only lock) 테이블은 data row/ data page lock schema 를 갖는 테이블을 말하는데, DOL 테이블은 데이터가 삭제될 때, forwarded / backwarded row가 발생될때, 물리적인 디스크에서 불필요한 데이터 공간을 삭제하지 않고 링크만을 끊어 버립니다. 이런 garbage 데이터들이 차지하는 공간을 DB 에서 다시 사용할 수 있도록 해주는 역할을 reorg 가 하게됩니다. 통계작업과는 무관합니다. 보통은 디스크 공간만을 확보하기 위해 reorg compact 명령을 많이 사용하고요, 서비스 정지가 가능하시다면, reorg rebuild 도 고려 해볼 만 합니다. reorg compact 명령은 운영중인 서버에서도 적은 페이지만은 blocking 하고, 금방금방 lock이 풀리기 때문에 운영중인 서버에 사용해도 큰 부담이 없습니다. 반면 reorg rebuild는 table lock이 장시간 걸리기 때문에 운영중이 서버에서는 사용하는 것이 불가능 한 것으로 판단됩니다. 3. 통계작업이나, reorg 작업은 쿼리 수행시 i/o를 작게 하기 위해서 DBA 들이 정기적으로 해줘야 하는 일들입니다.
ASE 15 에서는 APL/DOL table 둘다 REORG REBUILD 가 가능한줄압니다. update statistics 과 reorg 하시고나서는 항상 sp_recompile 써주시느것이 좋을것갇네요...
reorg rebuild 는 15버전에서 되는군요. ^^; 굳이 BCP 작업으로 정리를 안해도 될 것 같다는 feel이 오네요 ㅋㅋㅋ... 근데 forwarded row나 backworded row가 없는데 대체 어디서 공간을 확보하는 것인지... 이해는 안되네요..ㅠ.ㅠ