SQL Server/SQL Server Tip 662

SQL Server 2017 소규모 시스템에서 향상된 리소스 사용

SQL Server 2017 소규모 시스템에서 향상된 리소스 사용 · Version : SQL Server 2017 CU4 SQL Server는 소규모 컴퓨터에서 엔터프라이즈 서버까지 확장 할 수 있도록 설계된 데이터베이스이다. 일반적으로 데이터베이스는 많은 자원을 필요로 한다. 특히 CPU 및 메모리는 데이터베이스의 성능에 매우 중요한 요소이다. (물론 디스크 성능도 중요하다.) SQL Server 2017 CU4에서는 작은 메모리(2GB)에서도 SQL Server 성능이 향상될 수 있도록 개선 되었다. · Improvement: Improves the performance of SQL Server 2017 on smaller systems : https://support.microsoft.com/en..

클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭

클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 · Version : SQL Server Clustered Columnstore Index(CCI)에서 데이터를 로드 하는 일반적인 시나리오는 오버헤드가 적은 시간 (일반적으로 야간 시간)을 활용해서 수백만개의 행이 포함된 데이터 파일을 로드하는 것이다. 권장 되는 배치 사이즈는 batchsize >= 102400으로 데이터를 로드 하는것이다. 배치 사이즈에 대한 내용은 아래 링크를 참고 한다. · 컬럼스토어 인덱스 대용량 데이터 로드 : http://sqlmvp.kr/220135847446 CCI는 동시 데이터 스트림을 동일한 델타 행 그룹으로 허용한다. 그러나 동시성을 ..

SQL Server 2016 향상된 복제 기능 – 배포 데이터베이스 클린업 향상

SQL Server 2016 향상된 복제 기능 – 배포 데이터베이스 클린업 향상 · Version : SQL Server 2016 SP2, 2012 SP4 이후 SQL Server 2016 SP2 에서 복제 기능 향상으로 배포 데이터베이스를 클린업 할때 사용자가 일괄 삭제에 대한 입력 값을 정의할 수 있으며 대량 삭제 작업시 시스템이 자동으로 삭제 비율을 조정 할 수 있도록 변경되었다. 복제의 배포 데이터베이스는 전체 복제 토폴로지에서 매우 중요한 구성요소이다. 트랜잭션 복제의 경우 배포 에이전트는 복제 에이전트에 대한 복제 메타 데이터와 기록을 저장하는 것 외에도 구독자에게 전달 될 트랜잭션과 명령에 대한 중간 저장소를 제공한다. 이러한 트랜잭션과 명령은 MSRepl_Transactions및 MSRep..

SQL Server 2017향상된 복제 기능 – 배포 데이터베이스의 AG 지원

SQL Server 2017향상된 복제 기능 – 배포 데이터베이스의 AG 지원 · Version : SQL Server 2017 CU6 SQL Server 2017 CU6부터 SQL Server 복제 기능 향상으로 배포 데이터베이스가 가용성 그룹(AG)에 포함이 가능하게 되었다. 이 개선 사항은 향후 SQL Server 2016 및 2014에도 적용될 예정이다. SQL Server는 가용성 그룹(AG)를 사용하여 SQL Server 인스턴스간에 데이터베이스 그룹에 대한 실시간 데이터 복제 기능을 제공한다. 가용성 그룹은 복제할 모든 데이터베이스가 하나의 가용성 단위로 포함되어 동작한다. AG 페일오버가 발생해도 SQL Server는 복제가 정상적으로 작동한다. 복제 게시 및 구독 데이터베이스는 가용성 그..

SQL Server 2017 향상된 복제 기능 - 복제에이전트 프로필 매개변수의 동적 새로 고침

SQL Server 2017 향상된 복제 기능 - 복제에이전트 프로필 매개변수의 동적 새로 고침 · Version : SQL 2017 SQL Server 2017 CU3부터 SQL Server 복제 기능 향상으로 에이전트를 다시 시작하지 않고도 복제 에이전트 매개 변수의 변경 내용을 동적으로 다시 로드할 수 있다. 이 개선 사항은 향후 SQL Server 2016 및 2014에도 적용될 예정이다. 복제는 에이전트 추적이라는 몇 가지 독립실행형 프로그램을 사용하여 변경 내용을 추적 및 데이터 배포와 관련된 작업을 수행 한다. 예를 들어 트랜잭션 복제와 함께 사용되는 로그 판독기 에이전트는 게시자의 트랜잭션 로그에서 복제용으로 표시된 트랜잭션을 배포 데이터베이스로 이동한다. 트랜젝션 복제를 사용하여 게시된 ..

SQL Server update on Docker

SQL Server update on Docker · Version : SQL 2017, Docker SQL Server on Docker 버전에서 SQL Server update를 진행하는 방법에 대해서 알아본다. Docker는 이미지를 업데이트 하고 모든 컨테이너에 푸시할 수 있는 기본 제공 명령이 없으므로 각 단계별로 빌드해야한다. Docker pull을 이용하여 최신 이미지를 다운로드 받아 기존 이미지를 교체 해야한다. 기존 이미지로 컨테이너를 교체해야하는 이유는 Docker의 저장소 모델과 관련이 있다. Docker의 저장소 모델은 여러 계층의 파일 시스템을 결합하여 운영체제의 통합 뷰를 만든다. 이미지 레이어는 읽기 전용이며 컨테이너를 통해 발생하는 모든 변경 사항은 쓰기 프로세스에서 복사를 ..

SQL Server 2017에서 향상된 UDF 실행 계획

SQL Server 2017에서 향상된 UDF 실행 계획 · Version : SQL Server 202017 CU3 SQL Server 2017 CU3 이후 부터 UDF(User-Defined Function) 실행계획이 개선되어 사용자에게 좀 더 많은 정보를 보여주게 되었다. (필자가 글 을 쓰는 시점으로 최신 CU7까지 출시 되었다.) 이전에는 쿼리에 참조된 UDF를 사용할 때 쿼리 실행 시간의 상당 부분이 함수 내에서 발생하여도 쿼리 실행계획을 보고 쉽게 파악하기가 어려웠다. SQL Server 2017 CU3 이후 부터는UdfCpuTime과 UdfElaspsedTime의 두 가지 새로운 속성이 추가되어 사용자 정의 함수내에서 사용되는 리소스를 확인할 수 있게 되었다. 아래 스크립트는 테스트를 구..

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 값으로 변환되어 ..

Run the SQL Server 2017 with Docker

Run the SQL Server 2017 with Docker · Version : SQL Server 2017 Linux SQL Server 2017 Linux 버전을 Docker를 활용해서 빠르게 설치하여 활용하는 방법에 대해서 살펴본다. 이번 포스트에서 다루는 환경 구성은 Windows Host 기반에 Docker(windows버전)를 설치하고 Container로 SQL Server 2017 Linux 를 실행한다. 이 포스트는 SQL Server를 중점으로 다루고 있으며 Docker에 대해서는 다루지 않는다. Docker 설치가 완료 되었으면 Powershell 명령 도구를 실행 한다. 그리고 아래 명령어를 실행 한다. 이 명령은 최신 버전의 SQL Server 2017 Linux 버전의 컨테이..

SQL Server Configuration Manager 실행 오류 (WMI 공급자 연결 오류)

SQL Server Configuration Manager 실행 오류 (WMI 공급자 연결 오류) · Version : SQL Server 2008, 2012, 2014, 2016, 2017 SQL Server를 설치하고 SQL Server configuration manager(구성 관리자)를 실행하면 WMI 공급자 연결 오류로 인해서 아래와 같은 오류 구문과 함께 구성관리자 실행이 되지 않는 경우가 있다. SQL Server Configuration Manager ————————— Cannot connect to WMI provider. You do not have permission or the server is unreachable. Note that you can only manage SQL S..