쿼리 유형별 트랜잭션 로그의 증가 수치를 설명하고,
트랜잭션 로그 축소 쿼리를 설명 드리겠습니다.
▷TEST 장비 : i7 LG gram NoteBook, RAM: 24 G, SSD
▷TEST DB 정보 : 로그파일 10MB 단위로 증가
▷TEST TABLE 구조
▷ 작업 유형별 로그파일 증가량 : 각 테스트 전 로그파일을 기본 24MB로 축소
건수 |
작업 방식 |
LOG 파일 증가량 |
100만건 insert |
WHILE 을 이용하여 1건씩 100만번 INSERT |
24MB ⇒ 284MB |
집합 복제를 통하여 100만건을 한번에 INSERT |
24MB ⇒ 524MB |
|
100만건 update |
WHILE을 이용하여 1000건씩 1000번 UPDATE |
24MB ⇒ 94MB |
한번에 100만건 UPDATE |
24MB ⇒ 454MB |
▷ 결론
1. 로그파일 증가를 최소화 하고 싶다면 INSERT, UPDATE, DELETE를 WHILE을 사용하여 나눠서 실시 → 단, 작업 시간은 증가
▷ 로그파일 축소 :
- DB가 사용중(update, select가 실행되고 있는 중) 에 로그파일 축소가 가능합니다.
하지만 가급적 점검시 사용하는 것이 좋겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 | ALTER DATABASE test_db --test_db : DB명 SET RECOVERY SIMPLE; GO -- 로그파일을 10MB로 축소 -- DB 속성의 처음크기 이하로는 줄일 수 없음 /* DB 속성의 처음크기를 너무 크게 잡은 경우, 해당 값을 500MB 정도로 줄인 후 로그 축소를 해야 함 */ DBCC SHRINKFILE (TEST_DB_log, 10); --TEST_DB_log : LOG 파일 명 GO ALTER DATABASE test_db --test_db : DB명 SET RECOVERY FULL; GO |
'Database & Data > MSSQL' 카테고리의 다른 글
SP_LOCK 출력 결과의 정렬 순서 개선 (Mode DESC) (0) | 2019.01.01 |
---|---|
MSSQL- 복제 관련 조회 쿼리 (0) | 2018.10.28 |
MSSQL 문자열을 파싱하여 테이블 구조로 변환 (0) | 2018.08.05 |
Oracle 의 CONNECT BY LEVEL 을 MSSQL 로 변환 (0) | 2018.08.05 |
MSSQL-연속 출석일 수 조회 쿼리 (0) | 2018.07.24 |