SQL 15

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는 모든 데이터베이스에 대해서 리포트 목적의 용도로 사용할 수 있는 읽기 전용 상태의 무료 읽기 전용 복제본을 제공한다. ..

트리거가 적용된 메모리 최적화 테이블에서 alter table 실패

트리거가 적용된 메모리 최적화 테이블에서 alter table 실패· Version : SQL Server 2014, 2016 SQL Server 메모리 최적화 테이블에 트리거가 적용되어 있는경우 alter table 작업이 아래 오류와 함께 실패한다. Msg 41317, Level 16, State 3, Procedure ddl_trigger, Line 5 [Batch Start Line 28] A user transaction that accesses memory optimized tables or natively compiled modules cannot access more than one user database or databases model and msdb, and it cannot wri..

메모리 최적화 테이블 변수 및 예상 행수

메모리 최적화 테이블 변수 및 예상 행수 · Version : SQL Server 2014, 2016 이번 포스팅에서 메모리 최적화 테이블은 배치 작업이 완료될 때 까지 메모리를 소비한다고 하였다.· 메모리 최적화 테이블변수와 701 오류 (loop 사용으로 인한 메모리 부족 오류) : http://sqlmvp.kr/220996905075 이번 포트스트는 메모리 최적화 테이블에서 예상 행수에 대해서 알아본다. 기본적으로 메모리 최적화 테이블 변수는 디스크 기반 테이블 변수와 동일한 방식으로 작동한다. 아래 스크립트를 실행하면 예상 행수가 1로 나타나는것을 확인할 수 있다. 실습용 데이터 베이스 및 기본 데이터 생성 create database IMOLTP go ALTER DATABASE imoltp AD..

SQL Server Job Agent는 몇 개까지 실행이 가능할까?

SQL Server Job Agent는 몇 개까지 실행이 가능할까? Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 SQL Server Job Agent는 몇개까지 실행이 가능할까? SQL Server Job Agent실행할 수 있는 제한범위를 초과하면 다음과 같은 에러를 나타낸다. SQLServerAgent Error: Request to run job Job_id (from User distributor_admin) refused because the job is already running from a request by User distributor_admin. Changed database context to 'db_name'. (Micro..

Unix(Linux) timestamp(bigint) 형식을 datetime 으로 변경하기

Unix(Linux) timestamp(bigint) 형식을 datetime 으로 변경하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 데이터를 운용하다 보면 시간(날짜)와 관련해서 다양한 데이터 형식 사용된다. 이번 포스트는 유닉스(리눅스)에서 전달받은 timestamp 형식을 SQL Server에서 datetime 형식으로 변경하는 방법에 대해서 알아본다. Timestamp 값은 1700-01-01 00:00:00부터 시작하는 밀리세컨드(ms)값이다. dateadd() 함수를 사용하여 간단히 해결 할 수 있다. Dateadd() 함수는 int 형식을 지원하므로 ms -> s로 변경하기 위해 timestamp/1000으로 계산해야 한다. dec..

비관리자 계정에 Profiler 실행 권한 부여하기

비관리자 계정에 Profiler 실행 권한 부여하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server Profiler는 추적을 작성 및 관리하고 추적 결과를 분석하거나 특정 단계를 재생 할 수 있다. SQL Server Profiler : https://msdn.microsoft.com/ko-kr/library/ms181091.aspx SQL Server Profiler를 사용하기 위해서는 ALTER TRACE 권한이 필요하다. 권한이 없을 때에는 다음과 같은 오류가 발생 한다. 실습을 통해서 ALTER TRACE 권한을 부여하는 방법에 대해서 알아본다. 우선 권한이 없는 일반 사용자 계정을 생성한다. USE Master; GO CREATE ..

컬럼스토어 인덱스 대용량 데이터 로드

컬럼스토어 인덱스 대용량 데이터 로드 Column Store Index Bulk Load Data Version : SQL Server 2012, 2014 클러스터 컬럼 스토어 인덱스 대용량 데이터 로드 이전 포스팅에서 컬럼스토어 인덱스에 대한 동시성 및 인서트 동시성에 대해서 살펴 보았다. 컬럼스토이 인덱스 ROW와 ROWGROUP 영향 : http://sqlmvp.kr/220122469205 컬럼스토어 인덱스 동시성 : http://sqlmvp.kr/220130069090 컬럼스토어 인덱스 INSERT 작업과 동시성 : http://sqlmvp.kr/220132145097 이번 포스트는 대용량 데이터 로드(Bulk load)를 통해 데이터가 삽입될 때 잠금 동작에 대해서 설명한다. 테스트용 기본 테이..