/*
데이터가 있는 테이블을 자가 복제 하여 트랜젝션 로그를 늘릴 수 있습니다.
해당 테스트에서 사용 하는 테이블 [AdventureWorks2012].[Person].[Person]는 [AdventureWorks2012] DB 에서 용량이 가장 큰 테이블 입니다.
sp_helpdb [DatabaseName] 로 중간 중간 파일의 용량을 확인 합니다.
truncate table [dbo].[Person]
*/
--1 단계 테이블을 생성 합니다.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Person](
[BusinessEntityID] [int] NULL,
[PersonType] [nchar](2) NULL,
[NameStyle] [bit] NULL CONSTRAINT [DF_Person_NameStyle] DEFAULT ((0)),
[Title] [nvarchar](8) NULL,
[FirstName] [nvarchar](50) NULL,
[MiddleName] [nvarchar](50) NULL,
[LastName] [nvarchar](50) NULL,
[Suffix] [nvarchar](10) NULL,
[EmailPromotion] [int] NULL CONSTRAINT [DF_Person_EmailPromotion] DEFAULT ((0)),
[AdditionalContactInfo] [xml] NULL,
[Demographics] [xml] NULL,
[rowguid] [uniqueidentifier] NULL,
[ModifiedDate] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
--2단계 원본 테이블에서 데이터를 가져 옵니다.
INSERT [dbo].[Person] (BusinessEntityID, PersonType, NameStyle, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, AdditionalContactInfo, Demographics, rowguid, ModifiedDate)
SELECT BusinessEntityID, PersonType, NameStyle, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, AdditionalContactInfo, Demographics, rowguid, ModifiedDate FROM [AdventureWorks2012].[Person].[Person]
--데이터 백업용 테이블을 생성 합니다.
SELECT * INTO Person2 FROM [dbo].[Person]
--3단계 자가 복제를 시작 합니다. 순서는 (테이블 1에 데이터 입력 -> 테이블 2에 데이터 입력 -> 테이블 1 Delete ) 입니다.
DECLARE @int int
SET @int = 0
WHILE (@int < 5)
BEGIN
INSERT [dbo].[Person] (BusinessEntityID, PersonType, NameStyle, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, AdditionalContactInfo, Demographics, rowguid, ModifiedDate)
SELECT BusinessEntityID, PersonType, NameStyle, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, AdditionalContactInfo, Demographics, rowguid, ModifiedDate FROM [dbo].[Person2]
INSERT [dbo].[Person2] (BusinessEntityID, PersonType, NameStyle, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, AdditionalContactInfo, Demographics, rowguid, ModifiedDate)
SELECT BusinessEntityID, PersonType, NameStyle, Title, FirstName, MiddleName, LastName, Suffix, EmailPromotion, AdditionalContactInfo, Demographics, rowguid, ModifiedDate FROM [dbo].[Person]
DELETE [dbo].[Person]
SET @int = @INT +1
END
/*
(19972개 행이 영향을 받음)
(39944개 행이 영향을 받음)
(39944개 행이 영향을 받음)
(59916개 행이 영향을 받음)
(59916개 행이 영향을 받음)
(59916개 행이 영향을 받음)
(119832개 행이 영향을 받음)
(119832개 행이 영향을 받음)
(119832개 행이 영향을 받음)
(239664개 행이 영향을 받음)
(239664개 행이 영향을 받음)
(239664개 행이 영향을 받음)
(479328개 행이 영향을 받음)
(479328개 행이 영향을 받음)
(479328개 행이 영향을 받음)
sp_helpdb [SUNY]
SUNY 1 C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SUNY.mdf PRIMARY 1583104 KB Unlimited 1024 KB data only
SUNY_log 2 C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SUNY_log.ldf NULL 4632576 KB 2147483648 KB 10% log only
*/
*/
'Microsoft > SQL' 카테고리의 다른 글
SQL Account expired date 확인 방법 (0) | 2018.09.07 |
---|---|
서버 메모리 사용량 90% 임계치 초과 Svchost.exe (Eventlog, lmhosts) 메모리 사용량 증가 (0) | 2018.08.03 |
Disk I/O Query (0) | 2018.08.03 |
DBCC SHRINKFILE & Internal (0) | 2018.08.03 |