Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

새로운 SQL Server 2017 기능

최신 버전의 SQL Server로의 업그레이드를 고려하고 있습니까? SQL Server 2016 또는 SQL Server 2017 중에서 선택하고 계십니까? 그렇다면 이 게시물에서 설명한 대로 SQL Server 2017로 업그레이드하는 것이 좋습니다.

SQL Server 기술의 릴리스는 SQL 관리자와 개발자가 숙고할 수 있는 흥미로운 새 기능을 많이 제공합니다. SQL Server vNext(일반적으로 SQL Server 2017이라고 함)용 CTP(Community TechnologyPreview) 2.0도 예외는 아닙니다. 응용 프로그램의 기존 기능 및 서비스에 많은 업데이트가 구현되었습니다. 이 블로그 게시물에서는 DBA(데이터베이스 관리자) 관점에서 SQL Server 2017 데이터베이스 엔진의 새로운 기능에 대해 설명합니다.

소개

Microsoft® SQL Server 2017은 이제 더 빠른 처리, 더 많은 사용 유연성 및 결과적으로 더 큰 비용 절감을 제공하는 더 많은 새로운 기능으로 현장에 있습니다. SQL Server 2016은 Microsoft가 큰 도약이라고 부르는 많은 개선 사항을 제공했습니다. 그러나 SQL Server 2016이 큰 도약이었다면 SQL Server 2017은 모든 수준에서 기업 고객이 필요로 하는 모든 것과 훨씬 더 많은 것을 약속합니다. 적응형 쿼리 처리, 플랫폼 간 기능을 통한 새로운 유연성, 통계 및 데이터 과학 분석을 위한 새로운 통합, Linux®, Ubuntu® 운영 체제 또는 Docker®의 SQL Server 버전을 통해 데이터베이스 성능이 새로운 정점에 도달했습니다. 새 버전은 비용 절감과 함께 견고한 기술을 추가합니다.

여기에서 설명하는 SQL Server 2017에 도입된 변경 사항에는 다음과 같은 기능이 포함됩니다.

  • Linux의 SQL Server
  • 재개 가능한 온라인 인덱스 재구축
  • SQL Server 기계 학습 서비스
  • 쿼리 처리 개선
  • 자동 데이터베이스 조정
  • TempDB 파일 크기 개선
  • 스마트 차등 백업
  • 스마트 트랜잭션 로그 백업
  • 개선된 SELECT INTO 성명서
  • 분산 트랜잭션 지원
  • 새로운 가용성 그룹 기능
  • 새로운 동적 관리 보기
  • 인메모리 향상
  • 보안 강화
  • 고가용성 및 재해 복구
  • 성능 개선

리눅스 기반 SQL 서버

SQL Server는 더 이상 Windows 기반 RDBMS(관계형 데이터베이스 관리 시스템)가 아닙니다. 다양한 Linux 운영 체제에서 실행할 수 있습니다. Linux, Windows, Ubuntu 운영 체제 또는 Docker에서 SQL Server를 사용하여 애플리케이션을 개발하고 이러한 플랫폼에 배포할 수도 있습니다.

재개 가능한 온라인 색인 재구축

이 기능은 데이터베이스 장애 조치, 디스크 공간 부족 또는 일시 중지와 같은 이벤트 후에 중지된 위치에서 온라인 인덱스 재구축 작업을 재개합니다.

다음 이미지는 이 작업의 예를 보여줍니다.

새로운 SQL Server 2017 기능 새로운 SQL Server 2017 기능

색인 생성 지침

온라인 색인 작업을 수행할 때 다음 지침이 적용됩니다.

  • 기본 테이블에 image, ntext 및 text LOB(대형 개체) 데이터 유형이 포함된 경우 클러스터형 인덱스를 생성, 재구축 또는 오프라인으로 삭제해야 합니다.
  • 비고유 및 비클러스터형 인덱스는 테이블에 LOB 데이터 유형이 포함되어 있지만 인덱스 정의에서 키 또는 키가 아닌(포함된) 열로 사용되지 않는 경우 온라인으로 생성할 수 있습니다.
  • 로컬 임시 테이블의 인덱스는 온라인으로 생성, 재구축 또는 삭제할 수 없습니다. 이 제한 사항은 글로벌 임시 테이블의 인덱스에는 적용되지 않습니다.
  • 비클러스터형 인덱스를 여러 개 생성하거나 비클러스터형 인덱스를 재구성하는 경우에만 동일한 테이블 또는 뷰에서 동시 온라인 인덱스 DDL(데이터 정의 언어) 작업을 수행할 수 있습니다. 동시에 수행된 다른 모든 onlineindex 작업은 실패합니다. 예를 들어 동일한 테이블에서 온라인으로 기존 인덱스를 다시 작성하는 동안 새 인덱스를 온라인으로 생성할 수 없습니다.

SQL Server 기계 학습 서비스

SQL Server 2016은 데이터베이스 서버 내에서 실행할 수 있고 Transact-SQL(T-SQL) 스크립트에도 포함할 수 있는 R 프로그래밍 언어를 통합했습니다. SQL Server 2017에서는 데이터베이스 서버 자체 내에서 Python 스크립트를 실행할 수 있습니다. R과 Python은 모두 자연어 처리 기능과 함께 데이터 분석에 대한 광범위한 지원을 제공하는 인기 있는 프로그래밍 언어입니다.

쿼리 처리 개선 사항

SQL Server 2017은 애플리케이션 워크로드의 런타임 조건에 최적화 전략을 적용합니다. 여기에는 SQL Server 및 SQL Database에서 쿼리 성능을 향상시키는 데 사용할 수 있는 적응형 쿼리 처리 기능이 포함되어 있습니다.

다음 다이어그램과 같이 세 가지 새로운 쿼리 개선 사항이 있습니다.

새로운 SQL Server 2017 기능
  • 일괄 모드 메모리 부여 피드백 :이 피드백 기술은 실행 계획에 필요한 메모리를 다시 계산하고 캐시에서 부여합니다.
  • 일괄 모드 적응 조인 :계획을 더 빠르게 실행하기 위해 이 기법은 해시 조인 또는 중첩 루프 조인을 사용할 수 있습니다. 실행 계획의 첫 번째 입력을 스캔한 후 가장 빠른 속도로 출력을 생성하기 위해 사용할 조인을 결정합니다.
  • 인터리브 실행 :인터리브 실행은 다중 문 테이블 반환 함수를 만날 때 실행 계획의 최적화를 일시 중지합니다. 그런 다음 완벽한 카디널리티를 계산하고 최적화를 재개합니다.

자동 데이터베이스 조정

이 기능은 잠재적인 성능 문제가 감지될 때마다 알려 수정 조치를 적용하거나 데이터베이스 엔진이 SQL 계획 선택 회귀로 인한 성능 문제를 자동으로 수정할 수 있도록 합니다. 따라서 데이터베이스는 어떤 인덱스와 계획은 워크로드의 성능과 워크로드에 영향을 미치는 인덱스를 개선할 수 있습니다. 이러한 결과를 기반으로 자동 튜닝 프로세스는 작업 부하 성능을 향상시키는 작업을 적용합니다. 또한 데이터베이스는 자동 튜닝에 의한 변경 후 성능을 지속적으로 모니터링하여 워크로드 성능을 향상시킵니다. 성능을 향상시키지 않는 모든 작업은 자동으로 되돌려집니다.

SQL 계획 선택 회귀

SQL Server 데이터베이스 엔진은 다른 SQL 계획을 사용하여 T-SQL 쿼리를 실행할 수 있습니다. 쿼리 계획은 통계, 인덱스 및 기타 요소에 따라 다릅니다. 경우에 따라 새 계획이 이전 계획보다 좋지 않을 수 있으며 새 계획으로 인해 성능이 저하될 수 있습니다. 잘못된 계획 선택 회귀를 발견할 때마다 sp_query_store_force_plan을 사용하여 이전에 사용한 좋은 계획을 찾아 현재 계획 대신 강제로 사용해야 합니다. 절차. SQL Server 2017(v. 14.x)의 데이터베이스 엔진은 회귀 계획 및 권장되는 수정 조치에 대한 정보를 제공합니다. 또한 데이터베이스 엔진을 사용하면 이 프로세스를 완전히 자동화하고 데이터베이스 엔진이 발견된 계획 변경과 관련된 문제를 수정하도록 할 수 있습니다.

자동 계획 수정

자동 계획 수정은 다음 다이어그램에 나와 있습니다.

새로운 SQL Server 2017 기능

다음과 같은 자동 조정 기능을 사용할 수 있습니다.

  • 자동 계획 수정 (SQL Server 2017 v14.x 및 AzureSQL 데이터베이스에서 사용 가능):문제가 있는 쿼리 실행 계획을 식별하고 SQL 계획 성능 문제를 수정합니다. 다음 명령을 사용하여 자동 조정을 활성화합니다.
새로운 SQL Server 2017 기능 새로운 SQL Server 2017 기능
  • 자동 색인 관리 (Azure SQL Database에서만 사용 가능):데이터베이스에 추가해야 하는 인덱스와 제거해야 하는 인덱스를 식별합니다.

TempDB 파일 크기 개선

이제 SQL Server 2017 설치 프로그램을 통해 초기 TempDB 파일 크기를 파일당 최대 256GB(262,144MB)까지 지정할 수 있으며, 즉시 파일 초기화(IFI) 없이 파일 크기가 1GB보다 큰 경우 경고가 표시됩니다. 활성화. 지정된 TempDB 데이터 파일의 초기 크기에 따라 IFI를 활성화하지 않으면 설정 시간이 기하급수적으로 증가할 수 있음을 이해하는 것이 중요합니다.

스마트 차등 백업

새 열 modified_extent_page_count sys.dm_db_file_space_usage에 도입되었습니다. 데이터베이스의 각 데이터베이스 파일에서 차등 변경 사항을 추적합니다. 새 열 modified_extent_page_count DBA, SQL 커뮤니티 및 백업 독립 소프트웨어 공급업체(ISV)가 스마트 백업 솔루션을 구축할 수 있도록 하여 데이터베이스에서 변경된 페이지 비율이 임계값(약 70-80%) 미만인 경우 차등 백업을 수행합니다. 그렇지 않으면 전체 데이터베이스를 수행합니다. 지원. 데이터베이스에 많은 변경 사항이 있는 경우 차등 백업을 완료하는 데 드는 비용과 시간은 전체 데이터베이스 백업을 수행하는 것과 유사하므로 이 경우 차등 백업을 수행해도 실질적인 이점이 없습니다. 그러나 그것은 확실히 데이터베이스의 복원 시간을 증가시킬 수 있습니다. 이 인텔리전스를 백업 솔루션에 추가하면 차등 백업을 사용하여 복원 및 복구 시간을 절약할 수 있습니다.

스마트 트랜잭션 로그 백업

새로운 동적 관리 기능(DMF), sys.dm_db_log_stats(database_id) , 출시되었습니다. 이 함수는 새 열 log_since_last_log_backup_mb을 표시합니다. 이는 DBA, SQL 커뮤니티 및 백업 ISV가 지능형 T-log 백업 솔루션을 구축하여 데이터베이스의 트랜잭션 활동을 기반으로 백업을 수행할 수 있도록 합니다. 이 T-log 백업 솔루션 인텔리전스는 T-logbackup 빈도가 너무 낮더라도 짧은 시간에 트랜잭션 활동이 급증하여 트랜잭션 로그 크기가 커지지 않도록 합니다. 또한 서버에 트랜잭션 활동이 없는 경우에도 예약된 트랜잭션 로그 백업이 너무 많은 T-logbackup 파일을 생성하는 상황을 방지하는 데 도움이 됩니다. 이 경우 스토리지, 파일 관리 및 복원 오버헤드가 불필요하게 추가됩니다.

개선된 SELECT INTO 성명서

SQL Server 2017에서는 ON을 사용하여 새 테이블을 생성할 파일 그룹 이름을 제공할 수 있습니다. SELECT INTO 키워드 성명. 테이블은 기본적으로 사용자의 기본 파일 그룹에 생성됩니다. 이 기능은 이전 버전에서는 사용할 수 없었습니다.

분산 트랜잭션 지원

SQL Server 2017은 가용성 그룹의 데이터베이스에 대한 분산 트랜잭션을 지원합니다. 이 지원에는 동일한 SQL Server 인스턴스에 있는 데이터베이스와 다른 SQL Server 인스턴스에 있는 데이터베이스가 포함됩니다. 데이터베이스 미러링을 위해 구성된 데이터베이스에는 분산 트랜잭션이 지원되지 않습니다.

새로운 가용성 그룹 기능

이 기능에는 클러스터리스 지원, Minimum Replica CommitAvailability Groups가 포함됩니다. 설정, Windows-Linux 간 OS 마이그레이션 및 테스트

이 기능에는 다음과 같은 기능이 포함됩니다.

  • 이제 기본 클러스터(WindowsServer 장애 조치 클러스터 또는 WSFC) 없이 혼합 환경(Windows 및 Linux 또는 Docker의 인스턴스)에서 가용성 그룹을 설정할 수 있습니다.

  • 새로운 최소 복제본 커밋 설정을 통해 특정 수의 보조 복제본을 지정할 수 있습니다. 기본에서 커밋하기 전에 트랜잭션을 커밋해야 합니다.

새로운 동적 관리 보기

DMV(동적 관리 보기)에는 다음 요소가 포함됩니다.

  • sys.dm_db_log_stats 트랜잭션 로그 파일에 대한 요약 수준 속성 및 정보를 노출하고 트랜잭션 로그 상태를 모니터링하는 데 유용합니다.
  • sys.dm_tran_version_store_space_usage 버전 저장소 사용에 미치는 영향을 각 데이터베이스별로 그룹화하여 볼 수 있습니다. 결과적으로 이를 사용하여 테스트 환경(변경 전후)에서 워크로드를 프로파일링하고 시간 경과에 따른 영향을 모니터링할 수 있습니다. 다른 데이터베이스도 버전 저장소를 사용하고 있는 경우에도 마찬가지입니다.
  • sys.dm_db_log_info VLF(가상 로그 파일) 정보를 노출하여 잠재적인 트랜잭션 로그 문제를 모니터링, 경고 및 방지합니다.
  • sys.dm_d_stats_histogram 다음 이미지와 같이 통계 검사를 위한 새로운 동적 관리 보기입니다.
새로운 SQL Server 2017 기능
  • sys.dm_os_host_info 플랫폼, 배포, 서비스 팩 수준, 언어 등을 노출합니다.
  • sys.dm_os_sys_info 확장되어 CPU 정보(예:소켓 수, 코어 수, 소켓당 코어 수)가 표시됩니다.

인메모리 향상

SQL Server 2017의 메모리 내 변경 사항에는 다음과 같은 향상된 기능이 포함됩니다.

  • 계산 열 및 해당 열의 색인이 이제 지원됩니다.
  • CASE 표현식, CROSS APPLY 및 TOP(N) WITH TIES가 이제 기본적으로 컴파일된 모듈을 지원합니다.
  • JSON 명령은 이제 검사 제약 조건과 기본적으로 컴파일된 모듈 모두에서 완전히 지원됩니다.
  • 시스템 프로시저 sp_spaceused 이제 공간 메모리에 최적화된 테이블을 올바르게 보고합니다.
  • 시스템 프로시저 sp_rename 이제 메모리 내 테이블 및 기본적으로 컴파일된 모듈에서 작동합니다.
  • 메모리 최적화 테이블에서 8개의 인덱스 제한이 제거되었습니다.
  • 메모리에 최적화된 파일 그룹 파일을 이제 Azure 저장소에 저장할 수 있습니다.

보안 강화

이제 CONTROL, ALTER, REFERENCES, TAKE OWNERSHIP 및 VIEW DEFINITION 권한과 같은 데이터베이스 범위 자격 증명에 대한 권한을 부여, 거부 또는 취소할 수 있습니다. 또한 ADMINISTER DATABASE BULK OPERATIONS가 이제 sys.fn_builtin_permissions에 표시됩니다. .

고가용성 및 재해 복구

향상된 항상 켜짐을 통해 중요한 가동 시간, 빠른 장애 조치, 손쉬운 설정 및 읽기 가능한 보조 장치의 로드 밸런싱을 확보합니다. SQL Server2017의 기능. Linux 및 Windows에서 고가용성 및 재해 복구를 위한 통합 솔루션입니다. 하이브리드 고가용성을 위해 Azurevirtual 머신에 비동기 복제본을 넣을 수도 있습니다.

성능 향상

SQL Server 2017에서는 쿼리 및 통계가 수집되고 표시되는 방식에 다음과 같은 변경 사항이 도입되었습니다.

  • 새 DMV sys.dm_exec_query_statistics_xml 쿼리 프로파일링이 활성화되어 있는 한 세션을 계획에 상관시킬 수 있습니다. 다음 이미지는 이를 보여줍니다.
새로운 SQL Server 2017 기능
  • Showplan XML에는 이제 계획에 사용된 통계 및 실제 계획의 경우 런타임 메트릭 및 해당 계획에서 경험한 상위 10개 대기 통계에 대한 정보가 포함됩니다. 이러한 대기 통계는 이제 쿼리 저장소에서도 추적됩니다.
  • 새로운 동적 관리 기능 sys.dm_db_stats_histogram 데이터베이스 콘솔 명령(DBCC) 없이 프로그래밍 방식으로 히스토그램 정보에 액세스할 수 있습니다.

결론

SQL Server 2017에는 구현에 도움이 될 수 있는 많은 변경 사항이 있으며 도움이 되는 풍부한 정보가 있습니다. SQL Server 2017이 "단지 Linux 포트"라고 생각할 수도 있지만 모든 플랫폼에 이점을 제공하는 핵심 데이터베이스 엔진의 실질적인 개선 사항이 있습니다. Microsoft는 SQL Server 2017 누적 업데이트에서 제품에 추가 기능을 계속 추가하고 있으며 SQL Server 2017은 SQL Server 2016보다 더 오랫동안 Microsoft에서 완전히 지원됩니다.

데이터베이스에 대해 자세히 알아보기

피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 저희와 대화를 시작할 수도 있습니다.