Windows DB

SQL Server 인덱스 설정의 효과

2008.06.27 23:35

dhkim 조회 수:23682

SQL Server 인덱스 설정의 효과


www.wssplex.net
Database 에서의 인덱스는 이제 필수 불가결한 사항이고, 그것을 설계된 데이터베이스에 얼마나 효과적으로 잘 이용하냐는 것이 관건입니다.



위 MRTG 챠트는, SQL Server 전용으로 운영되는 장비의 CPU 로드 주간 그래프 챠트 입니다.  차트를 보면, 26주중에 사용량이 대폭 낮아진것을 볼수 있습니다.

왜 문제가 있었을까요?..

답은 자주 쿼리되는 테이블의 컬럼중 하나에 대해서 인덱스 설정을 해준것 하나 뿐입다. 효과가 대단 하죠?. 컬럼 하나에만 인덱스 설정해 주었을 뿐이데 말이죠.^^ 좀더 확인해서 설정해 준다면 현재보다 CPU 사용률을 더 낮출수 있습니다.


이미 인덱스 튜닝에 관련해서 여러 고급문서들이 존재하고, 수 많은 개발들이 인덱스 및 쿼리튜닝을 통해서 쿼리시간 단축을 연구 및 효과를 보고 있습니다.

물론, 이런것을 대용량의 레코드와, 빈번하게 쿼리가 이루어져야 효과가 극대화 되는 것이겠죠?..

인덱스에 관련된 내용은 매우 광범위하고 고급 기술의 이해가 필요한 부분 이므로 SQL Server 매뉴얼을 참조하거나 인터넷에 수많은 문서들을 참조해 보기 바랍니다.

튜닝에 있어서 공통된 부분이 많기도 하지만, 해당 사이의 특성에 따라서 제안된 방법이 오히려 역효과를 가져오는 경우도 있으므로 영향성에 대한 사전 분석이 매우 중요합니다.

인덱스 튜닝은 고급문서에서 설명하는 방법이나, 이해가 없더라도 SQL Server 자체에서 제공해주는 인덱스 튜닝 마법사를 이용하는 방법도 있습니다.

SQL Server for Developer: 관리자를 위한 튜닝 가이드
http://www.microsoft.com/korea/technet/sql/tuning_guide_admin06.asp

참고로, SQL Server 2005 에서는 "데이터베이스 엔진 튜닝 관리자" 로 변경 되었습니다.

다만,. 이런 자동화된 툴은 필요치 않은 테이블 컬럼에 까지 인덱스를 설정하기도 하며, 쿼리 데이터를 많이 쌓아 놓고 분석을 해야 그 효과가 좋습니다.


필자가 추천하는 방법은, 역시 SQL Server 에서 제공해주는 "프로필러(Profiler)" 를 이용하는 방법입니다.



HOWTO: SQL Server에서 응용 프로그램 성능 문제 해결
http://support.microsoft.com/kb/224587/ko

물론 이런 프로필러를 이용할려면 해당 툴에 대한 이해 및 이용방법이 선행되어야 하는 점이 있기는 하나, 테이블 스캔을 과도하게 하거나, CPU 이용률, 쿼리실행시간이 높은 쿼리를 확인하여 해당 쿼리튜닝 및 인덱스와 같은 서버측 설정을 해주면 됩니다.

 

번호 제목 글쓴이 날짜 조회 수
50 [MS SQL]중복제거, 중복찾기 호스트웨이 2015.09.16 234943
49 Windows MySQL root 패스워드 분실시 호스트웨이 2012.08.10 47262
48 실행중인 Mssql 버젼 확인 hostway 2008.05.15 25430
47 MS-SQL 개체 소유권 변경 레이쩡 2008.09.18 25031
46 MDF파일만 있을 경우 복구하는 방법(SQL2000만 해당) shpark 2008.07.07 24804
» SQL Server 인덱스 설정의 효과 dhkim 2008.06.27 23682
44 tempdb 복구 및 이동 방법 hostway 2008.05.15 22915
43 sql injection 보안 점검 hostway 2008.05.14 21809
42 Microsoft Source Code Analyzer for SQL Injection 관련 자료 dhkim 2008.07.25 21649
41 MS-SQL 서비스 포트 변경 file 호스트웨이 2012.07.14 21602
40 MS SQL 트랜잭션 로그를 줄이는 방법 레이쩡 2008.09.18 21328
39 [MS-SQL] DB Table 소유자변경 dalgri 2009.05.25 21054
38 SQL 인젝션에 이용되는 XP_cmdshell 확장프로시져 삭제 방법 dhkim 2008.12.24 18619
37 SQL 빌드 넘버 리스트 호스트웨이 2012.11.08 17934
36 SQL 2008 RTM 에서 유지관리계획 실행 시 Error file 호스트웨이 2012.09.14 17470
35 [MS SQL]다른 DB에 있는 테이블 이동/복사하기 호스트웨이 2015.09.15 17310
34 SQL 서버 관리자가 알아야 할 11가지 유용한 팁 호스트웨이 2012.08.03 15545
33 SQL 인젝션 치료용 커서 dhkim 2008.12.10 15197
32 SQL 2008 Express 버전 설치 1 file 호스트웨이 2010.04.01 14898
31 Windows Server 2008에서 MS SQL 2008 설치오류에 대한 해결[역할관리도구] file 호스트웨이 2012.08.31 14883