MS-SQL Server 118

UNPIVOT 관련한 테스트 및 고민꺼리

파라미터로 넘어온 '100,122,1992,23848,5637373,8371712,1,2,3,4,5,6,7,8,9,0,121,1222,12412,42354,6574' 다음과 같은 값을 다른 테이블과 조인하기 위해서 unpivot 해야 하는 부분을 처리하기 위한 Tip 입니다. 관련 게시물은 아래 참고하세요~ (아래 쿼리의 데이터 생성 부분은 아래 링크에서 ^^) http://sqler.pe.kr/web_board/view_list.asp?id=1094&read=21112&pagec=&gotopage=&block=&part=myboard7 MSSQL 2005에서의 cross apply를 이용하는 방법과 기존 MSSQL 2000에서도 사용 가능한 방법에 대한 비교를 통해서 어떤 차이가 있는지 알아 봤습니다...

MS-SQL Server 2009.06.25

MSSQL 2008의 선택 이유와 Enterprise Edition의 사용 이유

아래는 이번에 빌링 통합 서버 장비를 MSSQL 2008의 싱크 방식 미러링으로 구성하면서 DBMS의 선택과 Edtion 선택을 할때 고려했던 내용 입니다. [SQL Server 2008 도입의 이점] 1. 성능 모니터링이 좀더 디테일한 부분까지 가능 - 기존의 2005에서 새롭게 추가된 DMV 자체로도 2000보다 월등히 운영하기 편리해진 부분이 있지만 세부적인 모니터링에는 역시나 한계가 있어서 이슈 발생시에 정확한 원인을 파악 못할 가능성이 있음 이를 해결하기 위한 기능이 2008에 추가되어 특정 쿼리에 대한 확인 및 그 이후의 변화를 추적하여 거의 완벽한 모니터링이 가능 - 성능 데이터에 대한 DW 구축이 가능함. 2. SQL Server에 의한 CPU 및 메모리 등의 서버 리소스를 자동으로 활용 ..

MS-SQL Server 2009.06.25

MSSQL 2008 설치시 오류 상황(MSXML 6.0 Parser)

2008 설치시에 오류가 발생해서 설치 로그파일 확인해 보면 아래와 같은 메세지가 있습니다. Overall summary: Final result: SQL Server를 설치하지 못했습니다. 계속하려면 실패 이유를 조사하고 문제를 해결한 다음 SQL Server를 제거하고 SQL Server 설치 프로그램을 다시 실행하십시오. Exit code (Decimal): -2068643839 Exit facility code: 1203 Exit error code: 1 Exit message: SQL Server를 설치하지 못했습니다. 계속하려면 실패 이유를 조사하고 문제를 해결한 다음 SQL Server를 제거하고 SQL Server 설치 프로그램을 다시 실행하십시오. Start time: 2009-05-19..

MS-SQL Server 2009.06.25

미러링 모니터링 성능 카운터

현재까지 어떻게 하는 것이 제일 좋은지 확인 되지 않았지만 아래 정보 정도는 확인해야 하지 않나 생각 됩니다. Log Bytes Sent/sec => LogBytesSent 초당 보낸 로그 바이트 수입니다. Log Harden Time (ms) => LogHardenTime 마지막 1초 동안 로그 블록이 디스크에 확정될 때까지 기다린 시간(밀리초)입니다. Log Send Queue KB => LogSendQueue 미러 서버로 아직 보내지 않은 로그의 총 KB 수입니다. Log Send Flow Control Time (ms) => LogSendControlTime 마지막 1초 동안 로그 스트림 메시지가 전송 흐름 제어를 기다린 시간(밀리초)입니다. 로그 데이터와 메타데이터를 미러링 파트너로 보내는 것은..

MS-SQL Server 2009.06.25

SQL Server x64에서의 paged out현상에 대해서

요즘 출시되는 인텔의 제온, AMD의 옵테론 프로세스는 64bit(x64)를 기본적으로 지원되고 있고 있으며, SQL Server도 2005부터는 x64 를 지원하고 있습니다.(IA64는 SQL Server 2000도 지원함) 기존 x86의 AWE메모리의 한계와 IA64 도입에 대한 높은 도입 비용으로 인해 x64 환경이 점차 늘어나고 있는 상황입니다. 32bit에서 4GB이상의 메모리를 사용하기 위해서는 AWE 옵션을 Enable해서 64GB까지 사용할 수 있지만, AWE로 확장된 메모리 영역은 데이터&인덱스 페이지로만 구성되기에 다른 영역의 메모리는 기존처럼 2GB(/3GB 추가시 3GB) 공간만을 사용할 수 밖에 없습니다. AWE에서 확장된 메모리를 map, unmap을 하기 위한 Window도 이..

MS-SQL Server 2008.10.07

SERIALIZABLE과 REPEATABLE READ시 Lock 테스트

간단하게 SERIALIZABLE과 REPEATABLE READ시 Lock이 어떻게 걸리는지를 테스트 해 보았습니다. -- 데이터를준비한다. -- drop table tA create table tA (col1 int) insert into tA select 1 insert into tA select 5 insert into tA select 10 -- repeatable read TEST set transaction isolation level repeatable read begin tran select col1 from tA where col1 between 2 and 4 -- 여기까지수행후 다른 spid로 접속해 sp_lock 수행 select col1 from tA where col1 between..

MS-SQL Server 2008.06.20

SERVICE MASTER KEY (SMK)

서버 이전작업시 master DB를 그대로 이전한다고 했을때 MS-SQL 2000에서는 대상서버로 master DB를 이전하려면 master DB의 백업본을 가지고 단일 사용자 모드에서 복원하던지 대상서버의 MSSQL 서비스를 중지시킨 다음 원본 서버의 mdf 파일을 복사해 서비스를 시작시키면 기존의 master DB를 사용할 수 있었다. 하지만 이때 master DB에 저장되어 있는 연결된 서버 정보를 그대로 사용할 수 있으므로 이런 정보를 이용하여 다른 서버에 특정 권한으로 접근할 수 있게 된다. 이러한 문제 때문인지 MS-SQL 2005에서 보안이 강화되어 master DB를 사용하기 위한 추가적인 작업이 필요해졌다. MS-SQL 2005에서는 "서비스 마스터 키" 라는 개념이 도입되었다. BOL을..

MS-SQL Server 2008.06.10

넌클러스터드 인덱스의 SEEK 테스트

CI(Clustered Index)와 NCI(Non-Clustered Index) 인덱스 상황에 따라 NCI Seek를 어떤식으로 하는지 테스트 해 보았습니다. @@ 테스트 환경 OS : Windws XP Professional SQL : Microsoft SQL Server 2005 - 9.00.3054.00 (Intel X86) Mar 23 2007 16:28:52 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3) --drop table idxTest create table idxTest ( c1 int , c2 int , c3 int , c4 int )..

MS-SQL Server 2008.04.29

DBCC DROPCLEANBUFFERS 를 수행하면 Buffer Pool에 존재하는 데이터 페이지가 사라질까?

DBCC DROPCLEANBUFFERS는 Buffer Pool에 존재하는 데이터 페이지를 제거하는 구문입니다.하지만 DBCC DROPCLEANBUFFERS을 수행하면 정말 Buffer Pool에 있는 데이터 페이지가 사라질까요? 간단히 결론만을 말하면 아직 disk로 플러시 되지 않는 페이지는 이 구문으로 내려갈 수 없습니다. 모든 Buffer Pool에 있는 페이지를 내리려면 checkpoint를 통해서 Dirty페이지를 마크 후에 DBCC DROPCLEANBUFFERS를 수행 하면됩니다. 아래는 테스트 예제입니다. USE TESTGO--DROP TABLE tbl1 --샘플 테이블 만들기SELECT        TOP 1000       ROW_NUMBER() over(..

MS-SQL Server 2008.04.23

CHECKPOINT 프로세스 part 0

CHECKPOINT는 Buffer Pool의 커밋되지 않은 페이지를 디스크로 플러시를 하는 프로세스 입니다. CHECKPOINT는 DB단위로 발생하며, 발생 주기는 recovery interval 옵션의 값을 기반으로 움직이게 됩니다. CHECKPOINT 발생시 커밋되지 않은 페이지를 디스크로 페이지를 플러시 하며, CHECKPOINT가 발생한 시점에 트랜잭션 로그파일도 마킹을 하여 비정상적인 종료시 마지막 CHECKPOINT 이후의 트랜잭션 로그를 바탕으로 데이터를 롤백 또는 롤포워드 하게됩니다. CHECKPOINT가 발생시 IO에 병목이 발생 할 수 있으며 이러한 문제의 해결에 도움을 줄 수 있는 몇가지 기능이 SQL Server 2005에 추가되었습니다. 1. CHECKPOINT Duration è..

MS-SQL Server 2008.04.10