SQL Server 123

Azure SQL에서 네트워크를 구성하는 방법

Azure SQL에서 네트워크를 구성하는 방법 · Version : Azure SQL Azure SQL Managed Instance는 Azure 클라우드에서 호스팅되고 Azure 가상 네트워크를 사용하는 완전히 관리되는 SQL Server 인스턴스이다. Managed Instance는 가상 네트워크를 사용하기 때문에 Azure 관리 서비스에서 사용자가 네트워크 액세스 규칙을 정의할 수 있다. 잘못된 네트워크 구성은 Managed Instance를 배포할때 오류가 발생하므로 아래 순서에 따라서 네트워크 환경을 구성하여 사용한다. 일반적으로 인스턴스용 가상 네트워크를 구성할 때 기본 5가지 단계로 정리할 수 있다. 1. Managed Instance가 사용할 가상 네트워크를 구성 2. Managed Ins..

인덱스 재구성과 통계 업데이트시 발생하는 SQL Server Block

인덱스 재구성과 통계 업데이트시 발생하는 SQL Server Block · Version : SQL Server SQL Server에서 인덱스 재구성 및 통계 업데이트 작업을 할 때 일반적으로 DML(SELECT, INSERT, UPDATE, DELETE)문은 차단하지 않는 것으로 알고 있다. 하지만 인덱스 재구성할 때 SELECT 문에서 차단이 발생하는 경우가 있다. 아래 실습을 통해서 어떻게 차단이 발생하는지 알아본다. 실습을 진행하기 위해 간단한 시나리오를 만든다. 해당 시나리오는 SQL Server Adventurework2014 데이터베이스를 사용하며 더 큰 데이터 집합을 만들기 위해 아래 링크의 스크립트를 적용하였다. · Enlarging the AdventureWorks Sample Data..

SQL Server Scala UDF Inline 기능을 사용한 쿼리 성능 향상

SQL Server Scala UDF Inline 기능을 사용한 쿼리 성능 향상 · Version : SQL Server 2017 later, Azure SQL Database SQL Server 2017 및 Azure SQL Database는 런타임 환경에 최적화된 쿼리 처리 개선 기능을 도입했다. 이러한 개선 사항에는 Batch mode Adaptive Joins, Batch mode memory grant feedback, Interleaved execution for multi-statement table valued functions이 포함된다. · Batch mode Adaptive Joins : https://docs.microsoft.com/en-us/sql/relational-databa..

SQL Server 가용성 그룹에 데이터베이스 자동으로 추가하기

SQL Server 가용성 그룹에 데이터베이스 자동으로 추가하기 · Version : SQL Server SQL Server AlwaysOn Availability Group으로 데이터베이스가 구성된 경우 해당 데이터베이스는 복원할 수 없다. 먼저 데이터베이스를 복원하기 위해서는 가용성 그룹의 SQL Server 데이터베이스를 제거해야 한다. 이번 포스트에서는 SQL Server Job Agent를 사용하여 AlwaysOn 설정이 자동으로 구성되록 하는 방법을 살펴 본다. 각 단계별 스크립트를 Job Agent에 등록하여 사용할 수 있다. 1. Primary 서버의 AlwaysOn 가용성 그룹에서 데이터베이스 제거 -- runs on primary server USE master GO ALTER AVAI..

SQL Server MySQL PostgreSQL 비교

SQL Server MySQL PostgreSQL 비교 · Version : SQL Server MySQL PostgreSQL RDBMS로 많이 사용하는 SQL Server와 MySQL 그리고 PostgreSQL의 특징 및 차이점에 대해서 살펴본다. 각 데이터베이스 기능이 너무나 많기 때문에 모두 다루지는 못하며 대표적인 내용 몇가지만 다루도록 한다. · MySQL과 PostgreSQL, SQL Server 데이터베이스 모두 ACID를 완벽하게 지원하며 많은 양의 데이터와 높은 수준의 쿼리 동시성을 처리할 수 있다. · PostgreSQL은 기능이 풍부하고 확장성이 뛰어나다 · MySQL은 많은 곳에서 사용하고 있으며 웹 애플리케이션과 전자상거래 프로젝트에 적합하며, PostgreSQL에 비해 블로그, ..

SQL Server 복잡한 쿼리가 옵티마이저에 미치는 영향과 옵티마이저 timeout

SQL Server 복잡한 쿼리가 옵티마이저에 미치는 영향과 옵티마이저 timeout · Version : SQL Server SQL Server는 비용 기반(cost-based) 쿼리 최적화 프로그램을 사용한다. 따라서 여러 쿼리 계획을 작성하고 검사한 후 비용이 가장 낮은 쿼리 계획을 선택한다. SQL Server 쿼리 최적화 프로그램(QO)의 목적중 하나는 쿼리 실행과 비교하여 쿼리 최적화에 “합리적인 시간”을 소비하는 것이다. 따라서 QO에는 최적화 프로세스를 중지하기 전에 고려해야 할 태스크 임계값이 내장되어 있다. QO가 모든 계획은 아니지만 가능한 대부분의 계획을 고려하기 전에 임계값에 도달하면 Optimizer Timeout 한계에 도달한다. 이벤트 로그에는 “Reason For Early..

SQL Server 2019 에서 문자열 잘림에 대한 향상된 에러 메시지 반환

SQL Server 2019 에서 문자열 잘림에 대한 향상된 에러 메시지 반환 · Version : SQL Server 2019 SQL Server 2019 CTP 2.0에서 문자열 잘림에 대한 에러메시지가 향상되었다. 일반적으로 ETL 작업 시 많이 겪는 문제중 하나가 “String or binary data would be truncated”이다. 이 오류 조건은 일치하는 데이터 유형 / 길이가 없는 소스와 대상간에 ETL을 구현할 때 발생할 수 있다. 특히 대형 데이터 세트에서 가장 시간이 많이 걸리는 프로세스중 하나이다. 아래 스크립트는 크기가 충분하지 않는 열에 해당 열보다 큰 데이터를 삽입하면 어떻게 되는지 확인하는 예제 스크립트이다. DROP TABLE IF EXISTS [Sales].[Sa..

SQL Server 2019 에서 업그레이드된sp_estimate_data_compression_savings 프로시저 (컬럼스토어 압축율 예상)

SQL Server 2019 에서 업그레이드된sp_estimate_data_compression_savings 프로시저 (컬럼스토어 압축율 예상) · Version : SQL Server 2019 SQL Server 2019 CTP 2.0에서 스토리지 엔진의 업그레이드 기능으로 columnstore 및 columnstore archive 압축에 대한 지원으로sp_estimate_data_compression_savings 프로시저 기능이 업데이트 되었다. 이 저장 프로시저는 SQL Server 2008 이후에 사용되었으며 테이블 및 인덱스 압축을 고려할때 사용할 수 있다. 프로시저에서는 schema_name, object_name, index_id, partition_number 및 data_compre..

SQL Server 2019 에서 추가된sys.dm_db_page_info, sys.fn_PageResCracker 기능으로 대기 관련 정보 확인

SQL Server 2019 에서 추가된sys.dm_db_page_info, sys.fn_PageResCracker 기능으로 대기 관련 정보 확인 · Version : SQL Server 2019 SQL Server 2019 CTP 2.0에서 추가된 스토리지 엔진의 새로운 기능으로 페이지 관련 대기를 볼 수 있는 sys.dm_db_page_info DMV가 추가 되었다. 이 기능은 기존의 DBCC로 확인할 수 있었던 tempdb 경합이나, 마지막 페이지 삽입 경합(las page insert contention) 및 페이지 수준의 블록킹 등을 확인할 수 있다. sys.dm_db_page_info DMV는 데이터베이스 ID, 파일 ID, 페이지 ID 및 모드(LIMITED 또는 DETAILED)의 4가지 ..

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행..