데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

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-us/help/4078095/improves-performance-of-sql-server-2017-on-smaller-systems

 

[Default Max Worker Threads]

이전에는 기본 최대 작업자 스레드 계산에서 RAM 고려하지 않는 디자인이었다기본 워커 수를 계산하는 공식은 아래와 같다.

Default-Worker-Count = (starting count x86=256 : x64=512) + (## of workers per CPU on the system [x86=8 : x64=16])

 

SQL Server 2017 CU4에서 변경한 사항은 최대 작업자 스레드를 계산할때, RAM 사이즈를 고려하여, RAM 크기가 제한된 시스템에서는 X64 카운트는 2 나누어져 기본 최대 작업자 수를 낮춰 준다. (작업자당 2MB 이하).

·         Sp_configure에서 ‘max workers’ 설정은 시스템 값을 무시할때 사용

·         기본값128 이상으로 설정하는 것을 권장

·         Sys.dm_os_sys_inof 활성 가능한 최대 작업자 설정 값을 출력

 

[CLR Garbage Collection]

CLR 가비지 수집은 클리이언트 모드서버 모드가 있다. (SQL Server 기본값은 서버 모드 이다.) 서버 모드 가비지 수집은 시스템 CPU 수를 기반으로 CLR힙에 대한 공간을 예약한다. SQLCLR 시작되면 서버 모드에서는  가비지 콜렉션을 초기화 하기위해 대량의 메모리 공간을 할당한다이러한 대규모 할당은 운영체제가 스와핑 또는 기타 활동을 유발 시킬  있다클라이언트 모드 가비지 콜렉션은 서버모드의 병렬처리  CPU 활동을 줄여 메모리와 리소스를  차지 한다. SQL Server 2017 CU4에서 변경한 사항은 제한된 소규모 시스템에서 클라이언트 가비지 수집 모드를 사용하여 서버 모드의 가비지 수집시 발생하는 추가 오버헤드를 제거하는 것이다.

 

[참고자료]

https://blogs.msdn.microsoft.com/bobsql/2018/03/18/sql-server-2017-improved-resource-usage-on-smaller-machines/

 

 

2018-06-12 / Sungwook Kang / http://sqlmvp.kr

 

SQL Server, MS SQL,  max worker threads, CLR, garbage collection, SQL 2017, 가비지 콜렉션워커스레드작업자 스레드



출처: https://sqlmvp.tistory.com/1252?category=618825 [Database Lab]
No. Subject Author Date Views
2133 SQL Server 네이티브 컴파일된 저장 프로시저 성능 모니터링 jevida(강성욱) 2019.03.25 458
» SQL Server 2017 소규모 시스템에서 향상된 리소스 사용 jevida(강성욱) 2019.03.25 265
2131 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 413
2130 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 399
2129 SQL Server 2016 향상된 복제 기능 – 배포 데이터베이스 클린업 향상 jevida(강성욱) 2019.03.25 300
2128 SQL Server 2017향상된 복제 기능 – 배포 데이터베이스의 AG 지원 jevida(강성욱) 2019.03.25 455
2127 SQL Server 2017 향상된 복제 기능 - 복제에이전트 프로필 매개변수의 동적 새로 고침 jevida(강성욱) 2019.03.25 499
2126 SQL Server update on Docker jevida(강성욱) 2019.03.25 391
2125 SQL Server 2017에서 향상된 UDF 실행 계획 jevida(강성욱) 2019.03.25 355
2124 ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL) jevida(강성욱) 2019.03.25 511
2123 Run the SQL Server 2017 with Docker jevida(강성욱) 2019.03.25 436
2122 SQL Server Configuration Manager 실행 오류 (WMI 공급자 연결 오류) jevida(강성욱) 2019.03.25 478
2121 BULK INSERT 동시에 여러개 실행 향지 2019.01.30 871
2120 대용량 데이터 조인에 대한 고민 ( Hash Join VS Nested Loop Join ) 향지 2018.04.04 4314
2119 How to check if Azure SQL is using In-Memory jevida(강성욱) 2018.03.31 3238
2118 MSSQL-CLI를 활용한 크로스플랫폼에서 SQL Server 관리하기 jevida(강성욱) 2018.03.31 3555
2117 SSMS – Search for execution plan jevida(강성욱) 2018.03.31 3734
2116 SQL Server Parallelism and Wait change (CXAPCKET, CXCONSUMER) jevida(강성욱) 2018.03.31 3958
2115 SQL Server Statistics Update row sampling rate and histogram step jevida(강성욱) 2018.03.31 3648
2114 SSMS – AlwaysOn Group Latency report jevida(강성욱) 2018.03.31 3388





XE Login