-
관리자를 위한 튜닝 가이드Database 2020. 11. 4. 10:33728x90
운영체제 환경 설정편
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반응형'Database' 카테고리의 다른 글
SORT 영역을 적게 사용하도록 SQL 작성 (0) 2020.11.04 파티션 확인하고 파티션테이블별로 조회하기 (0) 2020.11.04 오라클 vs MS SQL 함수 비교 (0) 2020.10.30 MSSQL 튜닝 기초 (0) 2020.10.30 MSSQL 특정문자열을 사용하는 SP,VIEW,Function,Trigger 찾기 (0) 2020.10.29