SQL 2017 17

SQL Server 2016 Tempdb 경합(contention) 최적화

SQL Server 2016 Tempdb 경합(contention) 최적화 · Version : SQL Server 2017, 2016, 2014 SQL Server에서 tempdb는 경합이 자주 발생하는 부분이므로 항상 모니터링의 주요 대상이다. SQL Server 2016에서는 최신 업데이트를 통해 tempdb file 및 trace flag 개선작업이 진행 되었다. [Object Allocation Contention] SQL Server에서 tempdb 구성시 일반적인 권장사항은 아래와 같다. 1. 여러 데이터 파일 생성 : CPU 코어당 최소 1개 이상으로 데이터 파일을 생성하며 최대8개의 파일로 구성한다.(필요에 따라 더 많이 생성할 수도 있다.) 모든 파일의 크기는 동일 해야한다. 2. SQ..

XEvent를 사용하여 Auto tuning 작업 모니터링

XEvent를 사용하여 Auto tuning 작업 모니터링 · Version : SQL Server 2017 SQL Server 2017 부터 Auto tuning 기능이 도입되어 사용자 쿼리에 대해 SQL plan change regression방식으로 쿼리의 플랜이 변경되었을때 변경 사항을 감지하고 더 나은 플랜을 사용하도록 자동 조정한다. SQL Server는 각 쿼리에 대해 마지막으로 성공한 플랜을 추적하고 기존의 플랜과 비교하여 마지막 실행 플랜이 더 좋다고 판단되는 경우 강제로 마지막 플랜으로 변경 한다. 이번 포스트에서는 XEvent를 활용하여 Auto tuning이 적용되어 강제로 플랜이 변경 되었을때 추적하는 방법에 대해서 알아본다. Automatic tuning process는 변경된 ..

SQL Server 2017 소규모 시스템에서 향상된 리소스 사용

SQL Server 2017 소규모 시스템에서 향상된 리소스 사용 · Version : SQL Server 2017 CU4 SQL Server는 소규모 컴퓨터에서 엔터프라이즈 서버까지 확장 할 수 있도록 설계된 데이터베이스이다. 일반적으로 데이터베이스는 많은 자원을 필요로 한다. 특히 CPU 및 메모리는 데이터베이스의 성능에 매우 중요한 요소이다. (물론 디스크 성능도 중요하다.) SQL Server 2017 CU4에서는 작은 메모리(2GB)에서도 SQL Server 성능이 향상될 수 있도록 개선 되었다. · Improvement: Improves the performance of SQL Server 2017 on smaller systems : https://support.microsoft.com/en..

SQL Server 2017에서 향상된 UDF 실행 계획

SQL Server 2017에서 향상된 UDF 실행 계획 · Version : SQL Server 202017 CU3 SQL Server 2017 CU3 이후 부터 UDF(User-Defined Function) 실행계획이 개선되어 사용자에게 좀 더 많은 정보를 보여주게 되었다. (필자가 글 을 쓰는 시점으로 최신 CU7까지 출시 되었다.) 이전에는 쿼리에 참조된 UDF를 사용할 때 쿼리 실행 시간의 상당 부분이 함수 내에서 발생하여도 쿼리 실행계획을 보고 쉽게 파악하기가 어려웠다. SQL Server 2017 CU3 이후 부터는UdfCpuTime과 UdfElaspsedTime의 두 가지 새로운 속성이 추가되어 사용자 정의 함수내에서 사용되는 리소스를 확인할 수 있게 되었다. 아래 스크립트는 테스트를 구..

SQL Linux에서 Job Agent 설치

SQL Linux에서 Job Agent 설치 · Version : ubuntu, SQL Server Linux SQL Server Linux에서Job Agent를 설치하는 방법에 대해서 알아본다. SQL Server Job Agent는 반복적인 작업을 예약하여 실행 할 수 있는 서비스이다. SQL Linux Job Agent를 설치하기에 앞서 update 명령을 사용하여 설치된 패키지를 최신버전으로 업데이트 할 수 있도록 한다. sudo apt-get update 패키지 동기화가 완료되면 아래 명령을 사용하여 SQL Server vNext 의 최신 버전을 설치한다. sudo apt-get install mssql-server 설치가 완료되었으며 update 명령을 사용하여 다시 한번 최신 버전을 동기화 ..

SQL Linux에서 Windows SQL 백업 파일 복원

SQL Linux에서 Windows SQL 백업 파일 복원 · Version : ubuntu, SQL Server Linux Windows SQL Server에서 생성한 백업 파일을 Linux SQL 에서 복원하는 방법에 대해서 알아본다. 기본적으로 Windows SQL Server에서 수행한 백업에서 Linux SQL Server에서 복원하는 방법은 Windows와 거의 유사하다. 다른점은 Windows와 Linux는 디렉터리 구조가 다르므로 RESTORE 명령과 함께 MOVE 옵션을 사용하여 디렉터리 경로를 입력하면 된다. (Windows에서도 물리적 위치를 변경할 경우 move 명령을 사용한다.- 결국 복원 방식은 동일함.) 편의상 실습은 SQL Linux에서 Adventurework2014.bak..

Linux에서 Network I/O 확인

Linux에서 Network I/O 확인 · Version : ubuntu SQL Server Linux 버전 출시로 MS SQL DBA분들이 Linux에 대한 관심이 많이 높아졌다. 이번 팁에서는 Linux에서 SQL Server를 사용할때 알아두면 좋은 리눅스 팁을 공유한다. 이번 포스트는 Linux에서 Network I/O를 확인하는 방법이다. [netstat]네트워크 통계의 약자인 netstat 명령어는Windows 사용자에게도 잘 알려져있는 명령이다. 사용방법은 Windows와 거의 동일하지만 Linux에서는 이 명령을 사용하면 더 많은 정보를 얻을 수 있다. netstat -i -i 옵션은 네트워크 인터페이스를 나열한다. 이 명령을 사용하면 인터페이스 이름과 보내고 받은 패킷을 확인할 수 있다..

SQL Linux에서traceflag 활성화

SQL Linux에서traceflag 활성화 · Version : ubuntu, SQL Server Linux SQL Server Linux에서traceflag 활성화 하는 방법에 대해서 알아본다. 기존 Windows 의 SQL Server에서 추적 플래그를 사용하려면 아래 두 가지 방법 중 하나를 사용할 수 있다.· DBCC Traceon (traceflag, -1) (https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-transact-sql)· SQL Server Configuration manager SQL Linux에서 추적플래그를 전역으로 활성 또는 비활성화 하려면 mssql-conf 라는 SQL Se..

SQL Linux에서 dump file 위치 변경

SQL Linux에서 dump file 위치 변경 · Version : ubuntu, SQL Server Linux SQL Server Linux에서 dump file 위치 변경하는 방법에 대해서 알아본다. Dump file 에 대한 경로 변경은 /opt/mssql/bin 폴더에 있는 mssql-conf 스크립트 내용을 변경하여 dump file 위치를 변경할 수 있다. 기본적으로 덤프 디렉토리는 SQL Server를 설치할때 설정된 /var/opt/mssql/log 이다. 아래 명령어를 이용하여 해당 디렉토리에 대한 파일을 확인할 수 있다. sudo –lrt /var/opt/mssql/log 이번 실습에서는 /tmp/dump 라는 디렉토리를 생성하고 dump file의 경로를 변경한다. 우선 아래 스크..

SQL Linux에서 Port 변경

SQL Linux에서 Port 변경 · Version : ubuntu, SQL Server Linux SQL Server Linux에서Port를 변경하는 방법에 대해서 알아본다. SQL Linux의 경우도 기본적으로 1433 포트를 사용하고 있다. 보안 또는 다른 이슈로 포트 번호를 변경해야 하는 이슈가 있을때 /opt/mssql/bin 폴더에 있는 mssql-conf 스크립트 내용을 변경하여 Port 를 변경할 수 있다. SQL Linux에 접속하여 root 권한을 획득 한다. 많은 사람들이 이미 기본포트가 1433인것을 알고 있지만 실제 사용하는 포트를 확인하기 위해 netstat 명령을 사용하여 서버에서 실행중인 모든 연결을 확인한다. sudo su netstat -tulpn 기본적으로SQL Ser..