복제라는 SQL Server의 기능을 활용하여 여러 개의 테이블을 다른 구독서버로 데이터를 동기화 하는 용도로 사용됩니다.
테이블일 경우에는 게시자의 트랜잭션 로그 파일을 읽어 배포자로 보낸 후 배포자는 다시 구독자에게 넘겨주는 방법으로 동작 하게 됩니다.
데이터 뿐만이 아니라 게시자에서 실행되는 SP의 실행도 구독에도 동일히 반영할 수 있습니다.
아래의 그림을 보면 "저장 프로시져 실행"," 직렬화된 트랜잭션에서의 실행" 두 가지를 선택하여 구독자에게 전달 할 수 있습니다.
SP의 직렬화된 트랜잭션에서의 실행은 SERIALIZABLE 격리수준에서 명시적 트랜잭션을 사용한 SP에 대해서만 구독으로 전달 하겠다라는 의미입니다.
자세한 내용은 아래 테스트를 참고 하세요.
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRAN
exec P..up_b 3,'SONGHYOK'
COMMIT
--테스트 시작
create table P..b (a int, b char(100))
create table S..b (a int, b char(100))
Create Proc p..up_B
@a int
,@b char(100)
as
insert into b valueS(@a,@b)
exec p..up_b 1,'Song'
<SQL Server 2005 SP 아티클>
<SQL Server 2000 SP 아티클>
<게시서버에서 호출 시 구독서버에도 동일한 내용이 반영되는 것 확인한 추적 로그>
SQL Server 네트워크 유틸리티에서 포트 번호 지정하는 곳에 콤마로 포트번호를 추가 할 수 있습니다.
송 혁, SQL Server MVP
sqler.pe.kr
nexondbteam.tistory.com
SQL Server 2005부터 DMV가 제공되고 있으며, DMV를 이용하여 기존에 확인 하기 힘든 내부 동작에 대해서 확인 할 수 있습니다.
아래 스크립트는 Buffer pool에 존재하는 페이지 정보를 보여주는 DMV이며
이 내용을 기반으로 INDEX Scan, Seek, ReadAhead, checkpoint 등에 대한 보다 깊은 동작 방법을 이해 할 수 있습니다.
select
B.Database_id
,object_name(object_id,database_id) as ObjectName
,Page_id
,Page_Level
,Page_Type
,type_Desc
,Free_space_in_bytes
,is_modified
,Index_id
,A.Total_Pages as [할당된총페이지]
,A.USed_Pages
,A.Data_Pages
from sys.allocation_units a
right outer join sys.dm_os_buffer_descriptors b
ON a.allocation_unit_id = b.allocation_unit_id
left outer join sys.partitions p
ON a.container_id = p.hobt_id
WHERE B.database_id = db_id('Test')
and (p.object_id IS NULL OR p.object_id > 100)
and object_name(object_id,database_id) = 'test01'
Order by 1,2,3
송 혁, SQL Server MVP
sqler.pe.kr
nexondbteam.tistory.com
특정 컬럼을 기준으로 한 채번이 아닌 조건이 없는 채번시 아래와 같은 구문을 사용하면 구문오류가 발생합니다. (over(order by 1) )
이런경우 (SELECT 1)로 추가하면 추가적인 정렬하지 않고 데이터 출력순서에 따라 채번이 되게 됩니다.
자세한 내용은 아래를 참고 하세요.
select top 100
row_number() over(order by col2) as col1
from tbl4 with(nolock)
select top 100
row_number() over(order by (select 1)) as col1
from tbl4 with(nolock)
송 혁, SQL Server MVP
sqler.pe.kr
nexondbteam.tistory.com