(주)씨퀄로 대표컨설턴트/이사, SQLBigEyes 솔루션 개발자, 인프런 지식공유자, 탈잉 튜터, 스킬서포트 교육센터 강사, Microsoft Data Platform MVP

SQL SERVER 2022-25-In-Memory OLTP 향상

소개 이 주제 관련해서 MS Doc, 검색 자료, GPT 문답을 통해 2022에서의 새로운 또는 개선된 기능을 알아봤지만 직접 확인해 볼 수 있는 구체적인 내용은 많지 않았습니다. 그래서 우선은 문서나 자료 상의 특징 등을 나열하고 그 중 중요한 몇 가지 항목만 자세히 알아보겠습니다. In-Memory OLTP의 SQL Server 2022에서 새로운 또는 확장된 기능 목록 나열 더 빨라진…

강의) 쿼리 튜닝의 요체(1일) @ 탈잉, 3/7

교육 시간 내기가 쉽지 않고, 시간을 내도 신청 인원 수가 적어 폐강되거나, 회사 자체적으로 강의를 듣고 싶으나 인원 수와 비용 등 부담되는 분들을 위해서 1일 압축 과정으로 만들었습니다. 차후 요청이 있을 경우 저녁에 3.5+3.5시간 2일 진행하는 방식도 고민 중입니다. 필요하신 분들 회사 비용 지원받아서 신청하세요 😀 “쿼리 튜닝의 요체(1일)” @ 탈잉, 3/7(목) 기타 궁금한 점이나…

SQL Server Query Optimizer 이해 & Deep Dive(1차)

많이 줄어든 교육 시간으로 그 동안 다루지 못해 아쉬었던 챕터입니다. 쿼리 성능 분석 및 튜닝에 Query Optimizer의 내부 동작 이해가 도움이 됩니다(특히 근원적인 문제 이해와 해결에). SQL Server 쿼리 튜닝을 주제로 교육을 받거나 공부해 본 적이 있지만 Query Optimizer에 대해서는 잘 모르는 분들, 실무에서 쿼리 튜닝을 쪼~금하고 있지만 Optimizer에 대해서 궁금하신 분들을 위해서 준비한 시간입니다…

SQL SERVER 2022-24-Columnstore Index 향상

소개 개인적으로 수집한 마이크로소프트 자료에 의하면 Columnstore Index 관련 SQL Server 2022의 새로운 기능으로 몇 가지를 소개하고 있습니다만  다른 주제들은 새로운 기능이 맞는지 애매하거나 테스트 가능한 구체적인 자료가 없는 관계로 생략하고 가장 크고 중요한 변화인 정렬(Sort) 지원 Clustered Columnstore Index를 소개하겠습니다. 혹시 Columnstore Index를 모르신다면, 아래 MS 링크 문서를 참조하세요. 참고 자료 Columnstore 인덱스 개요…

.NET Entity Framework Core 효율적인 쿼리 사용

.NET Dev에서 주관하는 .NET Conf 2024 x Seoul 세미나(유료)에서 발표합니다. .NET의 ORM에 해당하는 Entity Framework 또는 Entity Framework Core에서 DB 성능 기준 효율적인 쿼리 사용을 위해 필요한 중요 주제들을 소개합니다. 개발자로서 또는 SQL Server DB 운영자로서 관심 있는 분들에게 도움이 되시길 희망합니다. 참고. 이 주제를 포함한 EF Core의 DB 성능 튜닝 전체 내용은 인프런 온라인 강의에서도…

SQL SERVER 2022-23-Log 파일에서 즉시 초기화 지원

소개 즉시 초기화(또는 인스턴트 파일 초기화, 이하 IFI)는 파일 크기 증가 시 일명 Zeroing이라고 부르는 새로운 공간의 초기화 작업을 생략하므로써 빠른 처리를 지원하는 동작입니다. 특히 대용량의 파일 생성이나 증가 시 빠른 시간에 처리가 되어서 관리 측면 뿐만 아니라 성능 면에서도 큰 도움이 될 수 있습니다. 아쉬운 점은 Data(mdf or ndf) 파일에만 이러한 동작이 지원되는 것입니다.…

SQL SERVER 2022-22-통계 개체의 AUTO_DROP 옵션

소개 통계(Statistics) 개체는 특정 열의 어떤 값이 어떻게 분포되어 있는지 히스토그램을 포함한 여러가지 통계 정보를 저장하고 있는 개체입니다. 이는 Query Optimizer가 해당 열의 행 수 추정을 할 때 참조하는 중요 정보이며 다양한 방식으로 생성됩니다. [그림-1] 참고 – CustKey 라는 열의 “가상”의 히스토그램 예를 들어, 인덱스를 생성하면 단일 열의 경우 해당 열에, 복합 열의 경우 첫…

SQL SERVER 2022-21-CREATE INDEX의 WAIT_AT_LOW_PRIORITY 옵션

소개 인덱스를 온라인 옵션으로 생성할 때 WAIT_AT_LOW_PRIORITY 추가 옵션이 SQL Server 2017부터 ALTER INDEX 문으로 지원되었습니다. SQL Server 2022 (또는 Azure SQL)부터는 CREATE INDEX 문에서도 지원합니다. 그에 따르는 추가 옵션 MAX_DURATION과 ABORT_AFTER_WAIT 옵션을 알아보겠습니다. 참고 자료 CREATE INDEX 에서 WAIT_AT_LOW_PRIORITY 옵션 WAIT_AT_LOW_PRIORITY 옵션 온라인 인덱스와 관련된 다양한 옵션들과 기능들이 보다 세심하고 넓은 범위로 지원을 확대하는…

SQL SERVER 2022-20-재시작 가능한 PK와 UQ 온라인 생성

소개 인덱스를 온라인 옵션으로 생성 시 필요에 따라 일시 정지해 두고 이후 다시 재시작하거나 중지할 수 있는 방법이 SQL Server 2019(또는 Azure SQL)부터 지원되었습니다. SQL Server 2022부터는 Primary Key와 Unique Key 제약 조건을 생할 때도 동일한 기능을 지원합니다, PK와 UQ도 인덱스로 생성되기 때문이죠. 참고 자료 다시 시작 가능한 테이블 제약조건 추가 재시작 가능한 PK/UQ 온라인…

SQL SERVER 2022-19-비동기 통계 업데이트 동시성 향상

소개 비용 기반 쿼리 최적화(Cost-based Query Optimizing)를 가진 현대의 대부분의 RDBMS에서 쿼리 최적화의 절대적 영향력을 가진 열 단위 정보가 바로 통계(Column Statistics)일 겁니다 (아래 참고 자료의 MS 문서 참조). 열 단위 통계 정보를 저장하는 통계 개체 또한 만들고(Create), 내용을 최신 데이터로 갱신하고(Update), 필요 시 삭제(Drop)하는 과정들이 필요하고 그것이 쿼리 최적화 시 통계 정보를 참조하는 작업과…