SQL Server 124

SQL Server 2016 JSON 출력에 NULL 값 포함하기

SQL Server 2016 JSON 출력에 NULL 값 포함하기 Version : SQL Server 2016 SQL Server 2016의 새로운 기능인 JSON 형식에서 기본적으로 NULL 값은 표시 하지 않는다. JSON 형식의 출력에서 강제로 NULL 값을 포함하는 방법에 대해서 알아본다. 아래 스크립트는 전형적인 SQL Server 출력을 나타내는 결과이다. Size열을 보면 NULL값이 표시됨을 확인할 수 있다. Use AdventureWorks2014 go SELECT M.ProductModelID,M.Name as [ProductModel.Name], ProductID, Size FROM Production.Product P INNER JOIN Production.ProductModel ..

SQL Server 임시 테이블 특성

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

트리거를 사용하여 특정 컬럼 업데이트 하기 (After 트리거)

트리거를 사용하여 특정 컬럼 업데이트 하기 (After 트리거) Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 트리거는 특정 이벤트가 발생(INSERT, UPDATE, DELETE)할 때 자동적으로 실행되는 특수한 종류의 저장프로시저이다. 트리거는 FOR|AFTER와 INSTEAD OF 인수가 있다. FOR|AFTER : AFTER는 DML 트리거를 지정한 모든 작업이 성공적으로 실행되었을 때만 트거가 실행도록 지정한다. 모든 참조 연계 동작 및 제약 조건 검사도 이 트리거가 실행되기 전에 성공해야 한다. INSTEAD OF : 트리거를 시작하는 SQL문 대신 DML 트리거가 실행되도록 지정한다. DDL 또는 LOGON 트리거에 대해서는 INSTE..

컬럼스토어 인덱스 성능 (Columnsotre Index Performance)

컬럼스토어 인덱스 성능 (Columnsotre Index Performance) Version : SQL Server 2012, 2014, 2016 SQL Server 2012부터 도입된 컬럼스토어 인덱스는 열 기반 데이터 저장소 및 열 기반 쿼리 처리를 사용하여 데이터를 저장하고 관리한다. 인덱스는 주로 대량 로드 및 전용 쿼리를 수행하는 데이터웨어하우징 작업에 효과적이다. 전체 테이블 검색을 사용하는 쿼리에서는 뛰어난 성능을 제공하지만 특정 값을 찾아 데이터를 검색하는 쿼리에는 부적합 하다. 자세한 내용은 MSDN을 참고한다. Columnstore Index 소개 https://msdn.microsoft.com/ko-kr/library/gg492088(v=sql.120).aspx 일반 B-tree 인..

In-Memory 최적화 파일 경로 변경

In-Memory 최적화 파일 경로 변경 Version : SQL Server 2014, 2016 SQL Server 2014이상에서는 인 메모리 OLTP 기능과 메모리 최적화 테이블을 만들 수 있다. In-Memory OLTP (In-Memory Optimization) https://msdn.microsoft.com/en-us/library/Dn133186(v=SQL.120).aspx 이 기능을 사용하면 SQL Server는 실제로 성능을 최적화하는 네이티브 코드를 생성한다. 그 결과 DLL, PDB 파일과 중간 파일이 생성된다. 메모리 최적화는 각 저장 프로시저 또는 테이블이 별도로 파일이 생성될 수 있도록 설정을 해야 한다. 일반적인 상황의 경우 기본 경로를 사용하므로 사용자가 설정하지 않아도 된..

SQL Server 2016 동적 데이터 마스킹을 우회하여 원본 데이터 출력하기

SQL Server 2016 동적 데이터 마스킹을 우회하여 원본 데이터 출력하기 Version : SQL Server 2016 SQL Server 2016에 도입된 동적 데이터 마스킹은(Dynamic Data Masking, DDM) 권한이 없는 사용자에 대해 중요한 데이터를 마스킹해 표시함으로써 데이터 노출을 제한한다. 동적 데이터 마스킹을 수행하면 고객이 응용 프로그램 레이어에 대한 영향을 최소화하면서 표시할 중요한 데이터의 양을 지정할 수 있도록 하여 중요한 데이터에 대한 무단 액세스를 방지할 수 있다. 동적 데이터 마스킹 : http://sqlmvp.kr/220425326727 동적 데이터 마스킹은 실제 데이터가 암호화 되지 않는다. 그러므로 데이터는 언제나 노출 될 가능성이 있다. 동적 데이터 ..

SA 계정 이름 변경 및 비활성화

SA 계정 이름 변경 및 비활성화 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 SQL Server를 설치하면 기본적으로 SA 계정이 생성되어 사용된다. 보안 규칙이 잘 정의된 조직이라면 SA에 대한 보안에 많은 신경을 쓰지만 일부 조직에서는 SA를 기본적으로 사용하는 곳도 많다. SA 계정은 외부 위협으로부터 많이 사용되는 계정이므로 보안을 강화하거나 비활성화 하여 노출을 최소화하는 것이 좋다. SA 계정에 대한 보안을 강화하기 위한 방법은 크게 4가지가 있다. 암호를 추측할 수 없도록 복잡하게 구성한다. SA의 이름을 변경한다. SA를 사용하지 않도록 비활성화 한다. 다른 계정 이름이 SA가 없는지 확인한다. [SA 로그인 이름 바꾸기] SSM..

SQL Server 데이터베이스 속성을 확인할 때 사용되는 master.dbo.spt_values 복구

SQL Server 데이터베이스 속성을 확인할 때 사용되는 master.dbo.spt_values 복구 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 SSMS에서 SQL Server의 속성을 클릭하였을 때 master.dbo.spt_values 오류가 발생하였을 때 해결하는 방법에 대해서 알아본다. SSMS에서 서버 속성을 클릭하였을 때 master.dbo.spt_values 오류가 발생하면 다음과 같은 경고문이 나타난다. master.dbo.spt_values 프로시저는 다양한 데이터 항목을 포함하는 문서화 되지 않은 항목이다. 이 프로시저는 C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\..

XML로 생성된 정보를 테이블로 저장하기(sp_xml_preparedocument)

XML로 생성된 정보를 테이블로 저장하기(sp_xml_preparedocument) Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 XML로 작성된 정보를 파싱하여 테이블로 저장하는 방법에 대해서 살펴본다. SQL Server에서제공되는 sp_xml_preparedocument 프로시저와 OPENXML 함수 기능을 함께 사용하여 편리하게 XML데이터를 사용할 수 있다. sp_xml_preparedocument는 입력으로 제공되는 XML 텍스트를 읽고 MSXML 파서(Msxmlsql.dll)을 사용하여 텍스트의 구문을 분석하여 사용할 수 있는 상태로 제공한다. sp_xml_preparedocument는 XML문서의 새로 생성된 내부 표현에 액세스하는데..

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