소개
지금까지 SQL Server 2022의 새로운 기능들을 각 항목별로 소개했습니다.
이후에도 더 많은 내용이 있고, 관심도에 따라서 추가로 다루겠습니다만 우선은 남은 기타 변화들 몇 가지를 소개합니다.
아래 내용들은 재현이 어려운 주제들인 관계로 공개된 자료나 설명들만 참고해서 이러한 향상이 있었다는 참고 사항 정도로 간단히 요약만 하려하니 참고하시기 바랍니다.
요약할 기타 변화들은 다음과 같습니다.
- 병렬 Redo 향상
- VLF(Virtual Log File) 알고리즘 개선
- Buffer Pool I/O 프로모션 감소
- Core Spinklock 알고리즘 향상
1. 병렬 Redo 향상
트랜잭션 로그의 Redo 작업은 복원, 복구 또는 이를 포함한 작업들 예를 들어 AlwaysOn, Log Shipping 과 같은 기능에서 작동하는 중요한 작업이죠 특히 대용량의 트랜잭션을 처리하는 시스템의 경우에는 Redo 작업의 소요시간이나 성능이 매우 중요한 부분이 됩니다. SQL Server 2022에서는 Redo에 사용되는 스레드의 병렬처리 관련 아래 두 가지 기능이 개선된 것으로 소개합니다, 따라서 특히 AlwaysOn 환경을 가진 시스템에서 성능 상 도움이 되리라 예상됩니다.
- Parallel Redo Thread Pool
- DB 단위 병렬 Redo 시 기존 최대 100개로 제한된 스레드 수에서 서버 수준의 공유 스레드 풀을 공유해서 사용하는 것으로 개선되었습니다
- Parallel Redo Batch Redo
- Redo시 트랜잭션 로그 레코드를 Batch 단위(여러 레코드를 묶어서)로 처리하여 성능이 개선되었습니다
2. VLF(Virtual Log File) 알고리즘 개선
트랜잭션 로그 파일의 논리적 구성 단위인 VLF은 파일의 크기에 따라 개별 크기와 개수가 정해지며 이는 트랜잭션 처리 성능에 영향을 미치는 중요한 요소 중에 하나입니다. SQL Server 2022에서는 로그 파일의 증가 시 자동 할당되는 VLF 개수를 결정하는 알고리즘에 다음과 같은 변화가 있다고 소개합니다.
기준: Log 파일 증가 시 현재 크기의 1/8 및 64MB 미만인 경우
- Before: 4개의 VLF 생성
- After: 1개의 VLF 생성
참고. 위 내용도 직접 확인하지는 않았습니다 따라서 실제론 다를 수 있습니다
3. Buffer Pool I/O 프로모션 감소
Buffer Pool은 Table, Index 등을 저장하는 주 메모리 공간이죠. 스토리지에서 Buffer Pool로 데이터를 읽어들일 때 다음과 같은 변화가 있습니다.
- Before: 단일 page 읽기가 8-page로 승격되면서 불필요한 I/O 유발 가능
- After: Read-ahead 매커니즘으로 보다 효율적으로 수행
4. Core Spinklock 알고리즘 향상
spinlock으로 인한 경합을 보다 효율적으로 개선해서 대용량 메모리 및 대량 코어를 가진 시스템에서 성능을 개선
정리
이외에도 Azure SQL Database에는 적용되었으나 온프레미스(설치버전)에는 아직 적용되지 않은-SQL Server 2025에서 적용될 것으로 발표한-기능들에 대해서도 차후 가능한 시점에 공유하겠습니다.
감사합니다, 2024년 편안하고 행복한 연말 보내시고 2025년에 좋은 소식 많이 들려오는 한 해 되시길 바랍니다.
김정선 드림