MSSQL 103

SQL Server 2019에서 향상된 Rowstore batch mode

SQL Server 2019에서 향상된 Rowstore batch mode · Version : SQL Server 2019 SQL Server 2019 Preview에서 소개된 내용으로 쿼리 처리 개선 사항으로 Intelligent Query Processing(QP) 기능중 Batch mode on Rowstore (Rowstore일괄처리 모드)에 대해서 소개한다. 이 기능은 쿼리처리에 사용할 수 있는 컬럼스토어 인덱스가 없는 경우 일괄처리 모드 실행의 이점을 제공한다. 일괄처리 모드는 주로 여러 행을 검색하고 행 전체에서 중요한 집계, 정렬 및 그룹화 작업을 수행하는 분석 쿼리를 대상으로 한다. 지금까지는 컬럼스토어 인덱스와 관련된 쿼리에는 배치모드가 예약되었다. 행 단위가 아니라 한번에 ~900행..

SQL Server 2016부터 도입된 USE HINT를 사용한 추적 플래그 활성화

SQL Server 2016부터 도입된 USE HINT를 사용한 추적 플래그 활성화 · Version : SQL Server 2016 later SQL Server에서는 서버의 특정 동작을 임시로 설정 하거나 중지 시킬때 사용하는 추적 플래그(Trace Flag)라는 기능이 있다. 추적 플래그는 주로 성능 문제를 진단하거나 저장 프로시저 또는 복잡한 컴퓨터 시스템을 디버깅하는데 사용된다. · DBCC TRACE ON – Trace Flags : https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-2017 추적 플래그를 쿼리에서 사용할때 지..

In-memory optimized table에 사용되는 Hash Index

In-memory optimized table에 사용되는 Hash Index · Version : SQL Server 2014 later SQL Server에서 새롭게 추가된 Hash Index(해시 인덱스)는 In-Memory optimized table(인메모리 최적화 테이블)에서 사용된다. 기본적으로 테이블의 행을 빠르게 찾고 읽으려면 인덱스가 필요하다. 해시 인덱스는 버킷의 컬렉션은 배열(Array) 구성된다. 해시 함수는 인덱스 키를 해시 인덱스의 해당 버킷으로 매핑한다. 아래 그림은 세 개의 인덱스가 해시 함수를 사용하여 해시 인덱스에 있는 세 개의 서로 다른 버킷에 매핑되는것을 나타낸다. 아래 그림에서 해시 함수 이름은 f(x)이다. 해시 인덱스에 사용되는 해시 함수의 특징은 아래와 같다. ..

VM환경에서 AG를 구성하였을때VSS 백업 동작 변경

VM환경에서 AG를 구성하였을때VSS 백업 동작 변경 · Version : SQL Server 2016, SQL Server 2017 SQL Server 2016 Standard Edition(또는 이후 버전)을 사용하여 가상 컴퓨터 (Virtual Machine) 환경에서 기본 가용성 그룹( AG)을 구성하였을때 AG의 보조 복제본을 호스팅하는 VM환경에서 백업이 실패한 것으로 나타날 수 있다. 이러한 이유는 Volume Shadow Copy Service(VSS)가 VM환경의 보조 복제본에서호스트되는 모든 SQL Server 데이터베이스를 일관된 방식으로 백업하기 때문이다. · Volume Shadow Copy Service : https://docs.microsoft.com/ko-kr/windows..

SQL Server 2016 향상된 가용성 그룹 – 데이터베이스 수준의 상태 탐지 장애조치

SQL Server 2016 향상된 가용성 그룹 – 데이터베이스 수준의 상태 탐지 장애조치 · Version : SQL Server 2016, SQL Server 2017 SQL Server2016에서 도입된 가용성 그룹(Availability Group)에 대한 데이터베이스 수준 상태 탐지 장애 조치 (Database Level Failover) 옵션은 가용성 그룹에 있는 하나 이상의 데이터베이스에 문제가 있을 경우 가용성 그룹에 장애 조치 메커니즘을 실행시키기 위해 도입되었다. 이 기능을 사용하면 데이터베이스의 고가용성을 보장할 수 있으며 업무상 중요한 데이터베이스가 있는 모든 가용성 그룹에 권장되는 최상의 방법이다. 데이터베이스 수준 상태 탐지 장애조치의 초기 구현에서는 가용성 그룹의 주 복제본에서..

ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL)

ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL) · Version : SQL Server 2016, AWS Aurora, Maria ODBC 3.0 최근 다양한 DB환경이 구성되면서 DW(Data Warehouse)를 구축할 때, ETL 작업 또한 이기종 DB (데이터베이스가 다른 종류간의 ETL) 작업이 증가하는 추세이다. 필자는 현재 다양한 데이터베이스를 구축 운영하고 있으며 MySQL 에서 MS SQL 로 ETL과정중 예기치 못한 데이터 오류가 많이 발생 하였다. AWS에 있는 Aurora (MySQL 5.6) 데이터 원본에서MS SQL Server로 ETL하는 과정에서 Decimal값이 정상적으로 표시되지 않고 /100 값으로 변환되어 ..

SQL Server 백업 압축의 압축률 확인

SQL Server 백업 압축의 압축률 확인 · Version : SQL Server 2008 later SQL Server의 백업 압축은 SQL Server 2008부터 지원되며 압축된 백업은 동일한 데이터의 압축되지 않는 백업보다 작으므로 일반적으로 I/O에 대한 비용이 절약되며 백업속도가 크게 향상된다. 하지만 압축을 하기 위한 추가 연산으로 약간의 CPU 오버헤드가 발생한다. 하지만 시스템 중에 가장 느린 부분은 디스크 이므로 CPU의 오버헤드를 감안하여도 충분히 이점이 있는 작업이다. 백업 압축 알고리즘은 사전 할당 알고리즘을 사용하여 실제 백업이 완료 되기 전까지 파일의 크기를 알수 없다. · 백업 압축과 추적플래그 3042 : http://sqlmvp.kr/220356963341 단, 인덱스..

SQL Server 교착 상태 모니터링 (-T1222)

SQL Server 교착 상태 모니터링 (-T1222) · Version : SQL Server SQL Server에서 추적 플래그 –T1222를 사용하면 오류 로그에 XML 스키카 형식(XSD) 를 따르지 않는 XML 형식으로 교착 상태 정보가 기록된다. XML형식에는 3가지 주요 섹션이 있다. · 첫번째 섹션은 교착 상태의 희생자를 선언한다. · 두번째 섹션은 교착 상태와 관련된 각 프로세스에 대해 설명 한다. · 세번째 섹션은 리소스를 설명 한다. · 교착 상태 모니터링 : http://sqlmvp.kr/140164120810 교착 상태를 모니터링 할 경우 오버헤드가 추가되어 잠금 모니터 속도가 느려지고 더 긴 블록킹 시나리오가 발생할 수도 있다. 그래서 이러한 오버헤드를 줄이기 위해 교착 상태를 ..

SQL Operations Studio - Linux, MAC에서 사용할 수 있는 SQL DBMS 툴

SQL Operations Studio - Linux, MAC에서 사용할 수 있는 SQL DBMS 툴 · Version : Preview SQL Server를 관리하기 위한 Microsoft 툴은SQL Server Management Studio(SSMS)가 있다. 이 툴은 Windows 환경에서 실행되며 막강한 기능을 가지고 있다. 아마 SQL Server를 운영하는 대부분의 관리자는 타 DBMS를 운영하는 관리자와는 달리 서드파티의 툴을 사용하지 않고 대부분 SSMS를 사용하고 있을 것이다. 그만큼 SSMS의 기능은 엄청나다. 최근 Microsoft가 오픈소스 친화적인 정책을 지향하면서 다양한 툴들이 Linux 또는 Windows가 아닌 운영체제에서 실행될 수 있게 되었다. 그 중 대표적인 툴이 Vi..

SQL Server 2016 Large RAM 및 Checkpoint

SQL Server 2016 Large RAM 및 Checkpoint · Version : SQL Server 2016, 2014, 2012 SQL Server의 Checkpoint는 현재 데이터베이스의 buffer pool에 있는 커밋되지 않는 데이터 페이지를 디스크로 플러시하는 작업이다. 하드웨어 사양이 고급화 되면서 수 TB이상의 메모리를 사용하는 경우가 늘어나고 있는데, 많은 양의 메모리가 버퍼캐시로 할당되어 실행될 때 SQL Server에서 발생할 수 있는 DB 체크포인트와 관련한 내용에 대해서 알아본다. 이 포스트는 CSS SQL Server Engineers 내용을 정리한것으로 자세한 내용은 원문을 참고하길 바란다. · SQL Server : large RAM and DB Checkpoint..