데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

안녕하세요, sql server를 사용하고 있는 개발자 입니다.

sql server에서 이상한 증상이 발견되어, 혹시 버그는 아닌가 해서 문의 드립니다.

여러 단계의 프로세스 중, 먼저 select한 getdate()보다 나중에 select한 getdate()가 더 과거의 값이 select되는 증상을 발견하였습니다.

이를 테스트 하기 위해 별도의 쿼리를 작성하여 테스트를 해보니, 동일한 증상이 많이 나타납니다.

혹시, 연속으로 getdate()를 여러번 진행할 경우에 그런 증상이 나타날 수 있는 것인지요?

datetime형식의 경우 .000, .003 또는 .007초 단위로 반올림 되는 사항과 연관이 있나 싶었지만,

그 문제는 아닌것 같고, 반올림 여부와 상관없이 오류가 있는 듯 합니다.

실제 소스는 아래와 같은 패턴이며 테스트 쿼리는 따로 작성했습니다.

실제 소스 패턴

1. set @변수1 = getdate()

2. 필요한 프로세스 처리

3. set @변수2 = getdate()

4. 필요한 프로세스 처리

5. @변수1과 @변수2와 관련한 처리 시 오동작(if문이나 where문에서 사용)

GETDATE()의 오동작 테스트 쿼리

SET NOCOUNT ON;

DECLARE @loopCount INT
, @loopMaxCount INT
, @beforeDatetime DATETIME
, @currentDatetime DATETIME

SET @loopCount = 1
SET @loopMaxCount = 100000000
SET @beforeDatetime = GETDATE()


WHILE @loopCount <= @loopMaxCount
BEGIN
SET @currentDatetime = GETDATE()

IF @beforeDatetime>@currentDatetime
BEGIN
SELECT @loopCount AS 'No', @beforeDatetime AS 'beforeDatetime', @currentDatetime AS 'currentDatetime'
END

SET @beforeDatetime = @currentDatetime

SET @loopCount  = @loopCount + 1
END

증상은 2005, 2014에서 나타나는것을 확인했지만, 모든 버전에서 확인하기가 힘들기 때문에 문의 드립니다.

또한, 위 쿼리로 테스트 시 증상이 무조건 나오는 것도 아니고 나왔다 안나왔다 혹은 조금 나왔다 많이 나왔다 합니다.

위 증상에 대해서 확인이 가능했으면 좋겠습니다.


No. Subject Author Date Views
» SQL Server GETDATE() 버그인것인지 문의 [4] Jaden 2015.12.01 2436
9030 트랜잭션 교착상태 [2] leesoek 2015.11.30 2718
9029 두 테이블 조인 시 B 테이블의 여러 레코드 중 1개만 조인 시킬 때 [2] Larry 2015.11.30 3584
9028 중국어(한자) ? 로 업데이트 되는 문제 ㅠ [6] 더따뜻한 2015.11.27 3085
9027 한글 포함 컬럼인지의 여부 체크 [2] 더따뜻한 2015.11.26 4329
9026 SQL 쿼리문 질문 하나 하겠습니다. [9] 백마탄나 2015.11.26 3184
9025 sys 시스템 테이블 조회 안되게 하는 방법 [1] 한인 2015.11.25 2127
9024 한컬럼에 다른테이블 연관 레코드에 표시하기 [4] 김민식_279245 2015.11.25 2258
9023 공유잠금 관련 쿼리 질문있습니다. [2] 쵸보 2015.11.24 1961
9022 평균시간 구하는방법 [1] pobiblue 2015.11.23 3736
9021 오래된 데이터 삭제 시점과 백업 [1] embster 2015.11.23 2720
9020 Tempdb에 대한 질문입니다. [2] 희망나라 2015.11.20 2619
9019 여러 사용자 계정을 생성하려고 합니다. [2] 더따뜻한 2015.11.19 2397
9018 MS SQL 동기화? 복제? 질문드립니다. [3] Sinlay 2015.11.17 6521
9017 계층형 쿼리를 서브 쿼리로 사용하는 방법 질문 [2] qjvjfldel 2015.11.17 2800
9016 최근것만 가져오기 T^T [2] 마힐링 2015.11.17 2451
9015 최근날짜의 데이터 가져오기..^_^ [6] 마힐링 2015.11.16 4300
9014 모바일 게임 DB로 SQL Server 사용하고 계시는 분 있나요? [3] 메칸더 2015.11.16 2715
9013 쿼리 정렬에 관련된 질문입니다. [3] 흑흑 2015.11.14 2087
9012 SQL 서비스 재시작 할 때마다 DB가 20분정도 복구중이라고 나옵니다 [2] 조굴 2015.11.13 2661





XE Login