분석 플랫폼 시스템의 워크로드 관리 작업

분석 플랫폼 시스템의 워크로드 관리 작업

각 리소스 클래스의 로그인 멤버 보기

SQL Server PDW에서 각 리소스 클래스 서버 역할의 로그인 멤버를 표시하는 방법을 설명합니다. 이 쿼리를 사용하여 각 로그인에서 제출한 요청에 허용되는 리소스 클래스를 파악합니다.

리소스 클래스 설명은 워크로드 관리를 참조하세요.

이 쿼리는 각 리소스 클래스의 멤버 자격 목록을 표시합니다. mediumrc, largerc 및 xlargerc라는 세 가지 리소스 클래스가 있습니다.

SELECT l.name AS [member], r.name AS [server role]  
FROM sys.server_role_members AS rm  
JOIN sys.server_principals AS l  
  ON l.principal_id = rm.member_principal_id  
JOIN  
  sys.server_principals AS r  
  ON r.principal_id = rm.role_principal_id  
WHERE  
  ( l.[type] = 'S' OR l.[type] = 'U' OR l.[type] = 'G' )  
  AND r.[type] = 'R'  
  AND r.[name] in ('mediumrc', 'largerc', 'xlargerc');  

로그인이 이 목록에 없으면 해당 요청은 기본 리소스를 받습니다. 로그인이 둘 이상의 리소스 클래스의 멤버인 경우 가장 큰 클래스가 우선합니다.

리소스 할당은 워크로드 관리에 나열됩니다.

요청에 할당된 시스템 리소스 변경

SQL Server PDW 요청이 실행 중인 리소스 클래스를 파악한 다음 해당 요청에 대한 시스템 리소스를 변경하는 방법을 설명합니다. 요청에 대한 리소스를 변경하려면 ALTER SERVER ROLE 문을 사용하여 요청을 제출하는 로그인의 리소스 클래스 멤버 자격을 변경해야 합니다.

1단계: 요청을 실행하는 로그인에 대한 리소스 클래스를 확인합니다.

이 쿼리는 리소스 클래스 서버 역할 멤버 자격의 멤버인 로그인을 표시합니다. mediumrc, largerc 및 xlargerc라는 세 가지 리소스 클래스가 있습니다.

Important

이 쿼리는 CONTROL SERVER 권한이 있는 로그인에 의해 실행되어야 합니다. CONTROL SERVER 권한 없이 로그인에 의해 실행되는 경우 이 쿼리는 현재 로그인에 대한 역할 멤버 자격만 반환합니다.

SELECT l.name AS [member], r.name AS [server role]  
FROM sys.server_role_members AS rm  
JOIN sys.server_principals AS l  
  ON l.principal_id = rm.member_principal_id  
JOIN  
  sys.server_principals AS r  
  ON r.principal_id = rm.role_principal_id  
WHERE  
  l.[type] = 'S'   
  AND r.[type] = 'R'  
  AND r.[name] in ('mediumrc', 'largerc', 'xlargerc');  
GO  

리소스 클래스 서버 역할의 멤버인 로그인이 없으면 결과 테이블이 비어 있습니다. 이 경우 쿼리가 Ching이라는 로그인을 반환하는 경우 Ching이 요청을 제출할 때 요청은 리소스 클래스 시스템 리소스보다 작은 기본 시스템 리소스를 받습니다. 로그인이 둘 이상의 리소스 클래스의 멤버인 경우 가장 큰 클래스가 우선합니다.

각 리소스 클래스에 대한 리소스 할당 목록은 워크로드 관리를 참조하세요.

2단계: 리소스 클래스 멤버 자격이 다른 로그인에서 요청 실행

더 크거나 작은 시스템 리소스를 사용하여 요청을 실행하는 방법에는 두 가지가 있습니다.

  • 더 크거나 작은 리소스 클래스의 멤버인 다른 로그인으로 요청을 실행합니다.

  • 리소스 클래스 역할 중 하나에 필요한 로그인을 추가합니다. 주의해서 이 옵션을 선택합니다. 로그인에 대한 리소스 클래스를 변경하면 로그인에서 제출한 모든 요청에 대한 시스템 리소스 수준이 변경됩니다.

Ching이 더 큰 서버 역할의 멤버라고 가정합니다. 다음 예제에서는 xlargerc 서버 역할에 로그인 Ching을 추가하는 방법을 보여줍니다.

ALTER SERVER ROLE xlargerc ADD MEMBER Ching;  

이제 Ching은 largerc 및 xlargerc 서버 역할의 멤버입니다. Ching이 요청을 제출하면 요청은 xlargerc 시스템 리소스를 받습니다.

다음 예제에서는 Ching을 다시 mediumrc 서버 역할로 이동합니다. 새 역할로 변경하려면 xlargerc 및 대규모 서버 역할에서 로그인을 제거하고 mediumrc 서버 역할에 추가해야 합니다.

-- Move login Ching back to using medium system resources for requests.  
ALTER SERVER ROLE xlargerc DROP MEMBER Ching;  
ALTER SERVER ROLE largerc DROP MEMBER Ching;  
ALTER SERVER ROLE mediumrc ADD MEMBER Ching;  

이제 Ching은 mediumrc 서버 역할의 멤버입니다. 다음 예제에서는 요청에 대한 기본 시스템 리소스를 갖도록 Ching을 변경합니다.

-- Move login Ching to use the default system resources for requests.  
ALTER SERVER ROLE mediumrc DROP MEMBER Ching;  

리소스 클래스 역할 멤버 자격을 변경하는 방법에 대한 자세한 내용은 ALTER SERVER ROLE을 참조하세요.

해당 요청에 대한 기본 시스템 리소스로 로그인 변경

SQL Server PDW 로그인에 할당된 시스템 리소스 할당을 기본값으로 변경하는 방법을 설명합니다.

리소스 클래스 설명은 워크로드 관리를 참조 하세요.

로그인이 리소스 클래스 서버 역할의 멤버가 아닌 경우 로그인에서 제출한 요청은 기본 시스템 리소스 양을 받습니다.

로그인 Matt가 현재 모든 리소스 클래스 서버 역할의 멤버이며 요청이 기본 리소스만 수신하도록 되돌리려고 합니다. 다음 예제에서는 세 리소스 클래스 서버 역할에서 멤버 자격을 모두 삭제하여 Matt의 요청에 기본 리소스를 할당합니다.

--Give the requests submitted by Matt the default system resources   
--by dropping Matt from all resource class server roles.  
ALTER SERVER ROLE XLargeRC DROP MEMBER Matt;  
ALTER SERVER ROLE LargeRC DROP MEMBER Matt;  
ALTER SERVER ROLE MediumRC DROP MEMBER Matt;  

대기 요청에 필요한 동시성 슬롯 수 표시

SQL Server PDW에서 실행되기를 기다리는 요청에 필요한 동시성 슬롯 수를 파악하는 방법을 설명합니다.

자세한 내용은 워크로드 관리를 참조하세요.

요청을 실행하지 않고 너무 오래 대기할 수 있습니다. 요청 문제를 해결하는 방법 중 하나는 요청에 필요한 동시성 슬롯 수를 살펴보는 것입니다. 다음 예제에서는 각 대기 요청에 필요한 동시성 슬롯 수를 보여 줍니다.

--Display the number of concurrency slots required   
--for each request that is waiting to run.  
SELECT request_id, concurrency_slots_used AS [Slots Needed], resource_class AS [Resource Class]  
FROM sys.dm_pdw_resource_waits;  

참고 항목

워크로드 관리