

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan pengatur sumber daya Microsoft SQL Server untuk instans RDS untuk SQL Server
<a name="ResourceGovernor.Using"></a>

Setelah menambahkan opsi pengatur sumber daya ke grup opsi Anda, pengatur sumber daya belum aktif di tingkat mesin database. Untuk sepenuhnya mengaktifkan pengatur sumber daya, Anda harus menggunakan prosedur tersimpan RDS untuk SQL Server untuk mengaktifkannya dan membuat objek pengatur sumber daya yang diperlukan. Untuk informasi selengkapnya, lihat [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md).

Pertama, sambungkan ke database SQL Server Anda, lalu panggil RDS yang sesuai untuk prosedur tersimpan SQL Server untuk menyelesaikan konfigurasi. Untuk petunjuk tentang melakukan koneksi ke basis data Anda, lihat [Menyambung ke instans Microsoft SQL Server DB](USER_ConnectToMicrosoftSQLServerInstance.md).

Untuk petunjuk bagaimana cara memanggil setiap prosedur tersimpan, lihat topik berikut:

**Topics**
+ [Mengelola kumpulan sumber daya](#ResourceGovernor.ManageResourcePool)
+ [Mengelola grup beban kerja](#ResourceGovernor.ManageWorkloadGroups)
+ [Buat dan daftarkan fungsi pengklasifikasi](#ResourceGovernor.ClassifierFunction)
+ [Fungsi pengklasifikasi jatuhkan](#ResourceGovernor.DropClassifier)
+ [De-register fungsi pengklasifikasi](#ResourceGovernor.DeregisterClassifier)
+ [Setel ulang statistik](#ResourceGovernor.ResetStats)
+ [Perubahan konfigurasi gubernur sumber daya](#ResourceGovernor.ConfigChanges)
+ [Mengikat TempDB ke kumpulan sumber daya](#ResourceGovernor.BindTempDB)
+ [Membatalkan ikatan TempDB dari kumpulan sumber daya](#ResourceGovernor.UnbindTempDB)
+ [Gubernur sumber daya pembersihan](#ResourceGovernor.Cleanup)

## Mengelola kumpulan sumber daya
<a name="ResourceGovernor.ManageResourcePool"></a>

### Buat Kumpulan sumber daya
<a name="ResourceGovernor.CreateResourcePool"></a>

Setelah pengatur sumber daya diaktifkan pada grup opsi, Anda dapat membuat kumpulan sumber daya khusus menggunakan`rds_create_resource_pool`. Kumpulan ini memungkinkan Anda mengalokasikan persentase CPU, memori, dan IOPS tertentu ke beban kerja yang berbeda.

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_create_resource_pool    
    @pool_name=value,
    @MAX_CPU_PERCENT=value,
    @CAP_CPU_PERCENT=value,
    @MAX_MEMORY_PERCENT=value,
    @MAX_IOPS_PER_VOLUME=value
```

Parameter-parameter berikut diperlukan:
+ `@group_name`- Adalah nama grup beban kerja yang ditentukan pengguna yang ada.
+ `@pool_name`- Adalah nama yang ditentukan pengguna untuk kumpulan sumber daya. {{pool\_name}}bersifat alfanumerik, bisa maksimal 128 karakter, harus unik dalam instance Database Engine, dan harus mematuhi aturan untuk pengidentifikasi database.

Parameter berikut ini bersifat opsional:
+ `@MAX_CPU_PERCENT`- Menentukan bandwidth CPU rata-rata maksimum yang diterima semua permintaan di kumpulan sumber daya ketika ada pertikaian CPU. {{value}}adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk {{value}} adalah dari 1 hingga 100.
+ `@CAP_CPU_PERCENT`- Menentukan batas keras pada bandwidth CPU yang diterima semua permintaan di kumpulan sumber daya. Membatasi tingkat bandwidth CPU maksimum agar sama dengan nilai yang ditentukan. {{value}}adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk {{value}} adalah dari 1 hingga 100.
+ `@MAX_MEMORY_PERCENT`- Menentukan jumlah maksimum memori ruang kerja kueri yang dapat digunakan permintaan di kumpulan sumber daya ini. {{value}}adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk {{value}} adalah dari 1 hingga 100.
+ `@MAX_IOPS_PER_VOLUME`- Menentukan I/O operasi maksimum per detik (IOPS) per volume disk untuk memungkinkan kumpulan sumber daya. Rentang yang diizinkan untuk {{value}} adalah dari 0 hingga 2^31-1 (2.147.483.647). Tentukan 0 untuk menghapus batas IOPS untuk kumpulan. Default-nya adalah 0.

**Contoh**

Contoh membuat kumpulan sumber daya dengan semua nilai default:

```
--This creates resource pool 'SalesPool' with all default values
USE [msdb]
EXEC rds_create_resource_pool @pool_name = 'SalesPool';
     
--Apply changes
USE [msdb]
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
     
--Validate configuration
select * from sys.resource_governor_resource_pools
```

Contoh membuat kumpulan sumber daya dengan parameter berbeda yang ditentukan:

```
--creates resource pool
USE [msdb]
EXEC dbo.rds_create_resource_pool    
@pool_name='analytics',
@MAX_CPU_PERCENT = 30,
@CAP_CPU_PERCENT = 40,
@MAX_MEMORY_PERCENT = 20;
            
--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
    
--Validate configuration
select * from sys.resource_governor_resource_pools
```

### Ubah kumpulan sumber daya
<a name="ResourceGovernor.AlterResourcePool"></a>

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_alter_resource_pool    
    @pool_name=value,
    @MAX_CPU_PERCENT=value,
    @CAP_CPU_PERCENT=value,
    @MAX_MEMORY_PERCENT=value,
    @MAX_IOPS_PER_VOLUME=value;
```

Parameter-parameter berikut diperlukan:
+ `@pool_name`- Adalah nama kumpulan sumber daya yang ditentukan pengguna yang ada. Mengubah kumpulan sumber daya default tidak diperbolehkan di Amazon RDS SQL Server.

Setidaknya satu dari parameter opsional harus ditentukan:
+ `@MAX_CPU_PERCENT`- Menentukan bandwidth CPU rata-rata maksimum yang diterima semua permintaan di kumpulan sumber daya ketika ada pertikaian CPU. {{value}}adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk {{value}} adalah dari 1 hingga 100.
+ `@CAP_CPU_PERCENT`- Menentukan batas keras pada bandwidth CPU yang diterima semua permintaan di kumpulan sumber daya. Membatasi tingkat bandwidth CPU maksimum agar sama dengan nilai yang ditentukan. {{value}}adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk {{value}} adalah dari 1 hingga 100.
+ `@MAX_MEMORY_PERCENT`- Menentukan jumlah maksimum memori ruang kerja kueri yang dapat digunakan permintaan di kumpulan sumber daya ini. {{value}}adalah bilangan bulat dengan pengaturan default 100. Rentang yang diizinkan untuk {{value}} adalah dari 1 hingga 100.
+ `@MAX_IOPS_PER_VOLUME`- Menentukan I/O operasi maksimum per detik (IOPS) per volume disk untuk memungkinkan kumpulan sumber daya. Rentang yang diizinkan untuk {{value}} adalah dari 0 hingga 2^31-1 (2.147.483.647). Tentukan 0 untuk menghapus batas IOPS untuk kumpulan. Default-nya adalah 0.

**Contoh**

```
--This alters resource pool
USE [msdb]
EXEC dbo.rds_alter_resource_pool    
    @pool_name='analytics',
    @MAX_CPU_PERCENT = 10,
    @CAP_CPU_PERCENT = 20,
    @MAX_MEMORY_PERCENT = 50;

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration.
select * from sys.resource_governor_resource_pools
```

### Jatuhkan kumpulan sumber daya
<a name="ResourceGovernor.DropResourcePool"></a>

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_drop_resource_pool    
@pool_name=value;
```

Parameter berikut diperlukan:
+ `@pool_name`- Adalah nama kumpulan sumber daya yang ditentukan pengguna yang ada.

**catatan**  
Menghapus kumpulan sumber daya internal atau default tidak diperbolehkan di SQL Server.

**Contoh**

```
--This drops resource pool
USE [msdb]
EXEC dbo.rds_drop_resource_pool    
@pool_name='analytics'

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_resource_pools
```

## Mengelola grup beban kerja
<a name="ResourceGovernor.ManageWorkloadGroups"></a>

Grup beban kerja, dibuat dan dikelola dengan `rds_create_workload_group` dan`rds_alter_workload_group`, memungkinkan Anda mengatur tingkat kepentingan, hibah memori, dan parameter lainnya untuk grup kueri.

### Buat grup beban kerja
<a name="ResourceGovernor.CreateWorkloadGroup"></a>

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_create_workload_group 
@group_name = value, 
@IMPORTANCE ={ LOW | MEDIUM | HIGH }, 
@REQUEST_MAX_MEMORY_GRANT_PERCENT =value, 
@REQUEST_MAX_CPU_TIME_SEC = value , 
@REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value, 
@MAX_DOP = value, 
@GROUP_MAX_REQUESTS = value, 
@GROUP_MAX_TEMPDB_DATA_MB = value, 
@GROUP_MAX_TEMPDB_DATA_PERCENT = value, 
@pool_name = value
```

Parameter-parameter berikut diperlukan:
+ `@pool_name`- Adalah nama kumpulan sumber daya yang ditentukan pengguna yang ada.
+ `@group_name`- Adalah nama grup beban kerja yang ditentukan pengguna yang ada.

Parameter berikut ini bersifat opsional:
+ `@IMPORTANCE`- Menentukan kepentingan relatif dari permintaan dalam kelompok beban kerja. Nilai default-nya adalah `MEDIUM`.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`- Menentukan jumlah maksimum memori ruang kerja kueri yang dapat diambil oleh permintaan tunggal dari kumpulan. {{value}}adalah persentase dari ukuran kumpulan sumber daya yang ditentukan oleh`MAX_MEMORY_PERCENT`. Nilai defaultnya adalah 25.
+ `@REQUEST_MAX_CPU_TIME_SEC`- Menentukan jumlah maksimum waktu CPU, dalam detik, yang dapat digunakan permintaan batch. {{value}}harus 0 atau bilangan bulat positif. Pengaturan default untuk {{value}} adalah 0, yang berarti tidak terbatas.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`- Menentukan waktu maksimum, dalam detik, bahwa kueri dapat menunggu hibah memori dari memori ruang kerja kueri menjadi tersedia. {{value}}harus 0 atau bilangan bulat positif. Pengaturan default untuk{{value}}, 0, menggunakan perhitungan internal berdasarkan biaya kueri untuk menentukan waktu maksimum.
+ `@MAX_DOP`- Menentukan tingkat maksimum paralelisme (`MAXDOP`) untuk eksekusi kueri paralel. Rentang yang diizinkan untuk {{value}} adalah dari 0 hingga 64. Pengaturan default untuk{{value}}, 0, menggunakan pengaturan global.
+ `@GROUP_MAX_REQUESTS`= Menentukan jumlah maksimum permintaan simultan yang diizinkan untuk dieksekusi dalam grup beban kerja. {{value}}harus 0 atau bilangan bulat positif. Pengaturan default untuk {{value}} adalah 0, dan memungkinkan permintaan tak terbatas.
+ `@GROUP_MAX_TEMPDB_DATA_MB`— Menentukan jumlah maksimum ruang data tempdb, dalam megabyte, yang dapat dikonsumsi oleh grup beban kerja. {{value}}harus 0, bilangan positif, atau NULL. Nilai fraksional diperbolehkan. Bila nilainya 0, alokasi ruang tempdb berdasarkan sesi dalam grup beban kerja tidak diperbolehkan. Ketika nilai tidak disetel, pengatur sumber daya tidak membatasi konsumsi ruang tempdb oleh grup beban kerja. Parameter ini tersedia di SQL Server 2025 dan di atasnya.
+ `@GROUP_MAX_TEMPDB_DATA_PERCENT`— Menentukan jumlah maksimum ruang data tempdb yang dapat dikonsumsi grup beban kerja, sebagai persentase dari ukuran tempdb maksimum. {{value}}harus dalam kisaran dari 0 hingga 100, atau NULL. Nilai fraksional diperbolehkan. Bila nilainya 0, alokasi ruang tempdb berdasarkan sesi dalam grup beban kerja tidak diperbolehkan. Ketika nilai tidak disetel, pengatur sumber daya tidak membatasi konsumsi ruang tempdb oleh grup beban kerja. Kapan `GROUP_MAX_TEMPDB_DATA_MB` disetel, atau ketika ukuran maksimum tempdb tidak ditentukan, tidak ber `GROUP_MAX_TEMPDB_DATA_PERCENT` pengaruh. Parameter ini tersedia di SQL Server 2025 dan di atasnya.
+ `@pool_name`= Mengaitkan grup beban kerja dengan kumpulan sumber daya yang ditentukan pengguna yang diidentifikasi oleh{{pool\_name}}, atau dengan kumpulan `default` sumber daya. Jika {{pool\_name}} tidak disediakan, grup beban kerja dikaitkan dengan kum `default` pulan bawaan.

**Contoh**

```
--This creates workload group named 'analytics'
USE msdb;
EXEC dbo.rds_create_workload_group 
    @group_name = 'analytics',
    @IMPORTANCE = 'HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 25, 
    @REQUEST_MAX_CPU_TIME_SEC = 0, 
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 0, 
    @MAX_DOP = 0, 
    @GROUP_MAX_REQUESTS = 0, 
    @pool_name = 'analytics';

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
  
--Validate configuration
select * from sys.resource_governor_workload_groups
```

Contoh membuat grup beban kerja dengan tata kelola tempdb (SQL Server 2025 dan di atas):

```
-- Create workload group with tempdb space limits
USE msdb;
EXEC dbo.rds_create_workload_group
    @group_name = 'etl_workload',
    @IMPORTANCE = 'MEDIUM',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 25,
    @MAX_DOP = 4,
    @GROUP_MAX_TEMPDB_DATA_MB = 2048,
    @GROUP_MAX_TEMPDB_DATA_PERCENT = 30,
    @pool_name = 'etl_pool';

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

-- Validate configuration
SELECT name, group_max_tempdb_data_mb, group_max_tempdb_data_percent
FROM sys.resource_governor_workload_groups
WHERE name = 'etl_workload';
```

### Ubah grup beban kerja
<a name="ResourceGovernor.AlterWorkloadGroup"></a>

**Penggunaan**

```
EXEC msdb.dbo.rds_alter_workload_group
    @group_name = value,
    @IMPORTANCE = 'LOW|MEDIUM|HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = value,
    @REQUEST_MAX_CPU_TIME_SEC = value,
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value,
    @MAX_DOP = value,
    @GROUP_MAX_REQUESTS = value,
    @GROUP_MAX_TEMPDB_DATA_MB = value,
    @GROUP_MAX_TEMPDB_DATA_PERCENT = value,
    @pool_name = value
```

Parameter-parameter berikut diperlukan:
+ `@group_name`- Adalah nama default atau grup beban kerja yang ditentukan pengguna yang ada.

**catatan**  
Mengubah hanya `REQUEST_MAX_MEMORY_GRANT_PERCENT` parameter pada grup beban kerja default didukung. Untuk grup beban kerja default `REQUEST_MAX_MEMORY_GRANT_PERCENT` harus antara 1 dan 70. Tidak ada parameter lain yang dapat dimodifikasi dalam grup beban kerja default. Semua parameter dapat dimodifikasi dalam grup beban kerja yang ditentukan pengguna.

Parameter berikut ini bersifat opsional:
+ `@IMPORTANCE`- Menentukan kepentingan relatif dari permintaan dalam kelompok beban kerja. Nilai defaultnya adalah MEDIUM.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`- Menentukan jumlah maksimum memori ruang kerja kueri yang dapat diambil oleh permintaan tunggal dari kumpulan. {{value}}adalah persentase dari ukuran kumpulan sumber daya yang ditentukan oleh`MAX_MEMORY_PERCENT`. Nilai defaultnya adalah 25. Di Amazon RDS, `REQUEST_MAX_MEMORY_GRANT_PERCENT` harus antara 1 dan 70.
+ `@REQUEST_MAX_CPU_TIME_SEC`- Menentukan jumlah maksimum waktu CPU, dalam detik, yang dapat digunakan permintaan batch. {{value}}harus 0 atau bilangan bulat positif. Pengaturan default untuk {{value}} adalah 0, yang berarti tidak terbatas.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`- Menentukan waktu maksimum, dalam detik, bahwa kueri dapat menunggu hibah memori dari memori ruang kerja kueri menjadi tersedia. {{value}}harus 0 atau bilangan bulat positif. Pengaturan default untuk{{value}}, 0, menggunakan perhitungan internal berdasarkan biaya kueri untuk menentukan waktu maksimum.
+ `@MAX_DOP`- Menentukan tingkat maksimum paralelisme (MAXDOP) untuk eksekusi kueri paralel. Rentang yang diizinkan untuk {{value}} adalah dari 0 hingga 64. Pengaturan default untuk{{value}}, 0, menggunakan pengaturan global.
+ `@GROUP_MAX_REQUESTS`- Menentukan jumlah maksimum permintaan simultan yang diizinkan untuk dieksekusi dalam grup beban kerja. {{value}}harus 0 atau bilangan bulat positif. Pengaturan default untuk {{value}} adalah 0, dan memungkinkan permintaan tak terbatas.
+ `@GROUP_MAX_TEMPDB_DATA_MB`— Menentukan jumlah maksimum ruang data tempdb, dalam megabyte, yang dapat dikonsumsi oleh grup beban kerja. {{value}}harus 0, bilangan positif, atau NULL. Nilai fraksional diperbolehkan. Parameter ini tersedia di SQL Server 2025 dan di atasnya.
+ `@GROUP_MAX_TEMPDB_DATA_PERCENT`— Menentukan jumlah maksimum ruang data tempdb yang dapat dikonsumsi grup beban kerja, sebagai persentase dari ukuran tempdb maksimum. {{value}}harus dalam kisaran dari 0 hingga 100, atau NULL. Nilai fraksional diperbolehkan. Kapan `GROUP_MAX_TEMPDB_DATA_MB` disetel, atau ketika ukuran maksimum tempdb tidak ditentukan, tidak ber `GROUP_MAX_TEMPDB_DATA_PERCENT` pengaruh. Parameter ini tersedia di SQL Server 2025 dan di atasnya.
+ `@pool_name`- Mengaitkan grup beban kerja dengan kumpulan sumber daya yang ditentukan pengguna yang diidentifikasi oleh{{pool\_name}}.

**Contoh**

Contoh untuk Memodifikasi perubahan grup beban kerja default REQUEST\_MAX\_MEMORY\_GRANT\_PERCENT:

```
--Modify default workload group (set memory grant cap to 10%)
USE msdb
EXEC dbo.rds_alter_workload_group    
    @group_name = 'default',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT=10;
    
--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
SELECT * FROM sys.resource_governor_workload_groups WHERE name='default';
```

Contoh untuk memodifikasi grup beban kerja non-default:

```
EXEC msdb.dbo.rds_alter_workload_group    
    @group_name = 'analytics',
    @IMPORTANCE = 'HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 30,
    @REQUEST_MAX_CPU_TIME_SEC = 3600,
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 60,
    @MAX_DOP = 4,
    @GROUP_MAX_REQUESTS = 100;

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
```

Contoh untuk memindahkan Grup Beb Non-Default an Kerja ke kumpulan sumber daya lain:

```
EXEC msdb.dbo.rds_alter_workload_group    
@group_name = 'analytics',
@pool_name='abc'

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_workload_groups
```

Contoh untuk memodifikasi grup beban kerja dengan tata kelola tempdb (SQL Server 2025 dan di atas):

```
-- Add tempdb limits to an existing workload group
USE msdb;
EXEC msdb.dbo.rds_alter_workload_group
    @group_name = 'etl_workload',
    @GROUP_MAX_TEMPDB_DATA_MB = 4096,
    @GROUP_MAX_TEMPDB_DATA_PERCENT = 50;

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

-- Validate configuration
SELECT name, group_max_tempdb_data_mb, group_max_tempdb_data_percent
FROM sys.resource_governor_workload_groups
WHERE name = 'etl_workload';
```

### Jatuhkan grup beban kerja
<a name="ResourceGovernor.DropWorkloadGroup"></a>

**Penggunaan**

```
EXEC msdb.dbo.rds_drop_workload_group    
@group_name = value
```

Parameter-parameter berikut diperlukan:
+ `@group_name`- Adalah nama grup beban kerja yang ditentukan pengguna yang ada.

**Contoh**

```
--Drops a Workload Group:
EXEC msdb.dbo.rds_drop_workload_group    
@group_name = 'analytics';

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_workload_groups
```

## Buat dan daftarkan fungsi pengklasifikasi
<a name="ResourceGovernor.ClassifierFunction"></a>

Prosedur ini membuat fungsi pengklasifikasi pengatur sumber daya dalam database master yang merutekan koneksi ke grup beban kerja khusus berdasarkan kriteria yang ditentukan (nama pengguna, database, host, atau nama aplikasi). Jika pengatur sumber daya diaktifkan dan fungsi pengklasifikasi ditentukan dalam konfigurasi pengatur sumber daya, maka output fungsi menentukan grup beban kerja yang digunakan untuk sesi baru. Dengan tidak adanya fungsi pengklasifikasi, semua sesi diklasifikasikan ke dalam `default` grup.

**Fitur-fitur**:
+ Mendukung hingga dua grup beban kerja dengan kondisi routing masing-masing.
+ Menggabungkan kriteria dengan `AND` kondisi dalam setiap kelompok.
+ Memerlukan setidaknya satu kriteria routing per grup beban kerja.
+ Nama fungsi harus dimulai dengan`rg_classifier_`.
+ Penetapan grup default jika tidak ada kondisi yang cocok.

Fungsi pengklasifikasi memiliki karakteristik dan perilaku sebagai berikut:
+ Fungsi ini didefinisikan dalam lingkup server (dalam database master).
+ Fungsi didefinisikan dengan pengikatan skema.
+ Fungsi dievaluasi untuk setiap sesi baru, bahkan ketika pengumpulan koneksi diaktifkan.
+ Fungsi mengembalikan konteks grup beban kerja untuk sesi. Sesi ditetapkan ke grup beban kerja yang dikembalikan oleh pengklasifikasi selama masa sesi.
+ Jika fungsi mengembalikan NULL, default, atau nama grup beban kerja yang tidak ada, sesi diberikan konteks grup beban kerja default. Sesi juga diberikan konteks default jika fungsi gagal karena alasan apa pun.
+ Anda dapat membuat beberapa fungsi pengklasifikasi. Namun, SQL Server hanya mengizinkan satu fungsi pengklasifikasi untuk didaftarkan pada satu waktu.
+ Fungsi pengklasifikasi tidak dapat dihapus kecuali status pengklasifikasi dihapus menggunakan prosedur de-register (`EXEC dbo.msdb.rds_alter_resource_governor_configuration @deregister_function = 1;`) yang menetapkan nama fungsi ke NULL atau fungsi pengklasifikasi lain didaftarkan menggunakan () `EXEC dbo.msdb.rds_alter_resource_governor_configuration @classifier_function = <function_name>;`
+ Dengan tidak adanya fungsi pengklasifikasi, semua sesi diklasifikasikan ke dalam grup default.
+ Anda tidak dapat memodifikasi fungsi pengklasifikasi saat direferensikan dalam konfigurasi pengatur sumber daya. Namun, Anda dapat memodifikasi konfigurasi untuk menggunakan fungsi pengklasifikasi yang berbeda. Jika Anda ingin membuat perubahan pada pengklasifikasi, pertimbangkan untuk membuat sepasang fungsi pengklasifikasi. Misalnya, Anda dapat membuat `rg_classifier_a` dan`rg_classifier_b`.

**Penggunaan**

```
EXEC msdb.dbo.rds_create_classifier_function 
@function_name = value,
@workload_group1 = value, 
@user_name1 = value,
@db_name1 = value,
@host_name1 = value, 
@app_name1 = value, 
@workload_group2 = value,
@user_name2 = value,
@db_name2 = value,
@host_name2 = value,
@app_name2 = value
```

Parameter-parameter berikut diperlukan:
+ `@function_name`- Nama fungsi pengklasifikasi. Harus dimulai dengan `rg_classifier_`
+ `@workload_group1`- Nama grup beban kerja pertama

Parameter berikut ini bersifat opsional:

(Setidaknya salah satu dari kriteria ini harus ditentukan untuk kelompok 1)
+ `@user_name1`- Nama login untuk grup 1
+ `@db_name1`- Nama database untuk grup 1
+ `@host_name1`- Nama host untuk grup 1
+ `@app_name1`- Nama aplikasi untuk grup 1

(Jika kelompok 2 ditentukan, setidaknya satu kriteria harus disediakan)
+ `@workload_group2`- Nama grup beban kerja kedua
+ `@user_name2`- Nama login untuk grup 2
+ `@db_name2`- Nama database untuk grup 2
+ `@host_name2`- Nama host untuk grup 2
+ `@app_name2`- Nama aplikasi untuk grup 2

**catatan**  
Akun sistem, database, aplikasi, dan host dibatasi.

**Contoh**

Contoh Dasar dengan Satu Grup Beban Kerja:

```
/*Create a classifier to route all requests from 'PowerBI' app to workload group 
'reporting_group'*/

EXEC msdb.dbo.rds_create_classifier_function
@function_name = 'rg_classifier_a',
@workload_group1 = 'reporting_group',
@app_name1 = 'PowerBI';

--Register the classifier
EXEC msdb.dbo.rds_alter_resource_governor_configuration
@classifier_function = 'rg_classifier_a';

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration

/*Query sys.resource_governor_configuration to validate that resource governor is enabled and is using the classifier function we created and registered*/

use master
go
SELECT OBJECT_SCHEMA_NAME(classifier_function_id) AS classifier_schema_name,
       OBJECT_NAME(classifier_function_id) AS classifier_object_name,
       is_enabled
FROM sys.resource_governor_configuration;
```

## Fungsi pengklasifikasi jatuhkan
<a name="ResourceGovernor.DropClassifier"></a>

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_drop_classifier_function
@function_name = value;
```

Parameter berikut diperlukan:
+ `@function_name`- Adalah nama fungsi pengklasifikasi yang ditentukan pengguna yang ada

**Contoh**

```
EXEC msdb.dbo.rds_drop_classifier_function
@function_name = 'rg_classifier_b';
```

## De-register fungsi pengklasifikasi
<a name="ResourceGovernor.DeregisterClassifier"></a>

Gunakan prosedur ini untuk membatalkan pendaftaran fungsi pengklasifikasi. Setelah fungsi dibatalkan pendaftaran, sesi baru secara otomatis ditetapkan ke grup beban kerja default.

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration    
@deregister_function = 1;
```

Untuk de-registrasi, parameter berikut diperlukan:
+ `@deregister_function`harus 1

**Contoh**

```
EXEC msdb.dbo.rds_alter_resource_governor_configuration 
    @deregister_function = 1;
GO

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
```

## Setel ulang statistik
<a name="ResourceGovernor.ResetStats"></a>

Statistik pengatur sumber daya bersifat kumulatif sejak restart server terakhir. Jika Anda perlu mengumpulkan statistik mulai dari waktu tertentu, Anda dapat mengatur ulang statistik menggunakan prosedur tersimpan Amazon RDS berikut.

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration  
@reset_statistics = 1;
```

Untuk mengatur ulang statistik parameter berikut diperlukan:
+ `@reset_statistics`harus 1

## Perubahan konfigurasi gubernur sumber daya
<a name="ResourceGovernor.ConfigChanges"></a>

Jika pengatur sumber daya tidak diaktifkan, aktifkan `rds_alter_resource_governor_configuration` pengatur sumber daya. Mengaktifkan gubernur sumber daya memiliki hasil sebagai berikut:
+ Fungsi pengklasifikasi, jika ada, dijalankan untuk sesi baru, menetapkannya ke grup beban kerja.
+ Batas sumber daya yang ditentukan dalam konfigurasi gubernur sumber daya dihormati dan diberlakukan.
+ Batas sumber daya yang ditentukan dalam konfigurasi gubernur sumber daya dihormati dan diberlakukan.
+ Permintaan yang ada sebelum mengaktifkan pengatur sumber daya mungkin terpengaruh oleh perubahan konfigurasi apa pun yang dibuat saat pengatur sumber daya diaktifkan.
+ Permintaan yang ada, sebelum mengaktifkan pengatur sumber daya, mungkin terpengaruh oleh perubahan konfigurasi apa pun yang dilakukan saat pengatur sumber daya diaktifkan.
+ Pada RDS untuk SQL Server, `EXEC msdb.dbo.rds_alter_resource_governor_configuration` harus dieksekusi agar setiap perubahan konfigurasi gubernur sumber daya berlaku. 

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration
```

## Mengikat TempDB ke kumpulan sumber daya
<a name="ResourceGovernor.BindTempDB"></a>

Anda dapat mengikat metadata yang dioptimalkan memori tempdb ke kumpulan sumber daya tertentu menggunakan `rds_bind_tempdb_metadata_to_resource_pool` Amazon RDS SQL Server versi 2019 dan yang lebih baru.

**catatan**  
Memory-optimized Fitur metadata tempdb harus diaktifkan sebelum mengikat metadata tempdb ke kumpulan sumber daya. Untuk mengaktifkan fitur ini di Amazon RDS, ini adalah parameter `tempdb metadata memory-optimized` statis.

Aktifkan parameter statis di Amazon RDS dan lakukan reboot tanpa failover agar parameter berlaku:

```
aws rds modify-db-parameter-group \
    --db-parameter-group-name test-sqlserver-ee-2022 \
    --parameters "ParameterName='tempdb metadata memory-optimized',ParameterValue=True,ApplyMethod=pending-reboot"
```

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_bind_tempdb_metadata_to_resource_pool  
@pool_name=value;
```

Parameter berikut diperlukan:
+ `@pool_name`- Adalah nama kumpulan sumber daya yang ditentukan pengguna yang ada.

**catatan**  
Perubahan ini juga memerlukan reboot layanan sql tanpa failover untuk berlaku, bahkan jika fitur metadata Memory-optimized TempDB sudah diaktifkan.

## Membatalkan ikatan TempDB dari kumpulan sumber daya
<a name="ResourceGovernor.UnbindTempDB"></a>

Batalkan metadata yang dioptimalkan memori tempdb dari kumpulan sumber daya.

**catatan**  
Perubahan ini juga membutuhkan reboot layanan sql tanpa failover agar berlaku

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_unbind_tempdb_metadata_from_resource_pool
```

## Gubernur sumber daya pembersihan
<a name="ResourceGovernor.Cleanup"></a>

Prosedur ini untuk membersihkan semua objek terkait setelah Anda menghapus opsi pengatur sumber daya dari grup opsi. Ini menonaktifkan gubernur sumber daya, mengembalikan grup beban kerja default ke pengaturan default, menghapus grup beban kerja kustom, kumpulan sumber daya, dan fungsi pengklasifikasi.

**Fitur utama **
+ Mengembalikan grup beban kerja default ke pengaturan default
+ Menonaktifkan gubernur sumber daya
+ Menghapus grup beban kerja kustom
+ Menghapus kumpulan sumber daya khusus
+ Fungsi pengklasifikasi tetes
+ Menghapus pengikatan kumpulan sumber daya tempdb jika diaktifkan

**penting**  
Pembersihan ini dapat terjadi kesalahan jika ada sesi aktif pada grup beban kerja. Tunggu sesi aktif selesai atau akhiri sesi aktif sesuai kebutuhan bisnis Anda. Disarankan untuk menjalankan ini selama jendela pemeliharaan.   
Pembersihan ini dapat terjadi kesalahan jika kumpulan sumber daya terikat ke tempdb dan reboot tanpa failover belum dilakukan. Jika Anda mengikat kumpulan sumber daya ke tempdb atau melepaskan kumpulan sumber daya dari tempdb sebelumnya, lakukan reboot tanpa failover untuk membuat perubahan efektif. Disarankan untuk menjalankan ini selama jendela pemeliharaan.

**Penggunaan**

```
USE [msdb]
EXEC dbo.rds_cleanup_resource_governor
```