본문 바로가기

DataBase/Ms Sql

SQL Server의 새로운 기능 2017


출처 : https://www.codeproject.com/Articles/1210268/Whats-new-in-SQL-Server

SQL 2017의 새로운 기능 목록

배경

                2017 년 10 월에 발표 된 SQL Server 2017 (실제로는 SQL 2016, 오케이, Jokes의 기능을 이해하려고합니다.) SQL 2017은 첫 번째 부분 인 SQL 2017 CTP 1.0 ( SQL 버전 14.0.1.246가)에 출시 된  자사의 10 릴리스가 올 이제 SQL 2017까지 최대 11월-2016 (그들은 2016 년 2017 버전을 출시 할 수 있습니까?), 현재 릴리스는 SQL 2017 릴리스 GA (인 SQL 버전 14.0.1000.169 )  ( 여기에서 확인하십시오 ) 2017 년 10 월에 출시 된 버전

** SQL 2016 의 새로운 기능을 보려면 여기를 참조하십시오 )

소개

이 버전의 SQL은 주로 Linux에 연결되어 SQL의 힘을 리눅스에 가져옵니다. 즉, Linux에서 SQL 2017을 설치할 수 있습니다 (큰 변화입니다). SQL은 Linux 기반 도커 컨테이너에서도 사용할 수 있습니다. 이 빌드에서 SQL은 개발 언어 선택권을 제공하며 사내 구축 형 또는 클라우드 기반 개발이 가능합니다.

이 빌드에서 SQL은 데이터베이스 엔진, Integration Services, Master Data Services, Analysis Services 등과 같은 각 부분에서 성능, 확장 성 및 기능을 향상시킵니다.이 기사에서는 하나씩 차례로 살펴 보겠습니다. 

다음은 데이터베이스 엔진의 새로운 기능 중 일부입니다.

identity_cache

이 옵션을 사용하면 신원 열 값의 불일치 , 예기치 않게 서버가 종료되거나 장애 조치가 발생하는 경우 또는 일부 보조 서버로 전환 한 경우에도 불일치를 피할 수 있습니다. 이 옵션은 ' ALTER DATABASE SCOPED CONFIGURATION ' 문과 함께 사용됩니다 이 명령문은 데이터베이스 구성 설정을 사용 가능하게하는 데 사용됩니다. 구문은 다음과 같습니다.

ALTER DATABASE SCOPED CONFIGURATION
{      
     {  [ FOR SECONDARY] SET <set_options>  }  
}
| CLEAR PROCEDURE_CACHE
| SET < set_options >
[;]  

< set_options > ::=  
{
    MAXDOP = { <value> | PRIMARY}  
    | LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY}  
    | PARAMETER_SNIFFING = { ON | OFF | PRIMARY}  
    | QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY}
    | IDENTITY_CACHE = { ON | OFF }
}

 

적응 형 쿼리 처리 개선

쿼리 실행 성능을 향상시겠습니까? 이 기능은 SQL Server 및 Azure SQL 데이터베이스에서 지원됩니다.

SQL 쿼리 실행의 일반적인 최적화 흐름을 알고 있습니까? 아니오이면 아래 단계를 확인하십시오.

  1. 초기 쿼리 최적화 프로그램은 주어진 쿼리에 대해 가능한 모든 쿼리 실행 계획을 계산합니다.
  2. 그런 다음 최저 비용 / 가장 빠른 계획을 세웁니다.
  3. 마지막으로 Optimizer가 가장 낮은 예측 계획을 선택하여 쿼리를 실행 한 다음 실행을 시작합니다.

이제이 과정에서 몇 가지 단점이 있습니다.

  1. 가장 낮은 예상 실행 계획이 잘못 될 경우 성능에 영향을 미칩니다.
  2. 불충분 한 메모리가 처리를 위해 할당되면 디스크로 유출됩니다.
  3. 할당 된 메모리의 크기가 잘못 지정되면 메모리 낭비가 발생합니다.

 이러한 모든 문제를 극복하기 위해이 SQL 2017 기능을 사용할 수 있습니다

1. 일괄 모드 메모리 부여 피드백

이 피드백 (기술)은 실행 계획에 필요한 메모리를 다시 계산하고 (실제로) 캐시에서 부여합니다

2. 배치 모드 적응 형 조인

계획을 빠르게 실행하려면 해시 조인과 중첩 된 루프 조인이 있습니다. 실행 계획의 첫 번째 입력을 검사 한 후 최적의 속도로 출력을 생성하는 데 사용할 조인을 결정합니다.

3. 인터리브 실행 

인터리빙 된 실행에서 다중 명령문 테이블 값 함수 가 발생하면 최적화 실행 계획에서 일시 중지 '가 발생 합니다. 그런 다음 완벽한 카디널리티를 계산 한 다음 최적화를 다시 시작합니다.

자동 튜닝

이 기능을 통해 쿼리 성능 문제를 확인하고이를 식별하고 권장 솔루션으로 해결할 수 있습니다. 이 기능에는 몇 가지 자동 튜닝 기술이 있습니다.

  1. 자동 수정 (계획)
  2. 자동 관리 (색인)

자동 수정 (계획)  

이 계획은 SQL 2017 DB에서 사용할 수 있으며, 기본적으로 문제가있는 계획 (성능 현명한)을 스캔 한 다음 권장 솔루션으로 수정합니다.

자동 관리 (색인)

이 기능은 SQL 2017 Azure DB에서 사용할 수 있습니다. 기본적으로 색인의 순서를 식별하고 수정하며, 제거 된 색인과 추가되는 색인입니다.

그래프 DB

그래프 데이터베이스 기능은 SQL 2017에 새로 도입되었습니다.

그래프 DB 란 무엇입니까?

기본적으로 에지와 노드의 집합입니다. 에지는 노드 사이의 관계이며 노드는 단지 엔티티이므로 단일 에지는 여러 노드와 연결할 수 있습니다. 그래프 DB는 관계형 데이터베이스와 마찬가지로 작동합니다. 다음과 같은 경우 그래프 DB를 사용할 수 있습니다.

그것을 사용하는 곳

  1. 계층 구조 형식의 데이터가 있고 노드에 대해 여러 상위 항목을 저장하려는 경우
  2. 상호 연결된 관계 및 데이터를 확인하고 분석해야하는 경우.
  3. 당신은 많은 관계가 많은 경우.

여기서 키워드 일치 는 그래프 테이블을 쿼리하고 단일 쿼리 만 사용하여 데이터를 정렬하는 데 사용되며 사용자가 그래프 및 관계형 데이터에서 쿼리 할 수 ​​있으므로 자세한 체크 아웃 [ here ]

항상 사용 가능 (교차 데이터베이스 액세스)

이 기능을 사용하면 다른 SQL 인스턴스 (동일한 SQL 인스턴스가 다른 인스턴스에 연결될 수 있음)에 대해이 기능을 사용할 수 있습니다. 또한 데이터베이스 분산 트랜잭션을 지원합니다. [SQL 2016은 교차 데이터베이스 액세스도 지원하지만 동일한 SQL Server 인스턴스에서만 지원됩니다]

 

DTA 개선

SQL 2017에는 조정 권고 자에 대한 추가 옵션이 있는 데이터베이스 조정 권고 자 (DTA)의 성능이 향상되었습니다

** 무엇인지 모르는 사람들을위한 데이터베이스 튜닝 어드바이저 :

데이터베이스 엔진으로, 처리 된 쿼리를 검사 한 다음 성능을 향상시킬 수있는 방법을 제시하거나 데이터베이스 구조 (예 : 인덱스, 키)를 변경하는 방법을 사용할 수 있습니다. 몇 가지 방법을 사용할 수 있습니다 그것

  • GUI (인터페이스) 사용
  • 명령 유틸리티 사용

그것에 대해 더 알고 싶다면 [ 여기에서 확인하십시오 ]

새 문자열 구성원 (함수)

SQL 2017은 TRANSLATE, CONCAT_WS, STRING_AGG 와 같은 새로운 문자열 함수를 소개합니다 . TRIM 은 하나씩 그것을 볼 수 있습니다.

 

옮기다

기본적으로 문자열을 입력으로 사용하고 문자를 새로운 일부 문자로 변환합니다 (아래 구문 참조).

TRANSLATE ( inputString, characters, translations)

위의 구문 길이 인 ' characters '는 ' translations ' 와 동일해야합니다. 그렇지 않으면 위 함수가 오류를 반환합니다.

TRANSLATE ('6*{10+10}/[6-4]','[]{}','()()')

위 예제의 출력은 6 * (10 + 10) / (6-4)

그래서, 우리는 볼 수 있습니다 곱슬 및 사각 둥근 괄호로 번역 중괄호.

[이 함수는 REPLACE와 동일하게 동작하지만 REPLACE보다 사용하기 쉽습니다. REPLACE를 사용하여 동일한 결과를 얻으려면 다음과 같이 작성해야합니다. 이해하기 어렵습니다

SELECT REPLACE(REPLACE(REPLACE(REPLACE('6*{10+10}/[6-4]','{','('), '}', ')'), '[', '('), ']', ')');

 

CONCATE_WS

모든 입력 인수를 지정된 입력 분리. 자로 간단하게 연관시킵니다. 아래 구문을 참조하십시오.

CONCAT_WS ( separator, argument1, argument1 [, argumentN]… )

분리 자의 도움으로 모든 인수를 연결하여 단일 문자열을 생성합니다. 출력을 생성하려면 최소 2 개의 인수가 필요합니다. 그렇지 않으면 오류가 발생합니다.

SELECT CONCAT_WS(',','Count numers', 'one', 'two', 'three', 'four' ) AS counter;

위 구문의 결과는 다음과 같습니다.

하나 둘 셋 넷

하드 코드 문자열 대신 데이터베이스 열 이름을 사용할 수도 있습니다.

 

손질

(finally :) SQL 2017은이 새로운 함수를 소개합니다. 단순히 C # trim 함수로 작동하고 문자열의 시작과 끝에서 모든 공백을 제거합니다. 구문은 다음과 같습니다.

SELECT TRIM('     trim me    ') AS result;

위 구문의 결과는 다음과 같습니다.

날 다듬다

이 함수는 문자열 사이에있는 공백을 제거하지 않습니다.

 

STRING_AGG

문자열의 값을 구분 기호의 도움으로 연결하고 문자열 끝에 구분 기호를 추가하지 않습니다. 입력은 VARCHAR, NVARCHAR 일 수 있으며 선택적으로 WITHIN GROUP 절을 사용하여 결과의 ​​순서를 지정할 수 있습니다

아래 구문을 참조하십시오.

STRING_AGG ( expression, separator ) [ <order_clause> ]

<order_clause> ::=  
    WITHIN GROUP ( ORDER BY <order_by_expression_list> [ ASC | DESC ] )

아래의 예를 확인하십시오.

SELECT city,
    STRING_AGG (name, ';') WITHIN GROUP (ORDER BY name ASC) AS names
FROM Students GROUP BY city;

위의 예에서는 세미콜론 (;)으로 구분 된 모든 이름을 GROIN 내부에 연결하여 주문을 도와줍니다. 출력은 다음과 같이 표시됩니다.

시티이름
도시 1이름 1; 이름 2; 이름 3; 이름 4; 이름 5;
도시 2이름 1; 이름 2; 이름 3; 이름 4;

 

SQL 2017의 SSRS (보고 서비스)의 새로운 내용

  • 지금부터는 SQL 서버 설정에서 사용할 수있는 SSRS 설정이 없으므로 다운로드 센터 [ 여기 ] 에서 다운로드해야합니다 .
  • 이제 쿼리 디자이너는 DAX를 지원하므로 SSAS (Analysis Services)에 대한 네이티브 DAX 쿼리를 만들 수 있습니다.이 도구는 최신 SQL 도구 및 보고서 작성기에서 제공됩니다
  • SSRS는 이제 OpenAPI 호환 API를 지원하는 RESTful API를 지원합니다. [ 여기 ]
  • 이제 주석에 첨부 파일을 추가 할 수 있습니다.
  • 보고서에 주석을 추가 할 수 있습니다.
  • 보고 서비스 웹 포털 개선 (이 기능은 이미 SQL 2016에서 사용 가능합니다)

SQL 2017의 SSIS (통합 서비스)의 새로운 내용

  • 이제 리눅스에서 SSIS 패키지를 실행할 수 있습니다. 추가적으로 로딩, 추출 및 변환이 리눅스에서 가능합니다.
  • 스케일 아웃 기능은 고성능 패키지 실행을 통해 여러 머신에 복잡한 통합을 가능하게하며 심지어 여러 패키지 실행 요청도 가능합니다. 스케일 아웃 (Scale Out) 관리는 스케일 아웃 마스터 (Scale Out Master) 및 스케일 아웃 근로자 (Scale Out Workers)의 도움으로 모든 작업을 수행합니다. 자세한 내용은 여기를 확인하십시오.
  • Microsoft DAX 및 CRM 온라인은 이제 ODataConnection 관리자 및 oDataSource에 대한 지원을받습니다.

SQL 2017의 SSAS (Analysis Services)의 새로운 내용

  • 새로운 데이터 가져 오기 인터페이스는 MS Excel, Power BI와 비슷한 SQL 2017에 도입되었으며 데이터 및 데이터 매쉬업의 변환을 제공하며 쿼리 작성기 및 M 표현식을 사용하여 수행 할 수 있습니다
  • SSAS 용 테이블 모드는 SQL 2012에 도입되었으며 이제 SQL 2017에서 더욱 강력 해졌습니다.
  • SQL 2017은 새로운 ' 인코딩 힌트 (Encoding hints) '기능을 제공합니다.이 기능은 대형 메모리 내 테이블 형식 데이터를 최적화하는 데 사용됩니다
  • 전력 PIVOT의 성능 향상

SQL 2017의 SSAS에 대한 자세한 내용은 [ 여기 ]로 전환 하십시오 .

 

기계 학습

우리는 SQL 2016이 현재 R 서비스를 지원하고 있다는 것을 알고 있습니다. SQL Server Machine 학습 서비스로 이름이 바뀌 었습니다. SQL 서버를 사용하여 R 또는 Python 스크립트를 쉽게 사용할 수 있습니다.

이 새로운 기능에서 Python은 저장 프로 시저에서 실행될 수 있습니다. 심지어 SQL 서버를 사용하여 원격으로 실행할 수도 있습니다. 이는 Python 개발자에게 도움이됩니다.

현재이 기능은 Linux에서 지원되지 않으므로 다음 발표가있을 때까지 기다려야합니다.

지능적이고 강력한 방법으로 기계 학습을 사용하려면 SQL은 다음과 같은 솔루션을 사용합니다.

  1. revoscalepy
  2. microsoftml

revoscalepy 는 고성능 알고리즘, 컴퓨팅 및 원격 컨텍스트를 기반으로하는 새로운 라이브러리입니다. 기본적으로RevoScaleR을 기반으로 합니다 (R 서비스 패키지입니다)

microsoftml 은 기계 언어 알고리즘을 지원하는 Microsoft R 서버 패키지이며, Microsoft는 내부 기계 학습을 위해이 라이브러리를 개발했지만 수년간 개선되었으며 빠른 데이터 스트리밍, 대형 텍스트 변환 등을 지원합니다.

Linux 지원

기본적으로,이 빌드의 주된 목표는 Linux에서 제품을 릴리스하는 것입니다.이 빌드는 "Linux 및 Windows에서의 SQL 2017"이라는 이름으로 SQL을 빌드합니다. 여기에 "Linux on SQL"

  • 핵심 데이터베이스 엔진 기능
  • IPV6 지원
  • NFS 지원
  • 리눅스에서 광고 인증
  • 암호화 지원
  • Linux에 SSIS 패키지 설치 가능
  • 구성 도구 (명령 줄) 사용 가능 MSSQL-conf
  • 매끄럽고 무인 설치
  • Visual Studio 코드 용 SQL (VS 코드는 이미 Linux에서 사용 가능)
  • 크로스 플랫폼 스크립트 생성기

Linux에서 SQL에 대해 더 많이 알고 싶으면 [ 여기 ]로 전환 하십시오 .

참고 문헌

마침내

SQL Server에 대해 이야기하고 배울 점이 많습니다.이 기사의 다음 버전에서이 여정을 계속 진행하면서 즐기십시오. 제안 및 검색어는 언제나 환영합니다.