ms sql 50

기본 추적을 사용한 SQL Server 스키마 변경사항 캡처

기본 추적을 사용한 SQL Server 스키마 변경사항 캡처 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 SQL Server에서 스키마 변경이 발생하였을 때 이를 캡처하고 확인할 수 있는 방법에 대해서 알아본다. 기본적으로 SSMS에서는 스키마 변경 기록 보고서를 제공한다. 이 보고서에서는 DDL 작업에 대한 내용과 시간, 로그인 사용자, 사용자 이름 등 유용한 정보가 표시되지만 SQL Server가 시작된 이후의 내용만 확인할 수 있다. SQL Server가 다시 시작되더라도 변경 내용을 히스토리로 관리할 수 있도록 사용자 테이블에 변경 내역을 저장하는 방법에 대이다. 우선 변경 내용을 저장할 테이블을 생성한다. -- create table t..

SQL Server 임시 테이블 특성

SQL Server 임시 테이블 특성 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 임시 테이블은 tempdb 데이터베이스에 저장되었다가 더 이상 사용되지 않을 때 자동으로 삭제 된다. 그 외 기능은 일반 테이블과 비슷하다. 임시 테이블에는 전역과 로컬 두 유형이 있으며 로컬은 # 기호로 시작하며 전역은 ## 기호로 시작한다. 로컬 임시테이블은 현재 사용자의 연결에만 표시되고 사용자가 SQL Server 인스턴스와의 연결을 종료하면 삭제 된다. 전역은 테이블 생성 후 모든 사용자에게 표시되고 테이블을 참조하는 모든 사용자가 SQL Server인스턴스와 연결을 종료하면 삭제 된다. 즉 테이블을 생성한 사용자가 SQL Server와 연결을 끊어도 다른..

SQL Server 2016 Query Store -실행된 쿼리에 대한 실행 계획 및 통계 정보를 확인하자

SQL Server 2016 Query Store 실행된 쿼리에 대한 실행 계획 및 통계 정보를 확인하자 Version : SQL Server 2016 SQL Server 2016에 도입된 Query Store는 요청된 쿼리가 실행 될 때 실행 된 쿼리를 저장 및 실행 계획 등을 함께 저장하여 통계 및 계획을 추적하는데 도움이 된다. 쿼리를 저장하기 위해서는 Query Store를 활성화 해야 한다. SSMS 및 T-SQL을 사용하여 쿼리 스토어 기능을 활성화할 수 있다. ALTER DATABASE [DEMO_1] SET QUERY_STORE = ON GO 쿼리 스토어를 활성화하면 쿼리 저장과 관련된 다른 옵션을 설정할 수 있다. SSMS 및 T-SQL을 사용하여 설정을 변경할 수 있다. ALTER DA..

SQL Server 2016 Temporal Table – 데이터 변경 내용 추적

SQL Server 2016 Temporal Table – 데이터 변경 내용 추적 Version : SQL Server 2016 SQL Server 2016에서 새롭게 소개된 Temporal Table 대해서 알아본다. 여기서 소개하는 임시테이블은 임시 테이블(Temporal Table)과 임시 테이블(temporary tables)을 착각하지 않도록 주의해야 한다. SQL Server 2016의 Temporal Table은 테이블의 기록을 데이터로 보존할 수 있도록 하는 시스템 테이블의 새로운 이름이다. 일반 테이블은 현재 데이터를 반환 할 수 있지만 시스템 테이블은 업데이트와 삭제된 버전의 데이터를 조회할 수 있다. 만약 데이터를 5에서 10으로 변경하는 경우 일반 테이블을 조회하면 10이라는 값을 ..

SQL Server 2016 Feature in CTP2

SQL Server 2016 Feature in CTP2 Version : SQL Server 2016 SQL Server 2016에 포함된 새로운 기능들에 대해서 알아 본다. [데이터베이스 엔진] Always Encrypted : 보장 데이터는 항상 암호화 된다. SQL Server는 암호화된 데이터를 저장하고 투명하게 처리한다. (https://msdn.microsoft.com/en-us/library/mt163865.aspx) 강화된 In-Memory OLTP SQL Server 2014에서의 많은 제약이 해소 되었다. (http://sqlperformance.com/2015/05/sql-server-2016/in-memory-oltp-enhancements) 컬럼스토어 인덱스는 실시간 운영 분석을..

SQL Server 2016 설치 변경 사항

SQL Server 2016 설치 변경 사항 Version : SQL Server 2016 SQL Server 2016 CTP 2에서 설치 시 변경된 사항에 대해서 알아 본다. SQL Server 2016에 대한 설치방법은 이전 포스트를 참고 한다. SQL Server 2016 설치 : http://sqlmvp.kr/220386777927 [PolyBase 조회 서비스] 기능 선택 페이지에서 외부 데이터에 대한 PolyBase 쿼리 서비스를 선택할 수 있는 옵션이 추가 되었다. 이 기능은 표준 T-SQL문을 사용하여 하둡 데이터 및 SQL Server 데이터를 통해 통합 질의를 할 수 있다. 외부 데이터에 대한 PolyBase 쿼리 서비스를 설치하려면 아래 요구사항을 만족해야 한다. SQL Server ..

최신 SQL Server Native Client 설치하기

최신 SQL Server Native Client 설치하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server용 서비스팩(SP) 또는 누적 업데이트(CU)를 설치하는 경우 SQL Server Native Client가 업데이트 되지 않는 것을 알 수 있다. 또한 업데이트를 찾기가 어려울 수 있다. SP또는 CU 패키지에서 가져오는 방법에 대해서 알아본다. SP 또는 CU 패키지를 실행할 때 설치될 폴더를 확인할 수 있다. 확인된 폴더의 위치를 탐색기를이용하여 이동하면 SQL 설치 랜딩 페이지를 볼 수 있다. 여기에서 해당 지역의 폴더로 이동한다. KOR의 경우 1042 폴더이며 ENU는 1033 폴더이다. 여기서 /x64/setup/x64로 이..

Sys.dm_os_waiting_tasks를 활용한 실행중인 병렬쿼리 확인

Sys.dm_os_waiting_tasks를 활용한 실행중인 병렬쿼리 확인 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 Sys.dm_os_waiting_tasks를 활용하여 실행중인 병렬쿼리의 정보를 확인한다. SELECT [owt].[session_id], [owt].[exec_context_id], [ot].[scheduler_id], [owt].[wait_duration_ms], [owt].[wait_type], [owt].[blocking_session_id], [owt].[resource_description], CASE [owt].[wait_type] WHEN N'CXPACKET' THEN RIGHT ([owt].[resource_de..

로그인 계정이 접근할 수 있는 데이터베이스 확인

로그인 계정이 접근할 수 있는 데이터베이스 확인 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server 로그인 계정은 특정한 데이터베이스에 접근할 수 있다. 생성된 로그인 계정이 접근 할 수 있는 데이터베이스를 확인하는 방법에 대해서 알아본다. 실습을 위해 로그인 계정을 생성한다. USE [master]; GO -- add "boss" to sysadmin: CREATE LOGIN boss WITH PASSWORD = 'x', CHECK_POLICY = OFF; ALTER SERVER ROLE sysadmin ADD Member boss; -- add "dev1" to serveradmin: CREATE LOGIN dev1 WITH PASSWORD..

RANDBETWEEN 함수 만들기

RANDBETWEEN 함수 만들기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 엑셀에 포함되어 있는 함수인 RANDBETWEEN(범위 난수 발생)을 SQL에서 구현하는 방법에 대해서 알아 본다. 엑셀에서는 다음과 같이 RANDBETWEEN 함수를 사용하여 범위에 포함되어 있는 난수를 생성하는 함수가 있다. SQL Server에서도 RAND() 함수를 사용하여 두 수 사이의 난수를 생성할 수 있다. select cast(round((75-25)*rand()+25, 0) as integer) as RandBetweenValue 위의 쿼리를 원하는 범위에 따라 재사용이 가능하도록 함수를 생성한다. 다음과 같은 오류가 발생 할 것이다. create function..