반응형
데이터베이스 백업은 압축 옵션을 지원합니다.
이것은 CPU 리소스를 사용하여 데이터를 압축함으로써 DISK I/O를 줄이는 방법입니다.
압축된 백업은 동일한 데이터의 압축되지 않은 백업보다 작기 때문에 일반적으로 백업을 압축하면 DISK I/O가 적게 필요하므로 백업 속도가 크게 증가합니다.
또한 압축되었기 때문에 파일 용량이 작습니다.
compression 옵션
backup database [AdventureWorks2019] to disk = 'D:\DBBackup\TEST\AdventureWorks2019_compression_full_20221129_144100.bak'
with compression, init;
백업 시간 비교
-- 1. 일반 백업
backup database [AdventureWorks2019] to disk = 'D:\DBBackup\TEST\AdventureWorks2019_full_20221129_144100.bak'
with init, no_compression;
-- 2. 압축 백업
backup database [AdventureWorks2019] to disk = 'D:\DBBackup\TEST\AdventureWorks2019_compression_full_20221129_144100.bak'
with init, compression;
일반 백업 : 1.506초 / 압축 백업 : 0.364초
그러나 기본적으로 압축은 CPU 사용량을 상당히 증가 시키며 이러한 추가 CPU의 발생은 동시 작업에 부정적인 영향을 미칠 수 있습니다.
(압축 백업의 과도한 CPU 사용을 막기 위해서 Resource Governor(리소스 관리자)를 사용하여 CPU 사용량을 제한하는 방법이 있긴 함. 실효성은 글쎄?)
복원 시간 비교
-- 1. 일반 복원
restore database [AdventureWorks2019_NEW1] from disk = 'D:\DBBackup\TEST\AdventureWorks2019_full_20221129_144100.bak'
with move 'AdventureWorks2017' to 'D:\DBBackup\TEST\AdventureWorks2017_new1.mdf',
move 'AdventureWorks2017_log' to 'D:\DBBackup\TEST\AdventureWorks2017_new1_log.ldf'
-- 2. 압축된 백업 파일을 복원
restore database [AdventureWorks2019_NEW2] from disk = 'D:\DBBackup\TEST\AdventureWorks2019_compression_full_20221129_144100.bak'
with move 'AdventureWorks2017' to 'D:\DBBackup\TEST\AdventureWorks2017_new2.mdf',
move 'AdventureWorks2017_log' to 'D:\DBBackup\TEST\AdventureWorks2017_new2_log.ldf'
일반 복원 : 5.099초 / 압축된 파일 복원 : 2.791초
즉, 백업과 복원의 성능을 좌우하는 주 요소는 CPU 보다는 DISK I/O 이다. (디스크를 더 적게 읽고 씀에 따라 성능이 좋아짐)
반응형
'IT 이야기 > DB' 카테고리의 다른 글
[MSSQL] SQL Server 2019 SSMS 설치 방법 (0) | 2022.10.11 |
---|---|
[MSSQL] 집합 연산자 (UNION, INTERSECT, EXCEPT) 합집합, 교집합, 차집합 (0) | 2022.10.10 |
[DB 기술면접] 페이지와 익스텐트 (SQL Server 단일 익스텐트/혼합 익스텐트) (0) | 2022.10.09 |
[MSSQL] 중복 제거 조회 (distinct, group by) (0) | 2022.09.16 |
[SQLP 시험대비 요약/단답형] 선택도와 카디널리티 (1) | 2022.09.15 |