All Products
Search
Document Center

ApsaraDB RDS:Prosedur tersimpan

Last Updated:May 15, 2026

Topik ini mencantumkan prosedur tersimpan yang tersedia untuk instans ApsaraDB RDS for SQL Server yang menjalankan SQL Server 2012 atau versi yang lebih baru.

Penggunaan

Perintah dalam topik ini ditujukan untuk SSMS dan menggunakan GO sebagai pemisah perintah batch. Jika Anda menjalankan perintah prosedur tersimpan di DMS, jangan sertakan kata kunci GO. Jika tidak, akan terjadi error.

Perbarui statistik database

Perintah T-SQL

sp_rds_update_db_stats

Deskripsi

Memperbarui statistik database secara fleksibel dan efisien. Anda dapat mengonfigurasi parameter seperti laju pengambilan sampel, tingkat paralelisme, timeout, dan ambang batas modifikasi.

Penggunaan

-- Ini adalah contoh komprehensif yang mencakup beberapa parameter.
-- Perbarui statistik database untuk database test_db. Atur laju pengambilan sampel ke 50%, tingkat paralelisme ke 4, timeout ke 7.200 detik, dan ambang batas modifikasi ke 3.
EXEC sp_rds_update_db_stats        
    @db_name = 'test_db',          -- Nama database (wajib)
    @sample_percent = 50,          -- Laju pengambilan sampel (opsional)
    @max_dop = 4,                  -- Tingkat paralelisme (opsional, tidak didukung di SQL Server 2012 dan sebelumnya)
    @timeout_seconds = 7200,       -- Timeout dalam detik (opsional)
    @modification_threshold = 3;   -- Ambang batas modifikasi (opsional)
Catatan

Jika Anda hanya menentukan parameter @db_name atau menggunakan SQL Server 2008, sistem secara default akan mengeksekusi prosedur tersimpan sp_updatestats. Untuk informasi lebih lanjut, lihat dokumentasi resmi Microsoft.

Parameter

Wajib

Deskripsi

@db_name

Ya

Menentukan database yang statistiknya akan diperbarui. Contoh:

-- Tentukan hanya nama database. Pembaruan mengikuti logika sp_updatestats milik Microsoft.
EXEC sp_rds_update_db_stats @db_name = 'test_db';

@sample_percent

Tidak

Menentukan persentase tabel yang diambil sampelnya untuk statistik. Tipe data adalah float, dan nilainya harus berada dalam rentang [0, 100].

Jika diabaikan, sistem menggunakan laju pengambilan sampel default. Untuk informasi lebih lanjut, lihat dokumentasi resmi Microsoft. Contoh:

-- Atur laju pengambilan sampel ke 30%.
EXEC sp_rds_update_db_stats 
    @db_name = 'test_db',
    @sample_percent = 30;

@max_dop

Tidak

Menentukan tingkat paralelisme (DOP). Tipe data adalah int. Nilai default adalah 0, yang berarti sistem menggunakan pengaturan default-nya. Nilai maksimum tidak boleh melebihi jumlah core instans RDS. Parameter ini tidak didukung di SQL Server 2012 dan sebelumnya. Contoh:

-- Atur tingkat paralelisme maksimum ke 4.
EXEC sp_rds_update_db_stats 
    @db_name = 'test_db',
    @max_dop = 4;

@timeout_seconds

Tidak

Menentukan timeout untuk pembaruan statistik, dalam detik (s). Nilai default adalah 3600 detik (1 jam). Contoh:

-- Atur timeout ke 7.200 detik (2 jam).
EXEC sp_rds_update_db_stats 
 @db_name = 'test_db',
 @timeout_seconds = 7200;

@modification_threshold

Tidak

Menentukan ambang batas modifikasi dalam persentase untuk memperbarui statistik. Tipe data adalah int, dan nilai default adalah 0.

  • Kebijakan default (ketika nilainya 0): Alibaba Cloud menerapkan praktik terbaik yang direkomendasikan:

    • jumlah baris tabel < 500: 30%

    • 500 ≤ jumlah baris tabel ≤ 1.000.000: 20%

    • jumlah baris tabel > 1.000.000: 5%

  • Masukan manual: Tentukan nilai ambang batas. Nilainya harus berada dalam rentang [0, 100]. Persentase modifikasi dihitung menggunakan rumus: (jumlah baris yang dimodifikasi * 100) / jumlah total baris. Untuk memicu pembaruan statistik, persentase yang dihitung harus lebih besar dari atau sama dengan ambang batas yang Anda tetapkan.

    -- Untuk tabel dengan 10.000 baris, untuk memicu pembaruan statistik ketika 100 baris dimodifikasi, atur ambang batas ke 1.
    EXEC sp_rds_update_db_stats 
        @db_name = 'test_db',
        @modification_threshold = 1;

Salin database dalam satu instans

Perintah T-SQL

sp_rds_copy_database

Edisi yang didukung

Edisi Dasar dan Edisi Ketersediaan Tinggi

Deskripsi

Membuat salinan database dalam instans yang sama.

Catatan
  • Penyimpanan yang tersedia pada instans harus minimal 1,3 kali ukuran database sumber.

  • Operasi ini tidak dapat digunakan pada instans ApsaraDB MyBase for SQL Server.

Penggunaan

USE db
GO
EXEC sp_rds_copy_database 'db','db_copy'
GO
  • Parameter pertama adalah nama database sumber.

  • Parameter kedua adalah nama database tujuan.

Bawa database online

Perintah T-SQL

sp_rds_set_db_online

Supported Editions

RDS Edisi Dasar dan RDS Edisi Ketersediaan Tinggi

Deskripsi

Setelah Anda mengatur database ke status OFFLINE, Anda tidak dapat menggunakan pernyataan ALTER DATABASE untuk membawanya kembali online. Gunakan prosedur tersimpan ini sebagai gantinya.

Penggunaan

USE master
GO
EXEC sp_rds_set_db_online 'db'
GO

Nama database yang akan dibawa online.

Izin database global

Perintah T-SQL

sp_rds_set_all_db_privileges

Edisi instans yang didukung

Edisi Dasar, Edisi Ketersediaan Tinggi

Deskripsi

Memberikan izin kepada pengguna pada semua atau beberapa database pengguna.

Catatan

Izin pengguna saat ini pada database target harus lebih besar dari atau sama dengan izin yang diberikan.

Penggunaan

sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
  • Parameter pertama menentukan pengguna yang menerima izin.

  • Parameter kedua menentukan role database yang diberikan kepada pengguna.

  • Parameter ketiga menentukan satu atau beberapa database target, dipisahkan dengan koma. Parameter ini opsional. Jika dihilangkan, izin diberikan pada semua database pengguna.

Hapus database

Perintah T-SQL

sp_rds_drop_database

Edisi yang didukung

Edisi Ketersediaan Tinggi

Catatan
  • Prosedur tersimpan ini tidak didukung pada instans Edisi Dasar. Gunakan perintah DROP DATABASE db sebagai gantinya.

  • Jalankan perintah ini menggunakan akun istimewa saat terhubung ke database selain database target. Pastikan akun tersebut memiliki izin yang diperlukan pada database target. Untuk informasi lebih lanjut, lihat Modifikasi izin akun.

Deskripsi

Menghapus database dari instans. Operasi ini menghapus semua objek terkait. Untuk instans Edisi Ketersediaan Tinggi, operasi ini juga menghapus mirror database dan menghentikan semua koneksi ke database tersebut.

Penggunaan

USE master
GO
EXEC sp_rds_drop_database 'db'
GO

Parameter menentukan nama database yang akan dihapus.

Konfigurasi pelacakan perubahan

Perintah T-SQL

sp_rds_change_tracking

Seri instans yang didukung

Edisi Ketersediaan Tinggi

Deskripsi

Mengaktifkan atau menonaktifkan pelacakan perubahan untuk database.

Penggunaan

USE db
GO
EXEC sp_rds_change_tracking 'db',1
GO
  • Parameter pertama adalah nama database.

  • Parameter kedua menentukan apakah akan mengaktifkan atau menonaktifkan pelacakan perubahan. Nilai yang valid:

    • 1: Mengaktifkan pelacakan perubahan.

    • 0: Menonaktifkan pelacakan perubahan.

Aktifkan change data capture

Perintah T-SQL

sp_rds_cdc_enable_db

Seri instans yang didukung

Edisi Ketersediaan Tinggi dan Edisi Kluster

Deskripsi

Mengaktifkan change data capture (CDC) untuk database.

Penggunaan

USE db
GO
-- Aktifkan CDC untuk database.
EXEC sp_rds_cdc_enable_db
GO
-- Aktifkan CDC untuk tabel.
EXEC sys.sp_cdc_enable_table
    @source_schema = '<schema name>',
    @source_name = '<table name>',
    @role_name = '<CDC role name>'

Nonaktifkan change data capture

Perintah T-SQL

sp_rds_cdc_disable_db

Seri instans yang didukung

Edisi Ketersediaan Tinggi, Edisi Kluster

Deskripsi

Menonaktifkan change data capture (CDC) untuk database.

Penggunaan

USE db
GO
-- Nonaktifkan change data capture (CDC) di tingkat database.
EXEC sp_rds_cdc_disable_db
GO
-- Nonaktifkan CDC untuk tabel tertentu.
EXEC sys.sp_cdc_disable_table
    @source_schema = '<schema_name>',
    @source_name = '<table_name>',
    @capture_instance = '<capture_instance_name>'
    
-- Dapatkan nama capture instance untuk tabel tertentu.
SELECT capture_instance
FROM cdc.change_tables
WHERE source_schema = '<schema_name>'
    AND source_name = '<table_name>'

Parameter instans RDS

Perintah T-SQL

sp_rds_configure

Famili instans yang didukung

Edisi Dasar dan Edisi Ketersediaan Tinggi

Deskripsi

Konfigurasi parameter instans berikut. Untuk instans primary/standby, pengaturan disinkronkan secara otomatis. Untuk detail lebih lanjut, lihat dokumentasi Microsoft.

Parameter

Deskripsi

Contoh

faktor pengisian (%)

Menentukan persentase fill factor untuk halaman indeks.

EXEC sp_rds_configure 'fill factor (%)', 90;

max worker threads

Menentukan jumlah maksimum thread pekerja untuk mengeksekusi kueri dan memproses permintaan secara paralel.

EXEC sp_rds_configure 'max worker threads', 100;

cost threshold for parallelism

Menentukan threshold biaya untuk paralelisme.

EXEC sp_rds_configure 'cost threshold for parallelism', 30;

max degree of parallelism

Menentukan tingkat paralelisme maksimum untuk kueri.

EXEC sp_rds_configure 'max degree of parallelism', 4;

min server memory (MB)

Menentukan jumlah minimum memori, dalam megabyte (MB), yang digunakan oleh instans RDS.

EXEC sp_rds_configure 'min server memory (MB)', 1024;

max server memory (MB)

Menentukan jumlah maksimum memori, dalam megabyte (MB), yang digunakan oleh instans RDS.

EXEC sp_rds_configure 'max server memory (MB)', 4096;

blocked process threshold (s)

Menentukan ambang batas, dalam detik, untuk melaporkan proses yang diblokir.

EXEC sp_rds_configure 'blocked process threshold (s)', 20;

nested triggers

Mengaktifkan atau menonaktifkan nested triggers. Nilai yang valid:

  • 0: Nonaktifkan.

  • 1: Aktifkan.

EXEC sp_rds_configure 'nested triggers', 1;

Ad Hoc Distributed Queries

Mengaktifkan atau menonaktifkan Ad Hoc Distributed Queries. Nilai yang valid:

  • 0: Nonaktifkan.

  • 1: Aktifkan.

EXEC sp_rds_configure 'Ad Hoc Distributed Queries', 1;

clr enabled

Mengaktifkan atau menonaktifkan eksekusi assembly Common Language Runtime (CLR) buatan pengguna. Nilai yang valid:

  • 0: Nonaktifkan.

  • 1: Aktifkan.

EXEC sp_rds_configure 'clr enabled', 1;

default full-text language

Menentukan bahasa default untuk pencarian teks lengkap. Nilai umum meliputi:

  • 0: Bahasa default. Lokal sistem operasi menentukan nilai default.

  • 1033: English.

  • 2052: Simplified Chinese.

Klik untuk melihat semua nilai

Nilai

Bahasa

Deskripsi

0

Neutral

Neutral

1025

Arabic

Arabic

1026

Bulgarian

Bulgarian

1027

Catalan

Catalan

1028

Traditional Chinese

Traditional Chinese

1029

Czech

Czech

1030

Danish

Danish

1031

German

German

1032

Greek

Greek

1033

English

English

1036

French

French

1037

Hebrew

Hebrew

1039

Icelandic

Icelandic

1040

Italian

Italian

1041

Japanese

Japanese

1042

Korean

Korean

1043

Dutch

Dutch

1044

Bokmål

Norwegian (Bokmål)

1045

Polish

Polish

1046

Brazilian

Brazilian Portuguese

1048

Romanian

Romanian

1049

Russian

Russian

1050

Croatian

Croatian

1051

Slovak

Slovak

1053

Swedish

Swedish

1054

Thai

Thai

1055

Turkish

Turkish

1056

Urdu

Urdu

1057

Indonesian

Indonesian

1058

Ukrainian

Ukrainian

1060

Slovenian

Slovenian

1062

Latvian

Latvian

1063

Lithuanian

Lithuanian

1066

Vietnamese

Vietnamese

1081

Hindi

Hindi

1086

Malay - Malaysia

Malay (Malaysia)

1093

Bengali (India)

Bengali (India)

1094

Punjabi

Punjabi

1095

Gujarati

Gujarati

1097

Tamil

Tamil

1098

Telugu

Telugu

1099

Kannada

Kannada

1100

Malayalam

Malayalam

1102

Marathi

Marathi

2052

Simplified Chinese

Simplified Chinese

2057

British English

British English

2070

Portuguese

Portuguese

2074

Serbian (Latin)

Serbian (Latin)

3076

Chinese (Hong Kong SAR, PRC)

Chinese (Hong Kong SAR)

3082

Spanish

Spanish

3098

Serbian (Cyrillic)

Serbian (Cyrillic)

4100

Chinese (Singapore)

Chinese (Singapore)

5124

Chinese (Macao SAR)

Chinese (Macao SAR)

EXEC sp_rds_configure 'default full-text language', 2052;

default language

Menentukan bahasa default untuk instans. Nilai umum meliputi:

  • 0: English (U.S.).

  • 30: Simplified Chinese.

Klik untuk melihat semua nilai

Nilai

Bahasa

Deskripsi

0

English

English (U.S.)

1

German

German

2

French

French

3

Japanese

Japanese

4

Danish

Danish

5

Spanish

Spanish

6

Italian

Italian

7

Dutch

Dutch

8

Norwegian

Norwegian

9

Portuguese

Portuguese

10

Finnish

Finnish

11

Swedish

Swedish

12

Czech

Czech

13

Hungarian

Hungarian

14

Polish

Polish

15

Romanian

Romanian

16

Croatian

Croatian

17

Slovak

Slovak

18

Slovenian

Slovenian

19

Greek

Greek

20

Bulgarian

Bulgarian

21

Russian

Russian

22

Turkish

Turkish

23

British English

British English

24

Estonian

Estonian

25

Latvian

Latvian

26

Lithuanian

Lithuanian

27

Brazilian Portuguese

Brazilian Portuguese

28

Traditional Chinese

Traditional Chinese

29

Korean

Korean

30

Simplified Chinese

Simplified Chinese

31

Arabic

Arabic

32

Thai

Thai

33

Norwegian (Bokmål)

Norwegian (Bokmål)

EXEC sp_rds_configure 'default language', 30;

max text repl size (B)

Menentukan ukuran maksimum data teks, dalam byte, dalam proses replikasi.

Atur ukuran replikasi teks maksimum ke 100 MB:

EXEC sp_rds_configure 'max text repl size (B)', 104857600;

optimize for ad hoc workloads

Menentukan apakah akan mengaktifkan optimasi cache rencana untuk beban kerja ad hoc. Nilai yang valid:

  • 0: Nonaktifkan.

  • 1: Aktifkan.

EXEC sp_rds_configure 'optimize for ad hoc workloads', 1;

query governor cost limit

Menentukan batas atas perkiraan biaya untuk kueri. Nilai 0 menonaktifkan query governor.

EXEC sp_rds_configure 'query governor cost limit', 10;

recovery interval (min)

Menentukan waktu maksimum, dalam menit, yang dibutuhkan untuk memulihkan database.

EXEC sp_rds_configure 'recovery interval (min)', 60;

remote login timeout (s)

Menentukan periode timeout, dalam detik, untuk upaya login remote.

EXEC sp_rds_configure 'remote login timeout (s)', 30;

remote query timeout (s)

Menentukan periode timeout, dalam detik, untuk kueri remote.

EXEC sp_rds_configure 'remote query timeout (s)', 60;

query wait (s)

Menentukan waktu, dalam detik, yang ditunggu kueri untuk sumber daya memori sebelum timeout.

EXEC sp_rds_configure 'query wait (s)', 5;

min memory per query (KB)

Menentukan jumlah minimum memori, dalam kilobyte (KB), yang dialokasikan untuk mengeksekusi kueri.

EXEC sp_rds_configure 'min memory per query (KB)', 1024;

in-doubt xact resolution

Menentukan cara sistem menyelesaikan transaksi terdistribusi yang belum pasti. Nilai yang valid:

  • 0 (Default untuk instans RDS non-Edisi Kluster): Tidak ada resolusi otomatis. Sistem tidak secara otomatis menyelesaikan transaksi yang belum pasti dan memerlukan intervensi manual.

  • 1: Anggap commit. Jika sistem tidak memiliki informasi yang cukup untuk menyelesaikan transaksi yang belum pasti, transaksi tersebut secara default di-commit.

  • 2 (Default untuk instans RDS Edisi Kluster): Anggap rollback. Jika sistem menemukan transaksi yang belum pasti, transaksi tersebut secara default di-rollback.

EXEC sp_rds_configure 'in-doubt xact resolution', 2;

Penggunaan

EXEC sp_rds_configure '<parameter>',<nilai parameter>
  • Parameter pertama menentukan parameter konfigurasi instans mana yang akan diatur.

  • Parameter kedua adalah nilainya.

Tambahkan linked server

Perintah T-SQL

sp_rds_add_linked_server

Instans yang didukung

  • Edisi instans: Edisi Kluster dan Edisi Ketersediaan Tinggi. Edisi Dasar tidak didukung.

  • Tipe instans: general-purpose dan dedicated. Instans shared tidak didukung.

  • Metode penagihan: subscription dan pay-as-you-go. Instans serverless tidak didukung.

Deskripsi

Perintah ini menambahkan linked server ke instans dan mendukung transaksi terdistribusi. Linked server yang dibuat pada instans primary secara otomatis disinkronkan ke instans secondary. Anda tidak perlu mengonfigurasi ulang linked server setelah alih bencana primary/secondary. Namun, modifikasi pada linked server yang sudah ada di instans primary tidak disinkronkan ke instans secondary. Untuk informasi lebih lanjut, lihat Alih bencana primary/secondary otomatis atau manual.

Penggunaan

DECLARE
@linked_server_name sysname = N'yangzhao_slb', --Nama linked server.
@data_source sysname = N'****.sqlserver.rds.aliyuncs.com,3888', --Alamat IP dan nomor port instans SQL Server tujuan. Format: IP,Port
@user_name sysname = N'ay15' , --Username untuk instans SQL Server tujuan.
@password nvarchar(128) = N'******', --Password untuk user tujuan.
@source_user_name sysname = N'test', --Username pada instans sumber.
@source_password nvarchar(128) = N'******', --Password untuk user sumber.
--Opsi server untuk linked server dalam format XML. Contoh ini mengatur izin untuk akses data, rpc, dan rpc out.
@link_server_options xml
= N'
      <rds_linked_server>
        <config option="data access">true</config>
        <config option="rpc">true</config>
        <config option="rpc out">true</config>
      </rds_linked_server>
'

EXEC sp_rds_add_linked_server
@linked_server_name,
@data_source,
@user_name,
@password,
@source_user_name,
@source_password,
@link_server_options

Konfigurasi trace flag

Perintah T-SQL

sp_rds_dbcc_trace

Edisi yang didukung

Edisi Dasar, Edisi Ketersediaan Tinggi

Deskripsi

Prosedur tersimpan ini mengatur trace flag untuk instans RDS. Saat ini hanya mendukung subset dari trace flag. Untuk instans primary/secondary, platform secara otomatis menyinkronkan pengaturan ini.

Penggunaan

EXEC sp_rds_dbcc_trace '1222',1/0
  • Parameter pertama adalah trace flag.

  • Parameter kedua menentukan apakah akan mengaktifkan atau menonaktifkan trace flag. Nilai yang valid:

    • 1: Mengaktifkan trace flag.

    • 0: Nonaktifkan.

Ubah nama database

Perintah T-SQL

sp_rds_modify_db_name

Edisi instans yang didukung

Edisi Dasar, Edisi Ketersediaan Tinggi, dan Edisi Kluster

Deskripsi

Mengubah nama database. Pastikan akun yang terhubung memiliki izin yang diperlukan pada database target dan database berada dalam status online.

Untuk instans Edisi Ketersediaan Tinggi atau Edisi Kluster, mengubah nama database secara otomatis membangun kembali hubungan primary/secondary. Proses ini mencakup backup dan restore. Jika database berukuran besar, pastikan instans memiliki penyimpanan yang cukup. Anda dapat meningkatkan skala instans jika diperlukan.

Penggunaan

USE master
GO
EXEC sp_rds_modify_db_name 'db','new_db'
GO
  • Parameter pertama adalah nama database asli.

  • Parameter kedua adalah nama database baru.

Berikan role server

Perintah T-SQL

sp_rds_set_server_role

Edisi yang didukung

Edisi Dasar

Deskripsi

Memberikan role server kepada login. Role yang tersedia adalah setupadmin dan processadmin. Untuk membuat akun dengan izin lain atau mempelajari lebih lanjut tentang izin akun, lihat Buat akun dengan izin SA dan Izin akun.

Penggunaan

EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'
  • Menentukan nama login.

  • Menentukan nama role. Nilai yang valid adalah setupadmin dan processadmin.

FAQ

Q: Mengapa saya mendapatkan error Cannot use KILL to kill your own process. saat menjalankan perintah EXEC sp_rds_drop_database 'dbtest'; dengan akun standar?

A: Jalankan perintah tersebut menggunakan akun istimewa dari jendela perintah yang terhubung ke database lain. Pastikan akun tersebut memiliki izin yang diperlukan pada database target. Untuk informasi lebih lanjut, lihat Modifikasi izin akun.