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

카테고리

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

달력

« » 2024.3
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

공지사항

최근에 올라온 글

수 년간 성능 데이터를 데이터베이스에 저장하게 되면, perfmon 프로그램으로 해당 데이터베이스를 열어 분석 하고자 할 때 대단히 오랜 시간이 걸린다. 해당 서버와 해당 카운터만 골라와 빠르게 분석하고자 한다면 다음 방법을 사용한다.

 

 

 

 

 

특정 기간의 데이터만 잘라 3개의 테이블로 담아 데이터베이스를 구성한다.

Select * into 테이블이름같게 from (select * from 같은테이블 where 조건) a

 

 

여기서 SQL Server 선택 하도록 한다. ***

 

 

 

 

 

 

 

 

 

 

 

RESTORE FILELISTONLY FROM DISK ='D:\CAFE\PERF2\PERF2.BAK'

GO

 

RESTORE DATABASE PERF0518BBS2 FROM DISK ='D:\CAFE\PERF2\PERF2.BAK'

WITH MOVE 'PERF2' TO 'D:\PERF0518BBS2.MDF'

, MOVE 'PERF2_LOG' TO 'D:\PERF0518BBS2.LDF'

 

USE master

GO

 

 

-- 데이터 베이스 속성 변경

ALTER DATABASE PERF0518BBS2 SET RECOVERY SIMPLE

GO

ALTER DATABASE [perf0518bbs2] MODIFY FILE ( NAME = N'perf2', FILEGROWTH = 512000KB )

GO

ALTER DATABASE [perf0518bbs2] MODIFY FILE ( NAME = N'perf2_log', SIZE = 512000KB , FILEGROWTH = 512000KB )

GO

 

USE PERF0518BBS2

GO

 

-- 데이터 보정

declare @recordindex_reset int

, @min_counterdatetime varchar(100)

, @max_counterdatetime varchar(100)

, @min_counterid int

, @number_of_record int

 

select @recordindex_reset = MIN(RecordIndex) - 1

     , @min_counterdatetime= min(counterdatetime)

     , @max_counterdatetime = MAX(counterdatetime) 

     , @min_counterid = MIN(counterid)

  from dbo.CounterData

 

select @number_of_record = COUNT(*) from CounterData where CounterID = @min_counterid

 

if (@recordindex_reset > 1) begin

update dbo.CounterData set recordindex = RecordIndex - @recordindex_reset

update dbo.DisplayToID set

   logstarttime = @min_counterdatetime

 , logstoptime = @max_counterdatetime

 , numberofrecords = @number_of_record

end

 

-- 인덱스 생성

CREATE CLUSTERED INDEX [CL_COUNTERDATA] ON [DBO].[COUNTERDATA]

(

[GUID] ASC,

[COUNTERID] ASC,

[RECORDINDEX] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

GO

 

-- 데이터 확인

select top 100 * from dbo.CounterData

select * from dbo.CounterDetails

select * from dbo.DisplayToID

 

 

 

 

 

 

 

Posted by 보미아빠
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함