BLOG main image
분류 전체보기 (45)
SQL Server 이야기 (45)
일상 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
'SQL Server 이야기'에 해당되는 글 45건
2008. 4. 7. 21:05

복제라는 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 아티클>


<게시서버에서 호출 시 구독서버에도 동일한 내용이 반영되는 것 확인한 추적 로그>

2008. 4. 7. 20:52

SQL Server 네트워크 유틸리티에서 포트 번호 지정하는 곳에 콤마로 포트번호를 추가 할 수 있습니다.


송 혁, SQL Server MVP

sqler.pe.kr

nexondbteam.tistory.com

2008. 4. 7. 20:51

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

2008. 4. 7. 20:09

 

특정 컬럼을 기준으로 한 채번이 아닌 조건이 없는 채번시 아래와 같은 구문을 사용하면 구문오류가 발생합니다. (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

2008. 3. 10. 15:26

사용자 삽입 이미지