Database

관리자를 위한 튜닝 가이드

Urong 2020. 11. 4. 10:33
728x90

운영체제 환경 설정편

1 필요한 윈도우 구성 요소만 설치했는가? 

2 최신 서비스팩과 핫픽스를 설치했는가? 

3 파티션은 NTFS를 사용하는가? 

4 불필요한 서비스를 사용중지 설정을 해두었는가?

  • Application Management 할당,게시,제거 같은 소프트웨어 설치 서비스. SQL 서버와는 관련 없는 기능. 
  • DHCP Client SQL 서버는 고정 IP를 부여받아야 하므로 동적 IP 할당 클라이언트를 켜놓을 필요가 없다. 
  • Fax 팩스를 SQL 서버에 부착하는 것은 서버관리자로서 실격이다. 
  • Messanger 화면에 뿌려지는 메신저보다는 이벤트(파일)로 관리하거나 메일링을 사용하는 것 이 기록에 남아서 관리에 용이.
  • Print Spooler 프린터를 SQL 서버에 부착하는 것은 말도 안됨. 
  • Remote Registry Service 원격 레지스트리 조작용 서비스.
  • Smart Card Smart Card Helper 스마트 카드 판독 관련 서비스.
  • Telnet 원격 사용자가 시스템에 로그온하여 명령줄을 사용하여 콘솔 프로그램을 실행할 수 있게하는것 보안상으로도 접근하면 안됨.

SQL 인스턴스 환경 설정

1 서비스 이상 발생시 자동 시작을 설정해두었는가? 

2 고정 메모리를 사용하도록 해두었는가? 

  • 엔터프라이즈 관리자를 실행하여 메모리를 설정하고자 하는 서버를 선택.
  • 서버 노드를 선택한후 등록 정보를 실행후 메모리탭을 선택. 기본으로 [SQL Server 메모리를 동적으로 구성]에 체크.
  • 운영체제를 위한 적당량(200메가) 를 남겨두고 나머지는 SQL 서버를 위해 할당. [고정된 메모리] 체크 박스를 선택하고 [SQL 서버용으로 실제 메모리 예약]도 선택. 이렇게 세팅해야만 다른 응용프로그램이 SQL 서비스에게서 메모리를 빼앗아가지 못함.
  • 설정이 끝나면 역시 서비스를 재시작.

3 SET OPTION을 사용하는가?

  • SET NOCOUNT ON이란? 메시지 창에 ~행이 적용되었습니다 하고 나타나는 시 스템 메시지. 쿼리수가 많아지면 이런 메시지는 네트워크상에 쓰레기가 되니 아예 발생하지 않도록 하는 것이 시스템에 유리. 
  • SET ANSI_NULLS ON이란? SQL-92 표준에서는 NULL 값에 대한 Equals(=) 또 는 Not Equal(<>) 비교의 결과가 검색되지 않아야 한다. 
  • SET QUOTED_IDENTIFIER ON을 설정하면 SET QUOTED_IDENTIFIER 옵션을 ON으로 설정하면 식별자를 큰따옴표로 구분할 수 있으며, 리터럴은 작은따옴표 로 구분해야 한다. 
  • SET LOCKTIMEOUT으로 잠금이 해제될 때가지 명령문이 기다려야 할 시간을 밀 리초 단위로 지정할 수 있다. -1은 초기 상태 무한 대기.

데이터베이스 설정

1 데이터베이스 기본 크기 및 증가율을 넉넉히 잡아 두었는가? 

2 필요할 경우 읽기 전용을 사용하는가? (온라인 분석 서버)

인덱스

1 적절한 인덱스가 걸려있는가?(I/O가 많은 경우 실행 계획 재검사) 

  • 참조키 
  • 참조키가 아니더라도 join에 빈번히 사용되는 경우 
  • select절에 자주 사용되는 칼럼
  • where,group by,order by절에 자주 사용되는 곳

2 인덱스 튜닝 마법사로 점검했는가? 

3 상황 발생시 인덱스 채우기 비율을 조정하는가?

  • 실제 데이터가 아닌 버퍼에 있는 값을 읽어오므로 잠금과는 상관이 없는 readuncommitted를 사용한 예제
select * from table
with (readuncommitted)

모델링

1 정규화 및 적절한 경우의 비정규화가 잘 이뤄졌는가?

  • 제1정규화 : 반복되는 그룹 속성을 제거한 뒤 기본 테이블의 기본키를 추가해 새로운 테이블을 생성하고 기존 테이블과 1:n관계를 만든다. 
  • 제2정규화 : 복합키에 전체적으로 의존하지 않는 속성들을 제거. 
  • 제3정규화 : 기본키에 의존하지 않고 일반 컬럼에 의존하는 컬럼들을 제거. 
  • 비정규화 : 1,2,3정규화가 끝나면 필요에 따라 특수 테이블을 만들어 사용할 수 있다.
728x90
반응형