기본 콘텐츠로 건너뛰기

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

QCY C1 버튼 기능 정리

  리셋 :  이어폰 전원은 켜져 있어야 하고 핸드폰 블루투스는 꺼져 있어야 한다. 볼륨 +,- 버튼 동시 5초 이상 빨강과 하이트가 3번 왔다갔다 깜빡일꺼다. 그 후 꺼지고 다시 켜면 리셋 되어있음. IPX4 등급 방수 재생 50시간 사용 멀티포인트 퀴차지 10분 12시간 재생 ENC 마이크 통화음질