전체 글 1383

누락된 인덱스 확인하기

누락된 인덱스 확인하기 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에는 인덱스를 사용하여 데이터베이스의 성능을 높일 수 있다. 하지만 인덱스가 생성되어 있어도 사용하지 못하면 좋은 성능을 낼 수 없다. 이번 시간에는 인덱스가 생성되어 있지만 사용하지 않는 인덱스(Missing Index)를 확인 하는 방법을 알아보자. 이 내용은 지난 포스트에서 다루었던 내용을 학습하고 보면 더욱 좋을 듯 하다. DMV를 활용한 누락된 인덱스 확인 : http://sqlmvp.kr/140178606760 누락된 인덱스를 확인하는 방법 중 하나는 DMV를 이용하는 것이다. 위의 아티클에 잘 설명되어 있듯이 sys.dm_db_missing_index_details, s..

비클러스터 인덱스 페이지 내용

비클러스터 인덱스 페이지 내용 Version : SQL Server 2008, 2008R2, 2012 SQL Server의 비클러스터 인덱스에 저장되어 있는 내용을 살펴 본다. 다음 스크립트는 사용하여 예제 데이터베이스 및 데이터 생성한다. use master go SET STATISTICS XML OFF SET STATISTICS IO OFF SET NOCOUNT ON go IF DB_ID('HeapsDB') IS NOT NULL BEGIN ALTER DATABASE HeapsDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE DROP DATABASE HeapsDB END GO CREATE DATABASE HeapsDB GO ALTER DATABASE HeapsDB SET RE..

ATTACH DATABASE 오류 1314

ATTACH DATABASE 오류 1314 Version : SQL Server 2005, 2008, 2008R2, 2012 Windows Vista, 7, Server 2008, 2008R2 SQL Server에서 Database를 ATTACH 할 때 발생하는 1314 오류에 대해서 알아보자. 이 포스트는 CSS SQL Server Engineers 팀 블로그에 게시된 내용이며 필자가 읽고 이해한 내용을 바탕으로 정리하였다. 번역의 오류나 기술적 오류가 있음을 미리 알려둔다. 자세한 내용은 원문을 참고한다. 1314 오류는 SQL Server 코드 오류이며 attach database 할 때 발생 한다. 데이터베이스 파일을 열 때 SQL Server 는 I/O 성능을 개선하는데 도움을 주기 위해 Set..

SQL Server 2016 동적 데이터 마스킹

SQL Server 2016 동적 데이터 마스킹 Version : SQL Server 2016 SQL Server 2016의 새로운 보안기능인 동적 데이터 마스킹 (Dynamic Data Masking, DDM)에 대해서 알아본다. SQL 데이터베이스 동적 데이터 마스킹에서는 권한이 없는 사용자에 대해 중요한 데이터를 마스킹해 표시함으로써 데이터 노출을 제한한다. 동적 데이터 마스킹을 수행하면 고객이 응용 프로그램 레이어에 대한 영향을 최소화하면서 표시할 중요한 데이터의 양을 지정할 수 있도록 하여 중요한 데이터에 대한 무단 액세스를 방지할 수 있다. 동적 데이터 마스킹은 지정된 데이터베이스 필드에 대한 쿼리의 결과 집합에서 중요한 데이터를 숨기는 정책 기반 보안 기능이다. 이때 데이터베이스의 자체는 변..

SQL Server 2012 Contained Database

SQL Server 2012 Contained Database Version : SQL Server 2012 SQL Server 2012에서 제공되는 Contained Database(포함된 데이터베이스)는 다른 데이터베이스 및 해당 데이터베이스를 호스팅하는 SQL Server 인스턴스에서 격리된 데이터베이스이다. SQL Server 2012 인스턴스에서 데이터베이스를 격리하는 방법은 네 가지가 있다. 데이터베이스를 설명하는 메타데이터는 대부분 데이터베이스에 유지된다. 메타데이터는 master 데이터베이스 대신 해당 데이터베이스에 유지되거나 두 데이터베이스 모두에 유지된다. 모든 메타데이터는 동일한 데이터 정렬을 사용하여 정의된다. 데이터베이스를 통해 사용자 인증을 수행하여 SQL Server 인스턴스의..

SQL Server 2012 사용자 정의 서버 역할 만들기 - 서버 역할을 지정하여 접근 제어 하기

SQL Server 2012 사용자 정의 서버 역할 만들기 - 서버 역할을 지정하여 접근 제어 하기 - Version : SQL Server 2012 SQL Server 2012에서 사용자 정의 서버 수준 역할을 만들어 본다. 아래 스크립트를 사용하여 SQL Server 로그인 계정을 생성 한다. USE [master] GO CREATE LOGIN [Test] WITH PASSWORD=N'Test!@#$', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO 서버 역할을 생성 한다. 개체 탐색기에서 [보안] – [서버 역할]에서 마우스 오른쪽을 클릭하여 [새 서버 역할]을 선택 한다. 새 서버 역할에서 아래 그림과 같이 설정 한다. ..

SQL Server 2012 데이터 변환 함수 - PARSE, TRY_PARSE, TRY_CONVERT

SQL Server 2012 데이터 변환 함수 - PARSE, TRY_PARSE, TRY_CONVERT - Version : SQL Server 2012 SQL Server 2012에서 제공하는 데이터 변환 함수 PARSE, TRY_PARSE 및 TRY_CONVERT 기능에 대해서 알아 본다. 변환함수는 .NET Framework CLR이 설치 되어 있어야 사용할 수 있다. 또한 원격 서버에서 호출 시 오류가 발생 한다. [PARSE] 요청한 데이터 형식으로 변환된 식 결과를 반환 한다. PARSE는 문자열에서 날짜/시간 및 숫자 형식으로 변환하는 경우에만 사용한다. 일반 형식 변환의 경우 이전처럼 CAST나 CONVERT를 사용한다. 문자열 값을 구문 분석 할 경우 성능에 영향을 주게 된다. State..

SQL Server 2012 논리 함수(IIF, CHOOSE)

SQL Server 2012 논리 함수(IIF, CHOOSE) - Version : SQL Server 2012 SQL Server 2012에서 제공되는 스칼라 논리 함수인 CHOOSE와 IIF에 대해서 알아 본다. [CHOOSE] CHOOSE 함수는 값 목록에서 지정된 인덱스에 있는 항목을 반환 한다. CHOOSE는 배열에서 인덱스와 같은 역할을 하며 배열은 index 인수 다음에 나오는 인수로 구성된다. Index 인수는 다음 중 반환된 값을 결정한다. [구문] CHOOSE ( index, val_1, val_2 [, val_n ] ) 다음 예를 살펴보면 제공된 값인 3번쨰 항목을 반환한다. SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Teste..

SQL Server 2012 새로운 날짜 및 시간 함수

SQL Server 2012 새로운 날짜 및 시간 함수 - Version : SQL Server 2012 SQL Server 2012에서 도입된 새로운 시간 함수에 대해서 알아 본다. 1. DATEFROMPARTS Function 2. TIMEFROMPARTS Function 3. DATETIMEFROMPARTS Function 4. DATETIME2FROMPARTS Function 5. SMALLDATETIMEFROMPARTS Function 6. DATETIMEOFFSETFROMPARTS Function 7. EOMONTH Function [DATEFROMPARTS Function] 지정된 년, 월, 일 기본값으로 날짜를 반환한다. --SYNTAX: - DATEFROMPARTS (YEAR, MONTH..

SQL Server 2012 FORMAT 함수와 CONCAT 함수

SQL Server 2012 FORMAT 함수와 CONCAT 함수 - Version : SQL Server 2012 SQL Server 2012에서 도입된 새로운 FORMAT 함수의 기능과 어떻게 사용될 수 있는지 실습을 통해 알아 본다. [FORMAT] SQL Server 2012에서 사용할 수 있는 포맷 함수이다. 포맷 형식에 따라 지정된 값을 반환 한다. DECLARE @TodaysDate DATETIME = GETDATE() SELECT FORMAT ( @TodaysDate, 'd', 'en-US' ) AS [Using 'en-US' Culture] SELECT FORMAT ( @TodaysDate, 'd', 'de-DE' ) AS [Using 'de-DE' Culture] SELECT FORMA..