'튜닝'에 해당되는 글 1건

  1. 2007.10.11 [MSSQL] 엔터프라이즈 메니져의 접속시간을 줄여보자 (2)
컴퓨터2007.10.11 12:00
데이터베이스 접속량이 많아지고 빠른 응답속도를 보이는 저장프로시져보다 직접 서버에서 쿼리를 보내고 응답을 받는횟수가 증가함에 따라 엔터프라이즈 메니져(Enterprise Manager. 이하 EM)로 접속하는 사용자로부터 응답속도가 느리고 때로는 접속은 가능하지만 데이터베이스 목록부분이 안보인다는 내용을 전달받았다.

가장 좋은 방법은 서버사양을 올리면 되는 것이지만, 돈이 든다는 가장 큰 단점이 있다.


그래서 EM의 접속시 가장 문제가 되는 데이터베이스 목록이 안보이는 현상을 중심으로 접속속도 증가를 위한 방법을 찾아보기로 하였다.

우선 프로필러로 EM 접속시 발생하는 쿼리를 캡춰하고, 하나하나 쿼리의 내용을 확인하였다.

상세한정보를 확인가능하지만 쿼리를 알고 있어야 사용이 가능한 쿼리분석기(query analyzer, 이하 QA) 를 이용해서 클라이언트측 응답속도의 기준이 되는 클라이언트통계를 바탕으로 쿼리 처리시간 을 체크하였다.

가장 많은 처리시간을 보이는 쿼리는 사용자가 접근가능한 모든 데이터베이스 목록을 가져오는 프로시져(sp_MShasdbaccess) 였다.
Microsoft 기술문서 KB88969 에 의하면 이 프로시져를 수정함으로써 많은 효과를 볼수 있다고 하며,
SQLER.PE.KR 에서 "데이터베이스의 권한이 있는 데이터베이스만 보기" 라는 이름으로 수정방법이 공개되어 있는 프로시져였다.

그래서 이 sp_MShasdbaccess 프로시져 를 수정하고 재차 테스트를 진행하였다.

하지만 의외로 접속 속도는 크게 줄지 않았다.

그러면서 알게된것이지만 EM은 화면에 표시하는게 많아서인지 일반 사용자에게는 쓸모없는 데이터베이스 복제 관련 정보도 가져오고 있는 부분이 상당수가 있었다.
물론 보안강화를 위해 일반사용자의 권한을 제한하고 있기때문에 해당쿼리의 응답은 항상 같은 코드(권한 없음에 해당하는 반환코드)를 응답하고 있었다.

단독으로 사용되는 서버이기때문에 복제부분의 응답코드를 하드코딩하기로 하였다.

결국 해당 부분을 수정하는것으로 실서비스에는 아무런 영향도 주지않았으면서 EM 의 접속속도가 1/3 로 줄어들었으며, 이후 EM 접속시 느리다다거나 목록부분이 안보인다거나 하는 문의가 줄어들었다.

역시 사람은 문제가 생겨야 생각을 하는것 같다.
Posted by Zasfe

댓글을 달아 주세요

  1. 창해

    필자가 왜 이런 글을 썼는지 이해가 안가는군요. 도대체 목적하는 바가 뭐죠?

    2007.11.02 19:58 [ ADDR : EDIT/ DEL : REPLY ]
    • 무엇인가 동기가 있거나 자기만의 그릇에 빠져서 정체되어 있는 저의 모습을 돌아보며, 조금더 공부하는 자세가 되자는 저의 생각이였습니다.
      관심을 가져주셔서 감사합니다.

      2007.11.14 09:09 [ ADDR : EDIT/ DEL ]