SQL Server 2016으로의 업그레이드를 고려해야하는 많은 이유가 있습니다. 대부분의 경우, 이러한 이유는 SQL Server 버전에 따라 다릅니다. 완전한 목록은 아니지만 몇 가지 이유가 있습니다. 우리가 방금 2016 년 11 월에 SQL Server 2016 SP1을 출시하면서 알게 된 매우 큰 이유를 포함합니다. 내가 놓친 확장 기능에 대한 다른 답변을 기대합니다.
큰 이유 : 이제 Standard Edition에서 사용할 수있는 많은 기능
2016 년 11 월 16 일 Microsoft는 SQL Server 2016 용 서비스 팩 1 릴리스를 발표했습니다.이 발표와 함께 이전에 Enterprise Edition 고객에게 예약 된 많은 기능을 모든 버전의 SQL Server-Standard, Express 에서 사용할 수 있다고 발표했습니다. Enterprise Edition 외에 웹 제외).
이는 SQL Server 백엔드가있는 소프트웨어를 개발하고 판매하는 소프트웨어 공급 업체를 업그레이드해야하는 매우 강력한 이유입니다. 이제 라이센스가 부여 된 SQL Server 버전에 관계없이 고객이 많은 기능을 사용할 수 있습니다. 또한 시간이 지남에 따라 제품에 추가 된 감사 또는 기타 보안 강화 기능을 유지해야하는 부문의 회사에게도 매력적입니다.
겸손한 견해로는, 17 년 동안 SQL Server를 사용하면서 SQL Server 2016 SP1을 6.5 버전에서 SQL Server로 작업을 시작한 이후로 가장 강력한 업그레이드가 될 수 있습니다. (나를 잘못하지 마라, 2000, 2005 및 2012는 자신의 시대에도 프로가 있었다!)
아래 목록을보십시오. 그러나 이제 Standard Edition에서 사용할 수있는 일부 기능의 간단한 예와 같이 압축, 변경 데이터 캡처, 세분화 된 감사, 행 레벨 보안, 항상 암호화, 파티션, 데이터베이스가 있습니다. 스냅 샷, 메모리 내 OLTP, 열 저장소
SQL Server 2016의 새로운 기능에 대한 특정 이유
이 섹션의 이유를 SQL Server 2016에 도입 된 기능에만 유지하려고합니다. 또한 보고서, 분석, 데이터 통합 등이 아닌이 답변의 핵심 엔진 향상 기능 만 설명합니다.
보안 관련
행 수준 보안 -행 단위로 보안을 구현할 수있는 많은 클라이언트가 있습니다. "사용자 x는이 행의 데이터를 볼 수 있지만 해당 행은 볼 수 없습니다". 이러한 클라이언트 중 상당수는이를 달성하기 위해 기능 및 / 또는 복잡한 뷰 기반 구조를 만들었습니다. SQL Server 2016에는 여기에 도움이되는 기본 조건 자와 보안 정책이 있습니다. RLS에 대한 자세한 내용은 여기를 참조 하십시오 .
다이내믹 데이터 마스킹 (Dynamic Data Masking) -이것은 종이에서 잘 들리지만 보안 영역의 다른 두 가지 변경보다 유용하지 않을지 궁금합니다. 기본적으로 발신자의 권한에 따라 쿼리시 데이터를 동적으로 마스킹하거나 난독 처리 할 수 있습니다. 난독 화 될 데이터의 양은 프로그래밍 가능한 것입니다. 예를 들어, Microsoft가 사용하는 예에서 신용 카드 번호의 마지막 네 자리 숫자를 제외한 모든 숫자를 마스킹하면 콜 센터의 발신자가 해당 네 자리를 확인할 수 있습니다. 자세한 내용은 여기 를 참조하십시오 .
항상 암호화 됨 -투명 데이터 암호화에 대한 일부 결함이나 우려에 대해 들어 보셨을 것입니다. SA 액세스 권한이있는 사람이 원하는 경우 암호를 해독 할 수 있다는 두려움 때문에 TDE를 사용하고 싶지 않을 수도 있습니다. Always Encrypted는 SQL Server를 호출하는 응용 프로그램에서 해독 / 암호화 기능을 제공하는 기능으로 출시되었습니다. SQL Server에서 유휴 데이터는 암호화됩니다. 이 접근 방식의 결과로 SQL Server로 향하는 비행중인 데이터도 암호화됩니다. Always Encrypted에 대한 자세한 내용은 여기를 참조하십시오 .
HA / DR 기능
몇 가지 기능이 여기에 나왔습니다. 하나는 기본 가용성 그룹 인 SQL Server Standard에서 Always On 가용성 그룹을 사용하는 기능입니다. 미러링은 더 이상 사용되지 않으며 교체 할 필요가 없었으므로 필요했습니다. 이 기능은 복제본 수와 동기화 방법으로 제한됩니다. 자세한 내용은 여기를 참조 하십시오 .
이는 가용성 그룹 (SQL Server 2012에 도입 된)에 대한 유일한 변경은 아닙니다. 다른 변경 사항도 있습니다 ( 여기 에서 다른 변경 사항에 대한 링크가있는 전체 목록을 볼 수 있음 ).
- 그룹 관리 서비스 계정이 지원됩니다.
- 분산 트랜잭션이 지원됩니다 (일부 경고 와 함께 ).
- 읽기 전용 복제본간에 읽기 의도 연결을로드 밸런싱 할 수 있습니다.
- 이제 자동 장애 조치에 세 개의 복제본이 포함될 수 있습니다.
- 암호화 된 데이터베이스는 이제 Always On 가용성 그룹에 참여할 수 있습니다.
- SQL Server 2016의 주제 중 하나 인 성능 향상은 "더 빠릅니다"– 이것이 Microsoft 마케팅 스핀이지만 시장에서 입증되고 있습니다. 가용성 그룹 성능이 몇 가지 개선되었습니다.
설치 프로그램이 일반적인 실수를 수정 함
SQL Server 2016부터 SQL Server 설치 관리자는 TempDB를 구성 할 때 발생하는 몇 가지 일반적인 실수를 해결합니다. 설치 GUI가 모범 사례 구성을 안내합니다.
쿼리 저장소
SQL Server MVP 및 튜너가 선호합니다. 이 기능은 엔진이 쿼리를 실행하는 방법에 대한 통찰력을 제공하는 도구입니다. 시간이 지남에 따라 쿼리 계획의 변경으로 인한 성능 문제를 추적하는 데 특히 유용합니다. 이 도구는 볼 수 있지만 수정할 도구 일 수도 있습니다. 몇 가지 성능 조정 개념을 단순화합니다. 자세한 내용은 여기 를 참조하십시오 .
임시 테이블
나는 종종 "이 데이터의 날짜와 날짜는 어떻게 보였는가"와 같은 질문을 할 필요가 있습니다. 임시 테이블은이를 수행하는 한 가지 방법입니다. 창고 사용 사례가 분명히 있습니다. 자세한 내용은 여기를 참조 하십시오 .
칼럼 스토어 개선
여기 몇 가지 큰 개선이 있습니다. 하나는 업데이트 가능한 비 클러스터형 열 저장소 인덱스입니다. SQL Server 2014는 업데이트 가능한 클러스터를 제공했지만 이제는 업데이트 가능한 클러스터되지 않았습니다. SQL Server 2016은 메모리 내 OLTP 테이블에서 열 저장소 인덱스를 허용합니다. 그리고 기존 B- 트리 비 클러스터형 인덱스를 클러스터 된 열 저장소 인덱스에 배치하는 기능이 이제 SQL Server 2016에 있습니다.
메모리 내 OLTP의 추가 기능 개선
In-Memory 테이블 또는 기본적으로 컴파일 된 프로 시저에서 지원되지 않는 몇 가지 기능을 사용할 수 있습니다. 일부 추가는 (그러나 볼 이 글 , DISTINCT SELECT, 선택 목록에서 외부 조인, UNION / UNION ALL을 하위 쿼리를 DML에 UNIQUE 제약 조건, 점검 제한 조건, OUTPUT 절 등 : 이상을).
일반적인 성능 개선
SQL Server 2014는 각 릴리스와 마찬가지로 몇 가지 주요 영역의 성능이 일부 향상되었습니다. SQL Server 2016은 제품 전체에서 추가로 주요 기능을 향상 시켰습니다. 여기에는 카디널리티 추정기 변경으로 인해 SQL Server 2014로 업그레이드 할 때 발생하는 일부 고통을 많은 고객이 제거하는 것이 포함됩니다. 일상적인 성능을 향상시키기 위해 엔진을 위아래로 여러 번 변경했습니다. Microsoft의 CSS 팀은 블로그에서 이에 대한 블로그를 작성했습니다. "SQL Server 2016이 더 빠르게 실행됩니다"만 검색하면됩니다. 이 시리즈에 대한 블로그 게시물의 예는 다음과 같습니다 .
나는 이것을 업그레이드 한 고객들 에게서이 문제가 발생하는 것을 보았으며 점점 더 많이 볼 것으로 기대합니다.
일부 단점
모든 업그레이드에는 분명히 단점이 있습니다. 컨설턴트로서의 생활을 위해이 작업을 수행하기 때문일 수 있지만 단점은 모두 매우 관리하기 쉬우 며 실제로 알고 관리해야 할 항목을 "원가 우선 계산"이라고 생각합니다.
업그레이드 일반 -일반 업그레이드는 새로운 기능을 도입하고 있음을 의미합니다. 테스트 할 수 있어야합니다. SQL Server 버전 간에는 다양한 기능이 더 이상 사용되지 않습니다. 그렇다고해서 즉시 나갈 수는 없지만 향후 릴리스에서 종종 세 가지 버전으로 나올 수 있다는 의미입니다. 예를 들어 TEXT 데이터 형식이거나 where 절에서 *=
또는=*
SQL Server 2000 호환 모드에서 실행중인 데이터베이스에서 오는 경우 구문이 지원되지 않습니다. 호환성 모드에 관해서는 세 가지 버전으로 만 되돌아갑니다. 따라서 80 (SQL Server 2000) 또는 90 (SQL Server 2005) 호환 모드로 실행되는 데이터베이스가있는 경우에는 그러한 SQL Server 2016으로 넘어갈 수 없습니다. 따라서 테스트를 수행하지 않고 호환성 수준을 몰래 피했다면 이제 계산해야 할 때입니다.
다시. 쉬운 일입니다. 데이터를 캡처하고 테스트하여 중단 된 부분을 확인할 수있는 도구가 있습니다. 더 이상 사용되지 않는 기능을 찾는 데 도움이되는 perfmon 카운터가 있습니다.
라이센싱 -여기 두 가지 :
- 핵심 기반-SQL Server 2012 라이선스 조건을 미리 사용하는 경우 CPU 라이선스는 바로 CPU 라이선스입니다. SQL Server 2012 이후 CPU 기반 라이센스는 핵심을 기반으로합니다. 조정 기간이 있습니다. 또한 기업 (첫 출시 때 2012 만들어진 몇 가지 예외를 제외하고) 새로운 라이센스의 필수기업을위한 서버 + CAL이없는 핵심 수준에서 라이센스를 취득해야합니다. 이 클라우드에서 빛나는 은색 라이닝은 엔터프라이즈가 아닌 SKU에서 Enterprise 기능을 허용하는 SP1에 대해 말한 것입니다. 128GB 이상의 RAM이 필요한 경우 고급 스캔이 필요한 경우 성능이 향상됩니다. columnstore 또는 In-Memory에 32GB 이상의 RAM이 필요한 경우 Enterprise를 찾고 있습니다. 당신이하지 않으면? 온라인 인덱스 재 구축이 필요하지 않습니까? 표준은 귀하를위한 것일 수도 있으며, 현재 귀하에게 새로 제공되는 기능을 통해 귀하에게 더 적합 할 수도 있습니다.
- SA (Software Assurance)-SA를 구입하지 않은 경우 새 제품을 구입해야합니다. 따라서 SQL Server 2005를 실행 중이고 확장 지원이 끝나는 시점에서 크게 멀지 않은 주류 지원을받지 못하고 현재 제공되는 기능을 원한다면 서비스 팩처럼 업그레이드 할 수 없습니다. SA를 구입하지 않은 경우 업그레이드는 새로 구입 한 것입니다. 괜찮습니다. 정말 가치가 있습니다. 그러나 예산에 부딪 치는 것은 무언가이다.
개요
JSON 지원, R 도입 등과 같은 더 많은 이유가 있습니다. 그러나 이것이 제가 업그레이드를 고려한 이유 중 일부입니다. 가장 중요한 항목은 Standard 또는 Express에서 이전의 Enterprise Edition 전용 기능을 사용할 수있는 기능입니다. 나는 내 고객들 사이에서 큰 성공 사례를 보았으며 더 많은 것을 기대하고 있습니다.
그리고 SQL Server 2005 또는 2008을 사용하는 경우 목록이 더 큽니다. AlwaysOn 가용성 그룹은 2012 년, SQL Server 2012의 Columnstore 인덱스, SQL Server 2014의 In-Memory OLTP 등에서 나왔습니다.
아직 SQL Server 2005 또는 2008을 사용중인 경우 말할 것도없고 주류 지원을받을 수 없습니다.