본문 바로가기

서비스 브로커

(5)
[Service Broker] 성능 최적화 - 150 Trick 이전 글의 소스를 유심히 살펴보셨다면 아래 테이블에서 [_150TrickEnableFlag] 컬럼이 어떤 역할을 하는지 알고 계실 것 같습니다. 123456-- Dialog Pool 설정 테이블 생성CREATE TABLE dbo.DialogPoolConfig ( _150TrickEnableFlag bit NOT NULL, DialogCount int NOT NULL);GOColored by Color Scriptercs [P_StartUp_CreateDialogs]의 내용은 아래와 같았죠. 12345678910111213141516171819202122232425262728293031CREATE PROCEDURE dbo.P_StartUp_CreateDialogsASSET NOCOUNT ON;SET XAC..
[Service Broker] 성능 최적화 - 기본편 SSB 최적화는 여러 면에서 바라볼 수 있습니다. 지금부터 하나씩 살펴보겠습니다. 1. 스토리지 구성 - [PRIMARY] 파일그룹 분리 SQL Server에서 스토리지 구성의 기본 원칙은 데이터파일과 트랜잭션 로그 파일을 물리적으로 분리된 디스크 볼륨에 위치시키는 것입니다. 그런데, SSB의 TRANSMISSION QUEUE는 [PRIMARY] 파일그룹 안에 있는 internal 테이블을 사용합니다. 따라서 주고 받는 메시지가 많으면 많을 수록 *.mdf 파일에 대한 I/O가 증가하게 됩니다. 즉, SSB를 사용하여 대량 메시지를 전송하는 시스템이라면 사용자 데이터를 별도의 파일 그룹에 저장하고 *.mdf 파일과 *.ndf 파일을 물리적으로 분리된 디스크 볼륨에 위치시켜야 합니다. tempdb의 경우 ..
[Service Broker] 인증서를 사용한 인스턴스 간의 대화 BOL의 자습서를 마치셨다면 인증서를 사용하는 방법을 맛 보셨으리라 생각합니다. 아마 인증서를 SERVICE 개체에 매핑하는 것을 보셨을텐데요. SSB에서 인증서를 사용할 수 있는 곳이 하나 더 있습니다. 그것은 END POINT의 인증 방식으로 Windows 인증 대신 인증서를 선택하는 것이죠. 실제 환경에서 Windows 인증을 사용하기 어려운 경우가 존재하기 때문에, 인증서를 사용하는 것을 권해드리고 싶습니다. 이번 글에서는 END POINT의 인증 방식으로 CERTIFICATE를 사용하는 방법과 함께.. 인스턴스 간의 대화에 필요한 SSB 개체를 하나 하나 살펴보겠습니다. (스크립트와 주석으로 대부분의 설명을 대신합니다. 꼼꼼히 읽어 주세요.) 사전 준비 - 2개의 SQL Server 인스턴스를 ..
[Service Broker] 기본 개념 익히기 Service Broker는 SQL Server와 SQL Server 사이에 메시지를 주고 받는 기능입니다. 이때 메시지를 전송하는 쪽을 INITIATOR, 수신하는 쪽을 TARGET이라고 부릅니다. 1. INITIATOR와 TARGET이 모두 하나의 데이터베이스일 수도 있고 2. INITIATOR와 TARGET이 하나의 인스턴스에 존재하는 서로 분리된 데이터베이스 일수도 있고 3. INITIATOR와 TARGET이 서로 분리된 인스턴스일 수도 있습니다. 아마 대부분의 실무 레벨에서는 3항의 구성이 적용되리라 생각합니다. 그럼에도 1, 2항의 구성이 가능하다는 것에 감사할 수 있는데요. 처음 Service Broker를 접하는 단계에서 개념을 잡을 때, 1항과 2항의 단순한 구성이 도움이 되기 때문입니다..
[Service Broker] 시작하며... 이런 저런 핑계를 대며 미루고 미뤘던 Service Broker - 이하 SSB라고 쓰겠습니다 - 에 대한 포스팅을 시작합니다. - MESSAGE TYPE - CONTRACT - QUEUE - SERVICE - ROUTE - ENDPOINT - REMOTE SERVICE BINDING SSB를 구성하는 개체들입니다만.. 각각의 역할과 각 개체 간의 상관 관계를 이해하기가 쉽지는 않더군요. 아마 MS SQL 구성 요소 중 가장 불친절한 친구 중 하나가 아닌가 싶습니다. 그럼에도 공부할 가치가 있는가? 네, 전 있다고 생각합니다. Service Broker 란? BOL을 보면 "메시징 및 큐", "서로 다른 데이터베이스 간에 통신", "데이터베이스 작업을 여러 데이터베이스에 분산" 이란 말이 나옵니다. SS..