티스토리 뷰

반응형

내가  IT쪽 일을 하게 된 지도 어언 14년정도가 되었다.

되돌아 보면 그동안 참 많은 일들이 있었는데 시간이 참 빨리도 흘러가는 것 같다.

전산 인프라 운영부터 헬프 데스크, 네트워크 장비 운영, 프로그램 개발, 정보보안, DB및 서버 관리 등등

14년동안 잡다한 일들을 참 많이 해봤었는데

의미있는 기록을 남겨보면 어떨까 하는 생각이 문득 들었다.

그 중에 어떤게 좋을까 고민하다가 내가 주로 사용했던 MS-SQL에 대한 이야기를 해 보기로 마음먹었다.

더 세부적으로는 DB를 튜닝하는 방법에 대해서.... 아니, DB를 튜닝한다니 얘기가 좀 거창한거 같고

DB를 좀 더 효율적으로 관리, 사용하는 방법에 대해서 내가 알게된 것들을 정리해 볼까 한다.

이것저것 주제를 잡아 간단하게 정리를 하는 방식으로 해 보려고 하는데

현업에서 일하면서 문제가 발생했을 경우 검색해 보고, 책을 찾아보고 이렇게 저렇게 해보면서 조금씩

알게된 것들이라... 혹시나 누군가 이 글을 보고 참고를 하려고 한다면 100% 신뢰하기 보다는

자신의 환경에 맞게 면밀히 검토해서 적용 해 보기를 추천한다.




■ SQL 튜닝에 왜 관심을 가져야 하는걸까?

튜닝.... 이라고 하면 보통 잘 알려진 말 중에 "튜닝의 끝은 순정"이란 말이 있다. ㅎㅎㅎ

머신에 이것저것 재미로 커스터마이징을 잔뜩 해 보지만 결국에 튜닝을 하지 않은 순정으로 돌아온다는 뜻인데

이 말때문에 튜닝이란 단어가 별로 좋은 어감이 아니게 된 것 같다.

그런데 SQL서버에서는 상황이 좀 다르다.

머신이 아무리 좋아도 누군가의 잘못된 쿼리사용으로 잠금이 걸린상태로 풀리지 않는다면 이건 뭐...

서버 관리자라면 고구마를 사이다 없이 100개는 먹은 듯한 답답함을 느끼게 될 것이다.

좀 더 과장을 보태서 자신의 삶의 질이 달라질 수도 있다.

전산이 느려서 업무가 안될정도라는 내부 민원이 지속적으로 들어온다면... 만나는 사람들마다 전산때문에

일 못하겠다는 얘기를 인사처럼 한다면... 그럴수도 있지 않을까? ㅎㅎ

회사는 계속 성장해서 직원수나 고객의 수는 늘어나는데 경영자는 서버가 뭔지 잘 알지도 못하고 관심도 없어서

서버 증설에 투자하지 않는다면 서버 관리자의 선택은 아마 둘 중 하나일 것이다.

그 회사를 나오던지 아니면 있는 서버라도 어떻게든 효율적으로 사용할 수 있도록 만드는 것.

좀 과장을 섞기는 했지만 현실에서 아예 없는 경우는 아닐 것이다.

IT업계가 아닌 일반 기업에서 전산 시스템이란 보험과 성격이 비슷한것이라서 평소에 아무 문제가 없을 때는

전산 시스템에 돈쓰기가 아깝다고 생각하기 때문이다.

그러다가 문제가 발생해야만 겨우 비용을 들여 문제를 해결하려고 하는 것이다.

그런 경영자 입장에서는 결국 돈 벌어오는 부서는 "영업"이고 "전산"은 돈 쓰는 부서이기 때문이다. ㅎㅎ

아무튼... 경영자를 설득하여 좋은 서버를 구매, 하드웨어 사양이 대폭적으로 상승하게 되어 성능이 향상되었다고 해도

결국 몇년이 됐든 시간이 지나면 같은 상황은 다시 돌아오기에 하드웨어가 주는 평안에는 한계가 있다.

음.... 말이 좀 길어졌는데 결국에 하고싶은 말은 위에서 얘기한 것처럼 이러저러하니 서버 관리자에게 튜닝은 필요하다~!!

(근데... 글 쓰다보니 튜닝이 문제가 아니고 사람이 문제인거 같다는 생각이.... -_-;;;)


■ SQL 튜닝을 하기 위해선 어떤 것들을 알아야 할까?

튜닝이라고 하면 왠지 거창할 것 같은데... 간단하게 상식선에서 서버가 느려질 수 있는 요인들을 찾는다고 생각하면 된다.

서버가 느려질 수 있는 요인에는 어떤 것들이 있을까

1. 메모리

2. CPU

3. 하드디스크 입출력속도(I/O)

4. 빈번한 쿼리사용(동시에 쿼리를 날리는 사용자수)

5. 개발자 및 서버 관리자의 잘못된 쿼리작성으로 인한 응답지연

6. 트랜잭션, 잠금 등 교착상태

7. 기타 등등

(위 순서는 중요도순 정렬이 아닌 내 머리속에서 생각나는 대로 적은 것이다.)

지금 생각나는 건 한 이정도? 물론 사용환경이란것은 모두 다르기 때문에 이게 전부는 아닐 것이다.

어쨌든 튜닝을 하기위한 첫걸음은 문제가 무엇인지를 판단하는 것이다.

어디서 어떻게 느려지는 현상이 있는지를 찾아야 해결도 하기 때문이다.


글을 쓰다보니 글이 좀 중구난방이 된 것 같긴한데....

일단 짧게 짧게 오늘은 여기까지 정리하도록 하고...

다음번부터 본격적으로 튜닝을 하기 위해 문제점들을 찾는 방법에 대해서 조금씩 정리를 하는식으로 해서

시간날 때마다 포스팅을 해보도록 하겠다.





반응형
댓글
반응형
05-17 05:57
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함