블로그 이미지
010-9967-0955 보미아빠

카테고리

보미아빠, 석이 (500)
밥벌이 (16)
싸이클 (1)
일상 (1)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글


IF OBJECT_ID ('TBLX') IS NOT NULL
DROP TABLE TBLX
GO

CREATE TABLE TBLX
(IDX INT
,C1 INT
,C2 INT)
GO

 

INSERT INTO TBLX VALUES (1,1,1), (2,2,2), (3,3,3),(4,4,4)
GO

 

SELECT *
  FROM (SELECT * FROM (VALUES (1), (3)) V (INSERTORDER)) A
 CROSS APPLY (SELECT * FROM TBLX WHERE IDX = INSERTORDER) B
 
SELECT *
  FROM (SELECT * FROM (VALUES (1), (3)) V (INSERTORDER)) A
 INNER LOOP JOIN TBLX B
    ON B.IDX = INSERTORDER

 

 

IF OBJECT_ID('DBO.USP_A') IS NULL
EXEC ('CREATE PROC USP_A AS SELECT 1 ')
GO   


 

ALTER PROC DBO.USP_A
(@A1 INT
,@A2 INT
,@A3 INT)
AS

SELECT *
  FROM (SELECT * FROM (VALUES (@A1), (@A2), (@A3)) V (INSERTORDER)) A
 INNER LOOP JOIN TBLX B
    ON B.IDX = INSERTORDER
GO

 

EXEC DBO.USP_A 1,2,3
EXEC DBO.USP_A 3,1,2

Posted by 보미아빠
, |

 

 

http://connect.microsoft.com/SQLServer/feedback/details/593744/worker-time-columns-in-sys-dm-exec-procedure-stats-are-incorrect

Posted by 보미아빠
, |

로그가 잘리지 않으면, 활성로그, 복제로그 시퀀스, checkpoint, TF(3505)

등을 살펴봐야 한다.

 

활성로그 + 복제는

-----------------------------------------

dbcc opentran 

 

TF 는

-----------------------------------------

dbcc tracestatus (-1)

결과중 3505가 있으면 수동 검사점 제어가 동작중이다.

3502 는 검사점 정보를 log 로 남긴다.

 

checkpoint lsn 은

-----------------------------------------

dbcc traceon(3604)
dbcc dbinfo ('tempdb') with tableresults

-- 결과 중 아래를 보면,

DBINFO @0x000000000A46D900 dbi_checkptLSN m_fSeqNo 77
DBINFO @0x000000000A46D900 dbi_checkptLSN m_blockOffset 145
DBINFO @0x000000000A46D900 dbi_checkptLSN m_slotId 8

 

혹은 boot page 를 확인하면 되는데,

DBCC PAGE ('tempdb', 1, 9, 3) with tableresults; 
DBINFO @0x000000000A46A060 dbi_checkptLSN m_fSeqNo 77
DBINFO @0x000000000A46A060 dbi_checkptLSN m_blockOffset 145
DBINFO @0x000000000A46A060 dbi_checkptLSN m_slotId 8

 

혹은 테스트로 데이터베이스 로그가 작다면 다음과 같은 방법도 사용 될 수 있겠다.

 

SELECT
 [Current LSN]
, [Previous LSN]
, Operation
, [Checkpoint Begin]
, [Checkpoint End]
FROM fn_dblog(NULL, NULL)
WHERE operation IN ( 'LOP_BEGIN_CKPT', 'LOP_END_CKPT')

 

위 결과를 바탕으로 현재의 로그를 검사해 보자면,


dbcc loginfo (tempdb)

결과중 아래를 보면 Status 가 2인 77 번 FSeqNo 를 확인 할 수 있다.
FileId FileSize StartOffset FSeqNo Status Parity CreateLSN
2 13041664 8192 77 2 64 0              <------------- 활성
2 13041664 13049856 0 0 0 0
2 13041664 26091520 0 0 0 0
2 13295616 39133184 0 0 0 0

 

 

이 외 다양한 정보를 dbcc dbinfo 를 통해 얻을 수 있다.

예를 들면 db 가 처음 생성된 버전 dbi_createVersion

현재의 버전 dbi_version

가장 오래된 백업 lsn 등등등

 

참고로 내부 데이터 버전은 다음을 다음과 같이 정의된다.

SQL Server (70) 7.0 databases have version number 515
SQL Server (80) 2000 databases have version number 539
SQL Server (90) 2005 databases have version number 611/612
SQL Server (10) 2008 databases have version number 655
SQL Server (10.5) 2008 R2 databases have version number 661

 

 

 

TRACEFLAG 3512
Description ='Write info on log space used at checkpoint time to errorlog'

TRACEFLAG 3502
Description ='Send checkpoint state changes to errorlog'

TRACEFLAG 3504
Description ='Send checkpoint summary to errorlog ,Displays number of pages written and other stats'


Make sure this TF 3505 is not enabled which TF 3505Allows checkpointing to be dynamically disabled'

Posted by 보미아빠
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함