SQL Server New Feature 강의

soyoung·2022년 12월 21일
0

SQL Server

목록 보기
3/3
post-thumbnail
  • 이장래 강사님 (jangrae@gmail.com)
  • SQL Server Version: 2022 <- 2019 <- 2017 <- 2016 <- 2014 ...

1. 최근에 추가된 또는 최신 함수들

  • CONCAT: 구분자 사용 불가능
  • CONCAT_WS: 구분자 사용 가능 (2017+)
  • CONCAT은 데이터형식을 고민하지 않고 데이터를 합칠 수 있다.
  • CHOOSE: 나열된 값 중에서 지정한 위치의 값 반환 ... CHOOSE(NTILE(), , ,)

  • LTRIM, RTRIM, TRIM: 앞/뒤 공백 제거 -> 앞/뒤 특정 문자 제거 (2022+)

     TRIM(LEADING '$# ' FROM @str1)
      TRIM(TRAILING '$# ' FROM @str1)
      TRIM(BOTH '$# ' FROM @str1)
  • TRY CONVERT: 변환 오류 시 NULL 반환

  • OFFSET ... FETCH: 몇번부터 몇번까지의 행을 불러오는 것 (ROW_NUMBER 보다 성능적으로도 우수)

    OFFSET 5 ROWS
     FETCH NEXT 5 ROWS ONLY
    
     5개 행을 건너뛰고 
     5개 행을 가져와
  • GREATEST, LEAST: 행 단위에서 가장 큰 값, 가장 작은 값 반환 (2022+)

  • STRING_AGG: 문자열 집계 (2017+)

  • STRING_SPLIT: 구분자가 있는 문자열을 행으로 분리 (2016+)

  • STRING_SPLIT: Ordinal 옵션 기능 추가 (2022+)

    FROM STRING_SPLIT(@STR, '/', 1)
  • DATETRUNC: 지정한 위치까지 날짜와 시간 표시 (2022+)

  • IS DISTINCT FROM, IS NOT DISTINCT FROM: 상이한 값 또는 상이하지 않는 값 확인, 단 NULL을 포함하여 비교 가능 (2022+)

     SELECT *
      FROM #TABLE
      WHERE COL1 IS DISTINCT FROM 50
    
      다음 구문과 동일한 의미
      WHERE ISNULL(COL1,0) <> 50
  • WINDOWS: OVER절에서 창 함수가 적용되기 전 행 집합의 분할 및 순서 결정 (2022+)

     SELECT *
    	   , RANK() OVER win AS col1
           , DENSE_RANK() OVER win AS col2
           , NTILE(3) OVER win AS col3
      FROM #TABLE
      WHERE 지역 = 'ANSAN'
      WINDOW win AS (PARTITION BY 성별 ORDER BY 포인트 DESC);
  • SELECT INTO ... ON: 파일그룹을 지정하여 저장

    SELECT *
     INTO TABLE2 ON FILEGROUP1
     FROM TABLE1

2. 스칼라 UDF 인라인 처리 (2019+)

  • 과거 버전에서 스칼라 사용자 정의 함수 사용 시 결과 Row 수 만큼 함수를 타게 된다.
  • 2019년+ 버전 부터는 쿼리를 재해석하여 필요 테이블과 내부 조인 처리하여 스칼라 함수를 타게 해준다.
  • VIEW에서는 버전과 상관 없이 쿼리를 재해석하여 필요한 테이블만 타도록 처리해준다.

3. 테이블 변수 지연 컴파일 (2022+)

  • 과거 버전에서 테이블 변수(@table)는 테이블 통계 관리가 되지 않는다. 제대로된 실행 계획을 타지 않는다.
  • 2022년+ 버전 부터는 테이블 변수의 통계가 관리되고 정상 실행 계획을 탄다. (임시 테이블 동작과 동일해짐)

4. 향상된 인덱스 작업 (2019+)

  • 다시 시작 가능한 인덱스 REBUILD 작업 (RESUMABLE = ON)
  • 단, Enterprise Edition에서 사용 가능 (ONLINE = ON, RESUMABLE = ON)
  • WAIT_AT_LOW_PRIORITY 옵션

5. 설치 화면 변경 (2022+)

  • 데이터베이스 엔진 구성: MaxDOP, 메모리
  • MaxDOP: 최대 병렬 처리 수준 정의

6. PolyBase를 사용한 데이터 가상화

7. 가속 데이터베이스 복구 프로세스 (ADR)

  • SET ACCELERATED_DATABASE_RECOVERY = ON

0개의 댓글