SQL Server 818

Azure SQL에 도입된 새로운 집계 함수 APPROX_COUNT_DISTINCT

Azure SQL에 도입된 새로운 집계 함수 APPROX_COUNT_DISTINCT · Version : Azure SQL 다양한 서비스를 운영하다보면 서비스에 따른 중요 포인트가 조금씩 다른 경우가 있다. 예를들어 정확한 숫자(결과값)을 중요시하는 서비스(일일 매출, 재고량 등)가 있으며, 빠른 응답을 (실시간 데이터 사용량, DB의 전체 데이터 ROW 수 등의 대시보드 등) 중요시하는 서비스가 있다. 물론 응답성을 중시한다고 해서 데이터가 틀리면 안되겠지만 허용되는 오차범위에서 최대한 빠른 응답이 필요할 때가 있다. 이번 포스트에서는 매우 큰 데이터 세트 전체에 대한 집계에 대해 빠른 응답을 할 수있는 Azure SQL의 APPROX_COUNT_DISTINCT에 대해서 다루어 본다. Azure SQL..

Azure SQL의 데이터베이스 소유권 체인

Azure SQL의 데이터베이스 소유권 체인 · Version : Azure SQL Azure SQL Database Managed Instance에서는 SQL Server와 동일한 방식으로 데이터베이스간 쿼리를 실행할 수 있다. 또한 데이터베이스간 소유권 체인을 지원한다. 이번 포스트에서는 Managed Instance의 소유권 체인에 대해서 다루어 본다. 데이터베이스간의 소유권 체인을 사용하면 명시적 권한이 객체에 부여되지 않더라도SQL 인스턴스의 다른 데이터베이스에 있는 객체에 액세스 할 수 있다. DB_CHAINING옵션이 데이터베이스에서 설정되어 있는 경우 동일한 소유자로 다른 데이터베이스에 액세스할 수 있다. DB_CHAINING is disabled by default on new datab..

Azure SQL의 내부 디스크 할당 방법 및 저장 가능 용량 확인

Azure SQL의 내부 디스크 할당 방법 및 저장 가능 용량 확인 · Version : Azure SQL Azure SQL Database Managed Instance는 모든 데이터베이스 파일을 Azure Storage에 보관하는 Azure Cloud SQL Server 서비스 이다. 이번 포스트에서는 Managed Instance가 스토리지 계층에 디스크를 할당하는 방법과 최대 사용한 가능한 디스크 공간을 확인하는 방법에 대해서 살펴본다. Azure SQL Database Managed Instance는 일반적인 목적의 스토리지 계층과 데이터베이스 파일이 위치하는 Azure Premium 스토리지 계층을 가지고 있다. Managed Instance는 모든 파일에 대해 미리 정의된 크기의 Azure ..

Azure SQL에서 이메일 보내기

Azure SQL에서 이메일 보내기 · Version : Azure SQL Azure SQL Database Managed Instance는 Azure 클라우드에서 대부분의 SQL Server 기능을 사용할 수 있다. 이번 포스트에서는 Managed Instance에서 메일 프로필을 설정하고 이메일을 보내는 방법에 대해서 알아본다. 먼저 이메일 서버에 액세스하는데 필요한 로그인/암호 정보와 함께 실제 이메일을 보낼 전자 메일 서버의 주소가 포함된 이메일 계정 정보를 설정한다. 아래 스크립트를 참고하여 설정을 사용자에게 맞게 변경 후 실행 한다. -- Create a Database Mail account EXECUTE msdb.dbo.sysmail_add_account_sp @account_name = ..

Azure SQL에서 읽기 전용 복제본에 대한 접속 및 링크 서버 생성

Azure SQL에서 읽기 전용 복제본에 대한 접속 및 링크 서버 생성 · Version : Azure SQL Azure SQL Database Managed Instance는 Azure 클라우드에서 호스트 되는 완벽하게 관리되는 SQL Server 데이터베이스 엔진으로 Azure SQL Pass 및 SQL Server 기능(예: 링크된 서버 및 기본 제공되는 무료 보조 읽기 전용 복제본)을 제공한다. 이번 포스트에서는 연결된 서버(링크드 서버)를 사용하여 읽을 수 있는 보조 복제본을 연결하는 방법을 살펴 본다. Managed Instance의 Business Critical Tier는 모든 데이터베이스에 대해서 리포트 목적의 용도로 사용할 수 있는 읽기 전용 상태의 무료 읽기 전용 복제본을 제공한다. ..

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에 비해 블로그, ..