새로 추가되었거나 최근에 업데이트됨: 관계형 데이터베이스 문서New and Recently Updated: Relational Databases docs

Microsoft에서는 거의 매일 Docs.Microsoft.com 설명서 웹 사이트에서 기존 문서 일부를 업데이트합니다.Nearly every day Microsoft updates some of its existing articles on its Docs.Microsoft.com documentation website. 이 문서에는 최근 업데이트된 문서에서 발췌한 내용이 표시됩니다.This article displays excerpts from recently updated articles. 새 문서로 연결되는 링크도 나열될 수 있습니다.Links to new articles might also be listed.

이 문서는 주기적으로 다시 실행되는 프로그램에 의해 생성됩니다.This article is generated by a program that is rerun periodically. 경우에 따라 발췌한 내용의 형식이 완전하지 않거나 원본 문서의 표식(markdown)으로 표시될 수 있습니다.Occasionally an excerpt can appear with imperfect formatting, or as markdown from the source article. 이미지는 여기에 표시되지 않습니다.Images are never displayed here.

다음 날짜 범위 및 주제에 대한 최근 업데이트가 보고됩니다.Recent updates are reported for the following date range and subject:

  • 업데이트 날짜 범위:   2017-09-28  부터   2017-12-02Date range of updates:   2017-09-28   -to-   2017-12-02
  • 주제 영역:   관계형 데이터베이스Subject area:   Relational Databases.

 

최근에 만든 새로운 문서New Articles Created Recently

다음 링크는 최근에 추가된 새로운 문서로 이동합니다.The following links jump to new articles that have been added recently.

  1. SSMS XEvent Profiler 사용Use the SSMS XEvent Profiler
  2. SQL 마법사로 플랫 파일 가져오기Import Flat File to SQL Wizard

 

업데이트된 문서의 발췌 내용Updated Articles with Excerpts

이 섹션에는 최근에 많이 업데이트된 문서에서 발췌한 업데이트 내용이 표시됩니다.This section displays the excerpts of updates gathered from articles that have recently experienced a large update.

여기에 표시된 발췌 내용은 적절한 의미 체계 맥락과 분리되어 표시됩니다.The excerpts displayed here appear separated from their proper semantic context. 또한 발췌 내용은 때때로 실제 문서에서 이 내용의 주변에 있는 중요한 markdown 구문과도 분리되어 표시됩니다.Also, sometimes an excerpt is separated from important markdown syntax that surrounds it in the actual article. 따라서 이러한 발췌 내용은 일반적인 지침을 제공하기 위한 것입니다.Therefore these excerpts are for general guidance only. 이 발췌 내용에서는 관심 내용을 클릭하여 실제 문서를 참조할 가치가 있을지 여부만 파악할 수 있습니다.The excerpts only enable you to know whether your interests warrant taking the time to click and visit the actual article.

따라서 이러한 발췌 내용에서 코드를 복사하거나 발췌 내용을 정확한 사실로 간주하지 마세요.For these and other reasons, do not copy code from these excerpts, and do not take as exact truth any text excerpt. 대신 실제 문서를 참조하세요.Instead, visit the actual article.

 

최근 업데이트된 문서의 간결한 목록Compact List of Articles Updated Recently

이 간결한 목록에는 발췌 섹션에 나열된 모든 업데이트된 문서로 연결되는 링크가 있습니다.This compact list provides links to all the updated articles that are listed in the Excerpts section.

  1. tempdb 데이터베이스tempdb Database
  2. 메모리 관리 아키텍처 가이드Memory Management Architecture Guide
  3. 통계Statistics
  4. sp_server_diagnostics (Transact-SQL)sp_server_diagnostics (Transact-SQL)

 

 

1.   tempdb 데이터베이스1.   tempdb Database

업데이트됨: 2017-11-20          (다음)Updated: 2017-11-20           (Next)

 

tempdb 성능 최적화Optimizing tempdb performance

tempdb 데이터베이스의 크기와 물리적인 배치는 시스템 성능에 영향을 줄 수 있습니다.The size and physical placement of the tempdb database can affect the performance of a system. 예를 들어 tempdb에 대해 정의된 크기가 너무 작으면 사용자가 ..!NCLUDE-NotShown--ssNoVersion--../../includes/ssnoversion-md.md)] 인스턴스를 다시 시작할 때마다 시스템의 처리 로드 중 일부가 작업을 지원하는 데 필요한 크기로 tempdb를 자동 증가시키기 위해 소모될 수 있습니다.For example, if the size that is defined for tempdb is too small, part of the system-processing load may be taken up with autogrowing tempdb to the size required to support the workload every time you restart the instance of ..!NCLUDE-NotShown--ssNoVersion--../../includes/ssnoversion-md.md)].

가능한 경우 [database instant file initialization--../../relational-databases/databases/database-instant-file-initialization.md)를 사용하여 데이터 파일 확장 작업의 성능을 향상시킵니다.If possible, use [database instant file initialization--../../relational-databases/databases/database-instant-file-initialization.md) to improve the performance of data file grow operations.

환경의 일반적인 작업량을 수용할 수 있는 값으로 파일 크기를 설정하여 모든 tempdb 파일에 충분한 공간을 미리 할당합니다.Preallocate space for all tempdb files by setting the file size to a value large enough to accommodate the typical workload in the environment. 이렇게 하면 tempdb가 너무 자주 확장되어 성능에 영향을 주는 것을 방지할 수 있습니다.This prevents tempdb from expanding too frequently, which can affect performance. tempdb 데이터베이스가 자동 증가되도록 설정해야 하지만 이 기능은 예기치 않은 예외 발생 시 디스크 공간을 늘리기 위해 사용해야 합니다.The tempdb database should be set to autogrow, but this should be used to increase disk space for unplanned exceptions.

..!NCLUDE-NotShown--ssNoVersion--../../includes/ssnoversion-md.md)]가 여유 공간이 더 많은 파일에서 할당을 선호하는 비례 채우기 알고리즘을 사용하기 때문에 데이터 파일은 각 [filegroup--../../relational-databases/databases/database-files-and-filegroups.md#filegroups) 내에서 동일한 크기여야 합니다.Data files should be of equal size within each [filegroup--../../relational-databases/databases/database-files-and-filegroups.md#filegroups), as ..!NCLUDE-NotShown--ssNoVersion--../../includes/ssnoversion-md.md)] uses a proportional-fill algorithm that favors allocations in files with more free space. tempdb를 동일한 크기의 여러 데이터 파일로 나누면 tempdb를 사용하는 작업에서 높은 수준의 병렬 효율성을 얻을 수 있습니다.Dividing tempdb into multiple data files of equal size provides a high degree of parallel efficiency in operations that use tempdb.

파일 증가분을 적정 크기로 설정하여 tempdb 데이터베이스 파일 증가 단위가 너무 작지 않게 합니다.Set the file growth increment to a reasonable size to avoid the tempdb database files from growing by too small a value. tempdb에 기록되는 데이터 양에 비해 파일 증가 단위가 너무 작으면 tempdb가 지속적으로 확장되어If the file growth is too small, compared to the amount of data that is being written to tempdb, tempdb may have to constantly expand. 성능에 영향을 줍니다.This will affect performance.

현재 tempdb 크기 및 성장 매개 변수를 확인하려면 다음 쿼리를 사용합니다.To check current tempdb size and growth parameters, use the following query:

 SELECT name AS FileName,
    size*1.0/128 AS FileSizeinMB,
    CASE max_size
        WHEN 0 THEN 'Autogrowth is off.'
        WHEN -1 THEN 'Autogrowth is on.'

 

 


2.   메모리 관리 아키텍처 가이드2.   Memory Management Architecture Guide

업데이트됨: 2017-11-28          (이전 | 다음)Updated: 2017-11-28           (Previous | Next)

 

이전 버전의 SQL Server(..!NCLUDE-NotShown--ssVersion2005--../includes/ssversion2005-md.md)], ..!NCLUDE-NotShown--ssKatmai--../includes/ssKatmai-md.md)] 및 ..!NCLUDE-NotShown--ssKilimanjaro--../includes/ssKilimanjaro-md.md)])에서 메모리 할당은 5가지 메커니즘을 사용하여 수행되었습니다.In earlier versions of SQL Server (..!NCLUDE-NotShown--ssVersion2005--../includes/ssversion2005-md.md)], ..!NCLUDE-NotShown--ssKatmai--../includes/ssKatmai-md.md)] and ..!NCLUDE-NotShown--ssKilimanjaro--../includes/ssKilimanjaro-md.md)]), memory allocation was done using five different mechanisms:

  • 단일 페이지 할당자(SPA)는 ..!NCLUDE-NotShown--ssNoVersion--../includes/ssnoversion-md.md)] 프로세스에서 8KB 이하인 메모리 할당만 포함합니다.Single-page Allocator (SPA), including only memory allocations that were less than, or equal to 8-KB in the ..!NCLUDE-NotShown--ssNoVersion--../includes/ssnoversion-md.md)] process. max server memory(MB)min server memory(MB) 구성 옵션은 SPA가 사용한 실제 메모리의 한계를 결정했습니다.The max server memory (MB) and min server memory (MB) configuration options determined the limits of physical memory that the SPA consumed. 버퍼 풀은 SPA의 메커니즘이자 동시에 가장 큰 단일 페이지 할당 소비자였습니다.THe buffer pool was simultaneously the mechanism for SPA, and the largest consumer of single-page allocations.
  • 다중 페이지 할당자(MPA): 8KB 이상을 요청하는 메모리 할당입니다.Multi-Page Allocator (MPA), for memory allocations that request more than 8-KB.
  • CLR 할당자: SQL CLR 힙 및 CLR 초기화 중에 생성되는 전역 할당을 포함합니다.CLR Allocator, including the SQL CLR heaps and its global allocations that are created during CLR initialization.
  • ..!NCLUDE-NotShown--ssNoVersion--../includes/ssnoversion-md.md)] 프로세스에서 [thread stacks--../relational-databases/memory-management-architecture-guide.md#stacksizes)에 대한 메모리 할당입니다.Memory allocations for [thread stacks--../relational-databases/memory-management-architecture-guide.md#stacksizes) in the ..!NCLUDE-NotShown--ssNoVersion--../includes/ssnoversion-md.md)] process.
  • 직접 Windows 할당(DWA): Windows에 직접 요청된 메모리 할당입니다.Direct Windows allocations (DWA), for memory allocation requests made directly to Windows. 여기에는 Windows 힙 사용 및 ..!NCLUDE-NotShown--ssNoVersion--../includes/ssnoversion-md.md)] 프로세스로 로드되는 모듈에 의한 직접 가상 할당이 포함됩니다.These include Windows heap usage and direct virtual allocations made by modules that are loaded into the ..!NCLUDE-NotShown--ssNoVersion--../includes/ssnoversion-md.md)] process. 이러한 메모리 할당 요청의 예로는 확장 저장 프로시저 DLL의 할당, 자동화 프로시저(sp_OA 호출)를 사용하여 만든 개체 및 연결된 서버 공급자의 할당이 있습니다.Examples of such memory allocation requests include allocations from extended stored procedure DLLs, objects that are created by using Automation procedures (sp_OA calls), and allocations from linked server providers.

..!NCLUDE-NotShown--ssSQL11--../includes/sssql11-md.md)]부터 단일 페이지 할당, 다중 페이지 할당 및 CLR 할당은 모두 "임의 크기" 페이지 할당자에 통합되며 max server memory (MB)min server memory (MB) 구성 옵션에 의해 제어되는 메모리 제한에 포함됩니다.Starting with ..!NCLUDE-NotShown--ssSQL11--../includes/sssql11-md.md)], Single-lage allocations, Multi-Page allocations and CLR allocations are all consolidated into a "Any size" Page Allocator, and it's included in memory limits that are controlled by max server memory (MB) and min server memory (MB) configuration options. 이 변경으로 인해 ..!NCLUDE-NotShown--ssNoVersion--../includes/ssnoversion-md.md)] 메모리 관리자를 통과하는 모든 메모리 요구 사항에 대해 보다 정확한 크기 조정 기능이 제공되었습니다.This change provided a more accurate sizing ability for all memory requirements that go through the ..!NCLUDE-NotShown--ssNoVersion--../includes/ssnoversion-md.md)] memory manager.

 

 


3.   통계3.   Statistics

업데이트됨: 2017-11-27          (이전 | 다음)Updated: 2017-11-27           (Previous | Next)

 

참고

NCLUDE - NotShown - ssNoVersion - .. / .. / includes / ssnoversion - md.md)]의 히스토그램은 통계 개체의 키 열 집합에 있는 첫 번째 열의 단일 열에 대해서만 빌드됩니다.Histograms in ..!NCLUDE-NotShown--ssNoVersion--../../includes/ssnoversion-md.md)] are only built for a single columnΓÇöthe first column in the set of key columns of the statistics object.

쿼리 최적화 프로그램에서는 히스토그램을 만들기 위해 열 값을 정렬하고 고유한 각 열 값과 일치하는 값의 수를 계산한 다음 열 값을 최대 200개의 연속적인 히스토그램 단계로 집계합니다.To create the histogram, the query optimizer sorts the column values, computes the number of values that match each distinct column value and then aggregates the column values into a maximum of 200 contiguous histogram steps. 각 히스토그램 단계의 범위는 열 값에서 상한 열 값까지입니다.Each histogram step includes a range of column values followed by an upper bound column value. 범위는 경계 값 자체를 제외하고 경계 값 사이의 모든 가능한 열 값을 포함합니다.The range includes all possible column values between boundary values, excluding the boundary values themselves. 정렬된 열 값 중 가장 낮은 값은 첫 번째 히스토그램 단계의 상한 값입니다.The lowest of the sorted column values is the upper boundary value for the first histogram step.

자세히 살펴보면 NCLUDE-NotShown - ssNoVersion - .. / .. / includes / ssnoversion-md.md)]는 다음과 같은 세 단계로 정렬된 열 값 집합에서 히스토그램을 만듭니다.In more detail, ..!NCLUDE-NotShown--ssNoVersion--../../includes/ssnoversion-md.md)] creates the histogram from the sorted set of column values in three steps:

  • 히스토그램 초기화: 첫 번째 단계에서 정렬된 집합의 시작 부분에서 시작하는 일련의 값이 처리되고 range_high_key, equal_rows, range_rowsdistinct_range_rows의 최대 200개 값이 수집됩니다(이 단계에서 range_rowsdistinct_range_rows는 항상 0임).Histogram initialization: In the first step, a sequence of values starting at the beginning of the sorted set is processed, and up to 200 values of range_high_key, equal_rows, range_rows, and distinct_range_rows are collected (range_rows and distinct_range_rows are always zero during this step). 모든 입력이 모두 소모되거나 200개의 값이 발견되면 첫 번째 단계가 종료됩니다.The first step ends either when all input has been exhausted, or when 200 values have been found.
  • 버킷 병합으로 스캔: 통계 키의 맨 앞줄에 있는 각 추가 값은 두 번째 단계에서 정렬된 순서로 처리됩니다. 각 연속 값은 마지막 범위에 추가되거나 끝에 있는 새 범위가 작성됩니다(입력 값이 정렬되어 있기 때문에 가능합니다).Scan with bucket merge: Each additional value from the leading column of the statistics key is processed in the second step, in sorted order; each successive value is either added to the last range or a new range at the end is created (this is possible because the input values are sorted). 새 범위가 만들어지면 한 쌍의 기존 인접 범위가 단일 범위로 축소됩니다.If a new range is created, then one pair of existing, neighboring ranges is collapsed into a single range. 이러한 범위 쌍은 정보 손실을 최소화하기 위해 선택됩니다.This pair of ranges is selected in order to minimize information loss. 이 메서드는 히스토그램의 단계 수를 최소화하면서 경계 값 간의 차이를 최대화하기 위해 최대 차이 알고리즘을 사용합니다.This method uses a maximum difference algorithm to minimize the number of steps in the histogram while maximizing the difference between the boundary values. 범위를 축소한 후 단계 수는 이 단계에서 200으로 유지됩니다.The number of steps after collapsing ranges stays at 200 throughout this step.

 

 


4.   sp_server_diagnostics(Transact-SQL)4.   sp_server_diagnostics (Transact-SQL)

업데이트됨: 2017-11-21          (이전)Updated: 2017-11-21           (Previous)

 

아래의 예제 쿼리는 테이블의 요약 출력을 읽습니다.The example query below reads the summary output from the table:

SELECT create_time,
       component_name,
       state_desc
FROM SpServerDiagnosticsResult;

아래의 예제 쿼리는 테이블의 각 구성 요소의 자세한 출력을 읽습니다.The example query below reads some of the detailed output from the each component in the table:

-- system
select data.value('(/system/@systemCpuUtilization)[1]','bigint') as 'System_CPU',
   data.value('(/system/@sqlCpuUtilization)[1]','bigint') as 'SQL_CPU',
   data.value('(/system/@nonYieldingTasksReported)[1]','bigint') as 'NonYielding_Tasks',
   data.value('(/system/@pageFaults)[1]','bigint') as 'Page_Faults',
   data.value('(/system/@latchWarnings)[1]','bigint') as 'Latch_Warnings',
   data.value('(/system/@BadPagesDetected)[1]','bigint') as 'BadPages_Detected',
   data.value('(/system/@BadPagesFixed)[1]','bigint') as 'BadPages_Fixed'
from SpServerDiagnosticsResult
where component_name like 'system'
go

-- Resource Monitor
select data.value('(./Record/ResourceMonitor/Notification)[1]', 'VARCHAR(max)') AS [Notification],
    data.value('(/resource/memoryReport/entry[@description=''Working Set'']/@value)[1]', 'bigint')/1024 AS [SQL_Mem_in_use_MB],
    data.value('(/resource/memoryReport/entry[@description=''Available Paging File'']/@value)[1]', 'bigint')/1024 AS [Avail_Pagefile_MB],
    data.value('(/resource/memoryReport/entry[@description=''Available Physical Memory'']/@value)[1]', 'bigint')/1024 AS [Avail_Physical_Mem_MB],
    data.value('(/resource/memoryReport/entry[@description=''Available Virtual Memory'']/@value)[1]', 'bigint')/1024 AS [Avail_VAS_MB],
    data.value('(/resource/@lastNotification)[1]','varchar(100)') as 'LastNotification',
    data.value('(/resource/@outOfMemoryExceptions)[1]','bigint') as 'OOM_Exceptions'
from SpServerDiagnosticsResult
where component_name like 'resource'
go

-- Nonpreemptive waits

유사한 문서Similar Articles

이 섹션에는 공용 GitHub.com 리포지토리 내의 다른 주제 영역에서 최근에 업데이트된 문서와 유사한 문서가 나와 있습니다. MicrosoftDocs/sql-docsThis section lists very similar articles for recently updated articles in other subject areas, within our public GitHub.com repository: MicrosoftDocs/sql-docs.

새로 추가되었거나 최근에 업데이트된 문서가 있는 주제 영역Subject areas which do have new or recently updated articles

새로 추가되었거나 최근에 업데이트된 문서가 없는 주제 영역Subject areas which have no new or recently updated articles