기본 콘텐츠로 건너뛰기

MSSQL 큰 테이블 경량화

 대량 테이블 경량화

 [중요. 1]

SET IDENTITY_INSERT [DBO].[TABLE_1_NEW] ON; --중요 쿼리 ID값을 넣을 수 있게 설정

 

[중요. 2]

SP_RENAME 'TABLE_1' , 'TABLE_2'

GO

SP_RENAME 'TABLE_1_NEW' , 'TABLE_1'

GO

 

[예제 시작]

 

--SET IDENTITY_INSERT 옵션의 예제

--SET IDENTITY_INSERT [DBO].[TABLE_1_NEW] ON; --중요 쿼리 ID값을 넣을 수 있게 설정

USE [WSJTESTDB] --TEST 디비

GO

--테이블 1 생성

CREATE TABLE [DBO].[TABLE_1](

           [C1] [NCHAR](10) NULL,

           [AMT] [DECIMAL](12, 0) NULL,

           [S1] [DECIMAL](20, 0) IDENTITY(1,1) NOT NULL

) ON [PRIMARY]

GO

--테이블 2 생성 -기본키도 잡아준다.

CREATE TABLE [DBO].[TABLE_1_NEW](

           [C1] [NCHAR](10) NOT NULL,

           [AMT] [DECIMAL](12, 0) NULL,

           [S1] [DECIMAL](20, 0) IDENTITY(1,1) NOT NULL,

CONSTRAINT [PK_TABLE_1_NEW] PRIMARY KEY CLUSTERED

(

           [C1] ASC,

           [S1] ASC

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

) ON [PRIMARY]

GO

--샘플 데이터 생성

INSERT INTO [DBO].[TABLE_1]([C1],[AMT]) VALUES ('A',10);

INSERT INTO [DBO].[TABLE_1]([C1],[AMT]) VALUES ('A',10);

GO

--중요 설정 값 활성화

SET IDENTITY_INSERT [DBO].[TABLE_1_NEW] ON; --중요 쿼리 ID값을 넣을 수 있게 설정

--테이블 이관 작업

INSERT [DBO].[TABLE_1_NEW] (C1, AMT, S1)

SELECT [C1],[AMT],[S1]

FROM [DBO].[TABLE_1]

GO

SET IDENTITY_INSERT [DBO].[TABLE_1_NEW] ON; --중요 쿼리

INSERT INTO [DBO].[TABLE_1]([C1],[AMT],[S1]) VALUES ('A',10, 3);

SET IDENTITY_INSERT [DBO].[TABLE_1_NEW] OFF; --중요 쿼리 설정 중지(작업 완료 후)

INSERT INTO [DBO].[TABLE_1_NEW]([C1],[AMT]) VALUES ('XX' ,9999999)

GO

SET IDENTITY_INSERT [DBO].[TABLE_1_NEW] ON; --중요 쿼리

--없는 데이틀 이관한다.--대략 6개월치

INSERT [DBO].[TABLE_1_NEW] (C1, AMT, S1)

SELECT A.[C1], A.[AMT], A.[S1]

FROM [DBO].[TABLE_1]  A LEFT JOIN [DBO].[TABLE_1_NEW]  B ON A.S1 = B.S1 --AND A.C1 = B.C1 -- 상황에 맞게 ON절 조절

WHERE B.S1 IS NULL

GO

/*

TEST 쿼리

SELECT [C1],[AMT],[S1] FROM [DBO].[TABLE_1_NEW]

SELECT [C1],[AMT],[S1] FROM [DBO].[TABLE_1]

TRUNCATE TABLE [TABLE_1]

TRUNCATE TABLE [TABLE_1_NEW]

*/

SP_RENAME 'TABLE_1' , 'TABLE_2'

SP_RENAME 'TABLE_1_NEW' , 'TABLE_1'

--실패 했을 경우 다시 리네임

댓글

이 블로그의 인기 게시물

닷넷과 MFC에서 OCX컨트롤 추가하기

1. 프로젝트 생성 (일반적인 윈폼 프로젝트를 만든다) 닷넷 또는 MFC 응용(윈폼) 프로그램으로 프로젝트 생성 응용프로그램 종류는 대화상자 기반으로 생성한다. 2. OCX 등록 (핵심) 도구 상자에 추가 해놓고 사용한다. 도구 -> 도구 상자 항목 선택(X) -> 찾아보기 -> OCX 파일 선택 다이얼로그 편집기에서 도구상자를 보면 추가한 OCX가 보인다. 3. OCX 그리기 다이얼로그에 추가한 OCX를 그린다. 4. OCX 변수 등록(MFC) OCX를 다이얼로그에서 오른쪽버튼 ->변수추가 OCX에 해당하는 변수를 등록한다.(닷넷은 바로 변수가 생성 되니 바로 사용한다.)

C# 에서 OCX 파일 DLL로 만들어서 사용하기

C# 에서 OCX 파일 DLL로 만들어서 사용하기 C++에서 만든 OCX파일을 DLL로 만들어서 사용해야 할때가 있다 http://orthogonal.tistory.com/189 Microsoft SDKs (개발 도구 폴더) 에서 Axlmp 명령을 이용해서 dll을 만들어주자 참고 에러 발생 시 또는 사용 법 http://blog.naver.com/renomahr/188250151

C# 구성 요소 클래스

C# 구성 요소 클래스 사용자 컨트롤 만들기 C# UI 디자이너에서 끌어다 쓸 컴포넌트를 만들 수 있는 방법있다. * 구성 요소 클래스.  - 새항목 추가를 이용하여 "구성 요소 클래스"를 추가하면 된다.  - Component를 상속 받음으로써 가능하다.  - Timer와 같이 눈에는 보이지 않지만 컴포넌트화된 구성요소를 개발할때 사용한다. * 사용자 정의 컨트롤.  - 새항목 추가를 이용하여 "사용자 정의 컨트롤"을 추가하면 된다.  - UserControl을 상속 받음으로써 가능하다.  - Button, TextBox와 같이 UI구성을 할때 개발한다. * 사용자 지정 컨트롤