728x90

SQL Server for Developer: 관리자를 위한 튜닝 가이드

운영체제 환경 설정편

차주언 | SQL 컨설턴트

운영체제 환경 설정편

다음의 내용은 솔직히 아주 간단한 내용입니다. 당연하지만 잘 지켜지지 않는 부분이라고 도 할 수 있습니다. 꼭 정확히 설정을 당부 드립니다.

번호 수칙 체크
1 필요한 윈도우 구성 요소만 설치했는가?  
2 최신 서비스 팩과 핫픽스를 설치했는가?  
3 파티션은 NTFS를 사용하는가?  
4 불필요한 서비스를 사용중지 설정을 해두었는가?  

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

불필요한 서비스의 설치는 관리자의 관리가 필요한 부분을 쓸데없이 확대 시킴으로써 알수없는 위험 및 리소스 소모가 발생합니다.
OS를 윈도우2000으로 사용하는 경우는 먼저 모든 선택된 기 구성요소의 체크를 해제한 후 필요한 항목만을 설정하면 편리합니다.

[그림01-01 제어판:윈도우 구성요소 추가/삭제]


앞의 그림처럼 SQL서버에는 사실 위의 모든 구성요소가 설치될 필요가 없습니다.

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

OS및 SQL서버는 항시 최신버젼을 유지하거나 이에 상응하는 대응책을 취해 두어야합니다.

[Microsoft Baseline Security Analyzer를 다운 받는 곳]
http://www.microsoft.com/korea/technet/security/tools/mbsahome.asp

[SQL서버 서비스 팩을 다운받는곳]
http://www.microsoft.com/korea/sql/
우측의 Top다운로드 메뉴에서 가장 최신의 SQL서비스팩을 다운 받아 설치하면 됩니다.

[따라하기]
Microsoft Baseline Security Analyzer를 다운 받고 SQL최신 패치를 다운받아보자

1.그럼 Microsoft Baseline Security Analyzer를 실행하여 로컬시스템에 필요한 최신 SQL패치버젼을 알아봅니다. 시작>프로그램>Microsoft Baseline Security Analyzer를 클릭합니다. 아래의 화면에서 Scan a computer를 선택합니다.

[01-02 실행 초기화면]


2.추가 패치만을 검색할 것이므로 다음과 같이 검색조건을 줍니다.



3.SQL Server 항목에서 Result Details를 클릭합니다



[01-05 패치가 하나 더 필요합니다.]


4.파란색 숫자부분을 클릭하여 해당 패치를 다운로드 받습니다.

5.패치를 설치 완료한 후 해당 SQL서버에 접속하여 버전을 확인해 봅니다.
(2004년 8월 9일현재 8.00.818버전입니다)

[01-06 버전 확인]


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

시스템내의 모든 파티션이 NTFS(보안 및 하드디스크오류검증지원)로 설정되어 있는지 확인합니다. 제어판의 컴퓨터관리항목의 디스크관리 항목에서 확인할 수 있습니다.



그리고 다음의 방법은 데이터가 존재하는 경우 파티션을 NTFS로 변경하는 방법입니다. FAT파티션인 D드라이브를 NTFS로 변경하는 예제입니다.



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

불필요한 서비스에 대하여 가동시키는 것은 리소스 낭비일 뿐 아니라 보안상 허점을 만들수 있으므로, 사용중지 설정을 해두는 것이 좋다

[관련링크 윈도우 2000 서비스 백서]
http://www.microsoft.com/korea/technet/prodtechnol/windows2000serv/deploy/prodspecs/win2ksvc.asp



장황하게 설명하면 내용이 많으므로 대부분의 DB 관리자가 사용한함 설정을 하는 권장항목을 나열합니다.

Application Management
DHCP CLient
Fax
Messanger
Print Spooler
Remote Registry Service
Smart Card
Smart Card Helper
Telnet

Application Management
할당,게시,제거 같은 소프트웨어 설치 서비스를 제공합니다. SQL서버와는 관련없는 기능입니다

DHCP Client
SQL서버는 고정 IP를 부여받아야 하므로 동적 IP 할당 클라이언트를 켜놓을 필요가 없습니다.

Fax
팩스를 SQL서버에 부착하는 것은 말도 안됩니다.

Messanger
화면에 뿌려지는 메신저보다는 이벤트(파일)로 관리하거나 메일링을 사용하는 것이 기록에 남아서 더욱 편리합니다.

Print Spooler
프린터를 SQL서버에 부착하는 것은 말도 안됩니다.

Remote Registry Service
원격 레지스트리 조작용 서비스 입니다

Smart Card
Smart Card Helper 스마트 카드 판독 관련 서비스 입니다

Telnet
원격 사용자가 시스템에 로그온하여 명령줄을 사용하여 콘솔 프로그램을 실행할 수 있게하는것입니다.

제공 : DB포탈사이트 DBguide.net

출처명 : 한국마이크로소프트(주)
728x90

SQL Server for Developer: 관리자를 위한 튜닝 가이드

SQL인스턴스 환경 설정

차주언 | SQL 컨설턴트

SQL인스턴스 환경 설정

다른 SQL인스턴스 설정값들은 상황에 따라 특수하게 공부를 해야하겠지만 아래의 3가지에 비에 그 중요도가 무척이나 떨 어집니다 왜냐하면 SQL이 거의 자동으로 최적값에 세팅되어 있기 때문입니다.

번호 수칙 체크
1 서비스 이상 발생시 자동 시작을 설정해두었는가?  
2 고정 메모리를 사용하도록 해두었는가?  
3 SET OPTION을 사용하는가?  

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

첫번째는 시스템 가동시 항상 서비스는 시작되어야 한다는 것이고 두번째는 문제가 생겨서 갑자기 작동을 멈추면 알아서 다시 시작되어야 한다는 것입니다.

[따라하기]
SQL Server및 Agent 서비스 자동시작 모드로 설정하기
1.자동시작 설정을 해보겠습니다.[서비스 관리자]를 선택한 후 다음의 [자동 시작]항목을 확인합니다.





2.그 다음은 문제 발생시 자동시작 설정입니다. SQL서버 엔터프라이즈 관리자에서 SQL Server 에이전트 서비스에서 [등록정보]를 선택한 후 [고급]텝을 선택한 후 다음을 체크합니다.

[01-03 자동으로 다시 시작]


3.위와 같이 적용해둔 후 SQL서버 서비스 및 에이전트 서비스를 재시작 합니다.

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

SQL 서버는 필요할 때 메모리를 필요한 만큼 가져갔다가 다른 응용프로그램이 가져가게 할 수 도 있으며, 또한 SQL 서버 전용으로 메모리를 아예 고정하는 방법도 있습니다. 상식적으로 생각해보아도 전용으로 사용하는 것이 SQL 서버를 위해 효과적인 것을 알 수 있습니다.

[따라하기]
SQL 서버는 오직 데이터베이스 서비스만을 위해 사용하는 것이 좋다. 운영체제가 사용할 약간량만을 제외한 나머지를 SQL 서버 서비스만을 위해 강제 할당 하는 것이 가장 효율적입니다.

1.엔터프라이즈 관리자를 실행하여 메모리를 설정하고자 하는 서버를 선택합니다.

[02-01 엔터프라이즈 관리자 실행]


2.서버 노드를 선택한후 등록 정보를 실행합니다. 실행후 메모리텝을 선택합니다. 기본으로 [SQL Server 메모리를 동적으로 구성]에 체크되어있습니다.

[02-02 메모리텝(기본은 동적으로 구성)]


3.운영체제를 위한 적당량(200메가) 를 남겨두고 나머지는 SQL 서버를 위해 할당합니다. [고정된 메모리] 체크박스를 선택하고 [SQL 서버용으로 실제 메모리 예약]도 선택합니다. 이렇게 세팅해야만 다른 응용프로그램이 SQL 서비스에게서 메모리를 빼앗아가지 못합니다.

[02-03 고정된 메모리 크기 사용 및 실제메모리 예약]


4.설정이 끝나면 역시 서비스를 재시작해야합니다.

[02-04 서비스 재시작]


수칙 3. SET OPTION을 사용하는가?

가. SET NOCOUNT ON
나. SET ANSI_NULLS ON
다. SET QUOTED_IDENTIFIER ON
라. SET LOCKTIMEOUT 값 지정(디폴트 -1 : 무한대)

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

[따라하기 - SET NOCUNT ON의 의미실험]
1.쿼리분석기에서 다음의 쿼리를 실행합니다.

USE pubs
GO

SELECT * FROM titles

2.결과창에서 메시지 탭을 선택합니다.



3.메시지 탭에 (18개 행 적용됨) 이 보입니다. 이런 메세지도 수가 많아지면 부하가 발생합니다.

4.쿼리에서 SET NOCOUNT ON 실행 후 다시해봅니다.(일반적으로 모든 저장 프로시저의 첫번째 문장은 SET NOCOUNT ON 문이 되어야 합니다.)



5.훌륭하게 적용되었으나, SET문은 단지 지금 세션에만 적용되는 것 입니다. 서버차원에서 다시 설정할 필요가 있습니다.



6.훌륭하게 적용 되었습니다. 다른 것도 실험해 봅시다.

제공 : DB포탈사이트 DBguide.net

출처명 : 한국마이크로소프트(주)
728x90

SQL Server for Developer: 관리자를 위한 튜닝 가이드

데이터베이스 설정

차주언 | SQL 컨설턴트

데이터베이스 설정

번호 수칙 체크
1 데이터베이스 기본 크기 및 증가율을 넉넉히 잡아 두었는가?  
2 필요할 경우 읽기 전용을 사용하는가? (온라인 분석서버)  

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

데이터베이스 등록정보를 보고 기본크기를 여유있게 잡으며 증가단위는 메가단위로 1달에 1번이상 데이터베이스 자동증가가 이뤄지지 않도록 작성하는 것이 좋습니다. 가장 중요한 것은 최대 크기를 설정해두는 것입니다.

[따라하기 데이터베이스 속성 설정]
1.다음의 붉은 동그라미 부분을 설정하면 됩니다.



2.로그부분도 위의 3 부분을 수정해 줍니다.

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

OLTP 즉 다수의 사용자가 데이터를 읽는 경우는 적절한 잠금 장치로 데이터의 일관성을 유지할 필요가 있으나 OLAP 분석 서버인 경우는 그럴필요가 없으므로 읽기 전용 속성이 유리합니다.

[따라하기 속성]
1.데이터베이스를 선택한 후 등록정보를 선택합니다. 옵션을 선택합니다.



[팁 데이터베이스 작성 스크립트 뽑아내기]
1.엔터프라이즈 관리자를 실행합니다. 데이터베이스 항목을 선택한 후 모든작업 > SQL스크립트 생성 을 선택합니다.

2.옵션에서 데이터베이스 스크립팅을 선택한 후 확인을 클릭합니다.



3.다음은 저장된 파일을 열기만 하면됩니다.

제공 : DB포탈사이트 DBguide.net

출처명 : 한국마이크로소프트(주)

+ Recent posts