locks 서버 구성 옵션 구성Configure the locks Server Configuration Option

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목에서는 또는 을 사용하여 SQL Server 2017SQL Server 2017 에서 SQL Server Management StudioSQL Server Management Studio locks Transact-SQLTransact-SQL서버 구성 옵션을 구성하는 방법에 대해 설명합니다.This topic describes how to configure the locks server configuration option in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. locks 옵션은 사용 가능한 최대 잠금 수를 설정하여 SQL Server 데이터베이스 엔진SQL Server Database Engine 에서 잠금에 사용하는 메모리 용량을 제한합니다.The locks option sets the maximum number of available locks, thereby limiting the amount of memory the SQL Server 데이터베이스 엔진SQL Server Database Engine uses for them. 기본 설정은 0이며 데이터베이스 엔진Database Engine 이 시스템 요구 사항의 변화를 기준으로 동적으로 잠금 구조를 할당하거나 할당 취소할 수 있습니다.The default setting is 0, which allows the 데이터베이스 엔진Database Engine to allocate and deallocate lock structures dynamically, based on changing system requirements.

중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature will be removed in a future version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 가능한 한 빨리 수정하세요.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

항목 내용In This Topic

시작하기 전 주의 사항Before You Begin

권장 사항Recommendations

  • 이 옵션은 고급 옵션으로, 숙련된 데이터베이스 관리자나 공인된 SQL ServerSQL Server 기술 지원 담당자만 변경해야 합니다.This option is an advanced option and should be changed only by an experienced database administrator or certified SQL ServerSQL Server technician.

  • locks 를 0으로 설정한 상태로 서버를 시작하면 잠금 관리자가 초기 2,500개의 잠금 구조 풀에 사용할 충분한 메모리를 데이터베이스 엔진Database Engine 으로부터 확보합니다.When the server is started with locks set to 0, the lock manager acquires sufficient memory from the 데이터베이스 엔진Database Engine for an initial pool of 2,500 lock structures. 잠금 풀을 모두 사용하면 풀에 사용할 추가 메모리를 확보합니다.As the lock pool is exhausted, additional memory is acquired for the pool.

    일반적으로 데이터베이스 엔진Database Engine 메모리 풀에서 사용 가능한 잠금 풀에 메모리가 더 많이 필요하고 컴퓨터 메모리를 더 사용할 수 있는 경우 최대 서버 메모리 임계값에 도달하지 않았으면 데이터베이스 엔진Database Engine 은 잠금 요청을 만족시킬 수 있도록 동적으로 메모리가 할당됩니다.Generally, if more memory is required for the lock pool than is available in the 데이터베이스 엔진Database Engine memory pool, and more computer memory is available (the max server memory threshold has not been reached), the 데이터베이스 엔진Database Engine allocates memory dynamically to satisfy the request for locks. 그러나 이 메모리 할당으로 인해 운영 체제 수준에서 페이징이 발생하는 경우, 예를 들어 SQL ServerSQL Server 인스턴스와 같은 컴퓨터에서 실행되는 다른 응용 프로그램이 이 메모리를 사용하면 잠금 공간이 추가로 할당되지 않습니다.However, if allocating that memory would cause paging at the operating system level (for example, if another application is running on the same computer as an instance of SQL ServerSQL Server and using that memory), more lock space is not allocated. 동적 잠금 풀은 데이터베이스 엔진Database Engine에 할당된 메모리의 60% 이상은 확보하지 못합니다.The dynamic lock pool does not acquire more than 60 percent of the memory allocated to the 데이터베이스 엔진Database Engine. 잠금 풀이 데이터베이스 엔진Database Engine인스턴스에 의해 확보된 메모리의 60%에 도달하거나 컴퓨터에 더 이상 사용 가능한 메모리가 없는 경우 잠금에 대한 요청을 추가하면 오류가 발생됩니다.After the lock pool has reached 60 percent of the memory acquired by an instance of the 데이터베이스 엔진Database Engine, or no more memory is available on the computer, further requests for locks generate an error.

    SQL ServerSQL Server 가 잠금을 동적으로 사용하는 것이 권장 구성입니다.Allowing SQL ServerSQL Server to use locks dynamically is the recommended configuration. 그러나 locks 를 설정하여 잠금 리소스를 동적으로 할당하는 SQL ServerSQL Server 의 기능을 무시할 수 있습니다.However, you can set locks and override the ability of SQL ServerSQL Server to allocate lock resources dynamically. locks 가 0 이외의 값으로 설정되면 데이터베이스 엔진Database Enginelocks에 지정된 값보다 많은 잠금을 할당할 수 없습니다.When locks is set to a value other than 0, the 데이터베이스 엔진Database Engine cannot allocate more locks than the value specified in locks. SQL ServerSQL Server 에서 사용할 수 있는 잠금 수가 초과되었다는 메시지가 표시되면 이 값을 늘립니다.Increase this value if SQL ServerSQL Server displays a message that you have exceeded the number of available locks. 각 잠금은 잠금 하나당 96바이트의 메모리를 사용하므로 이 값을 늘리면 서버에서 전용으로 사용하는 메모리 양을 늘려야 합니다.Because each lock consumes memory (96 bytes per lock), increasing this value can require increasing the amount of memory dedicated to the server.

  • 또한 locks 옵션은 잠금 에스컬레이션이 수행될 때 영향을 줍니다.The locks option also affects when lock escalation occurs. locks 가 0으로 설정된 경우 현재 잠금 구조에서 사용되는 메모리가 데이터베이스 엔진Database Engine 메모리 풀의 40%에 도달하면 잠금 에스컬레이션이 발생합니다.When locks is set to 0, lock escalation occurs when the memory used by the current lock structures reaches 40 percent of the 데이터베이스 엔진Database Engine memory pool. locks 가 0으로 설정되지 않은 경우 잠금 수가 locks에 지정된 값의 40%에 도달하면 잠금 에스컬레이션이 수행됩니다.When locks is not set to 0, lock escalation occurs when the number of locks reaches 40 percent of the value specified for locks.

보안Security

사용 권한Permissions

매개 변수 없이 또는 첫 번째 매개 변수만 사용하여 sp_configure 를 실행할 수 있는 권한은 기본적으로 모든 사용자에게 부여됩니다.Execute permissions on sp_configure with no parameters or with only the first parameter are granted to all users by default. 구성 옵션을 변경하거나 RECONFIGURE 문을 실행하는 두 매개 변수를 사용하여 sp_configure 를 실행하려면 사용자에게 ALTER SETTINGS 서버 수준 권한이 있어야 합니다.To execute sp_configure with both parameters to change a configuration option or to run the RECONFIGURE statement, a user must be granted the ALTER SETTINGS server-level permission. sysadminserveradmin 고정 서버 역할은 ALTER SETTINGS 권한을 암시적으로 보유하고 있습니다.The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

SQL Server Management Studio 사용Using SQL Server Management Studio

잠금 옵션을 구성하려면To configure the locks option

  1. 개체 탐색기에서 서버를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.In Object Explorer, right-click a server and select Properties.

  2. 고급 노드를 클릭합니다.Click the Advanced node.

  3. 병렬 처리아래에 원하는 잠금 옵션 값을 입력합니다.Under Parallelism, type the desired value for the locks option.

    잠금 옵션을 사용하여 SQL ServerSQL Server 가 잠금에 사용하는 메모리 양을 제한하는 최대 사용 가능 잠금 수를 설정할 수 있습니다.Use the locks option to set the maximum number of available locks, thereby limiting the amount of memory SQL ServerSQL Server uses for them.

Transact-SQL 사용Using Transact-SQL

잠금 옵션을 구성하려면To configure the locks option

  1. 데이터베이스 엔진Database Engine에 연결합니다.Connect to the 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.From the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute. 이 예에서는 sp_configure 를 통해 locks 옵션 값을 20000으로 설정하여 모든 사용자가 사용할 수 있는 잠금 수를 설정하는 방법을 보여 줍니다.This example shows how to use sp_configure to set the value of the locks option to set the number of locks available for all users to 20000.

Use AdventureWorks2012 ;  
GO  
sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
sp_configure 'locks', 20000;  
GO  
RECONFIGURE;  
GO  

자세한 내용은 서버 구성 옵션(SQL Server)서버 구성 옵션을 구성하는 방법에 대해 설명합니다.For more information, see Server Configuration Options (SQL Server).

후속 작업: 잠금 옵션을 구성한 후Follow Up: After you configure the locks option

설정을 적용하려면 서버를 다시 시작해야 합니다.The server must be restarted before the setting can take effect.

참고 항목See Also

RECONFIGURE(Transact-SQL) RECONFIGURE (Transact-SQL)
서버 구성 옵션(SQL Server) Server Configuration Options (SQL Server)
sp_configure (Transact-SQL)sp_configure (Transact-SQL)