Tüm Ürünler
Search
Belge Merkezi

ApsaraDB RDS:Stored procedures

Son Güncelleme:Oct 15, 2026

Bu konu, SQL Server 2012 veya sonraki bir sürümü çalıştıran ApsaraDB RDS for SQL Server örnekleri için kullanılabilen saklı yordamları listeler.

Kullanım

Bu konudaki komutlar SSMS içindir ve toplu iş komutu ayırıcısı olarak GO kullanır. Saklı yordam komutlarını DMS'de çalıştırıyorsanız GO anahtar sözcüğünü dahil etmeyin. Aksi takdirde hata oluşur.

Veritabanı istatistiklerini güncelleme

T-SQL komutu

sp_rds_update_db_stats

Açıklama

Veritabanı istatistiklerini esnek ve verimli bir şekilde günceller. Örnekleme oranı, paralellik derecesi, zaman aşımı ve değişiklik eşiği gibi parametreleri yapılandırabilirsiniz.

Kullanım

-- This is a comprehensive example that includes multiple parameters.
-- Update database statistics for the test_db database. Set the sampling rate to 50%, the degree of parallelism to 4, the timeout to 7,200 seconds, and the modification threshold to 3.
EXEC sp_rds_update_db_stats        
    @db_name = 'test_db',          -- Database name (required)
    @sample_percent = 50,          -- Sampling rate (optional)
    @max_dop = 4,                  -- Degree of parallelism (optional, not supported in SQL Server 2012 and earlier)
    @timeout_seconds = 7200,       -- Timeout in seconds (optional)
    @modification_threshold = 3;   -- Modification threshold (optional)
Not

Yalnızca @db_name parametresini belirtirseniz veya SQL Server 2008 kullanıyorsanız sistem varsayılan olarak sp_updatestats saklı yordamını yürütür. Daha fazla bilgi için bkz. Microsoft resmi belgeleri.

Parametre

Gerekli

Açıklama

@db_name

Evet

İstatistiklerin güncelleneceği veritabanını belirtir. Örnek:

-- Specify only the database name. The update follows the logic of Microsoft's sp_updatestats.
EXEC sp_rds_update_db_stats @db_name = 'test_db';

@sample_percent

Hayır

İstatistikler için örneklenecek tablo yüzdesini belirtir. Veri türü float'tır ve değer [0, 100] aralığında olmalıdır.

Atlanırsa sistem varsayılan örnekleme oranını kullanır. Daha fazla bilgi için bkz. Microsoft resmi belgeleri. Örnek:

-- Set the sampling rate to 30%.
EXEC sp_rds_update_db_stats 
    @db_name = 'test_db',
    @sample_percent = 30;

@max_dop

Hayır

Paralellik derecesini (DOP) belirtir. Veri türü int'tir. Varsayılan değer 0'dır; bu, sistemin kendi varsayılan ayarını kullandığı anlamına gelir. Maksimum değer RDS örnek çekirdek sayısını aşamaz. Bu parametre SQL Server 2012 ve önceki sürümlerde desteklenmez. Örnek:

-- Set the maximum degree of parallelism to 4.
    EXEC sp_rds_update_db_stats 
        @db_name = 'test_db',
        @max_dop = 4;

@timeout_seconds

Hayır

İstatistik güncellemesi için saniye (s) cinsinden zaman aşımını belirtir. Varsayılan değer 3600 saniyedir (1 saat). Örnek:

-- Set the timeout to 7,200 seconds (2 hours).
    EXEC sp_rds_update_db_stats 
     @db_name = 'test_db',
     @timeout_seconds = 7200;

@modification_threshold

Hayır

İstatistikleri güncellemek için yüzde olarak değişiklik eşiğini belirtir. Veri türü int'tir ve varsayılan değer 0'dır.

  • Varsayılan ilke (değer 0 olduğunda): Alibaba Cloud önerilen en iyi uygulamalarını uygular:

    • tablo satır sayısı < 500: %30

    • 500 ≤ tablo satır sayısı ≤ 1.000.000: %20

    • tablo satır sayısı > 1.000.000: %5

  • Manuel giriş: Eşik değerini belirtin. Değer [0, 100] aralığında olmalıdır. Değişiklik yüzdesi şu formülle hesaplanır: (değiştirilen satır sayısı * 100) / toplam satır sayısı. İstatistik güncellemesini tetiklemek için hesaplanan yüzdenin ayarladığınız eşikten büyük veya eşit olması gerekir.

    -- For a table with 10,000 rows, to trigger a statistics update when 100 rows are modified, set the threshold to 1.
        EXEC sp_rds_update_db_stats 
            @db_name = 'test_db',
            @modification_threshold = 1;

Bir örnek içinde veritabanı kopyalama

T-SQL komutu

sp_rds_copy_database

Desteklenen sürümler

Temel Sürüm ve Yüksek Kullanılabilirlik Sürümü

Açıklama

Aynı örnek içinde bir veritabanının kopyasını oluşturur.

Not
  • Örnekteki kullanılabilir depolama alanı, kaynak veritabanının boyutunun en az 1,3 katı olmalıdır.

  • Bu işlemi ApsaraDB MyBase for SQL Server örneklerinde kullanamazsınız.

Kullanım

USE db
GO
EXEC sp_rds_copy_database 'db','db_copy'
GO
  • İlk parametre kaynak veritabanının adıdır.

  • İkinci parametre hedef veritabanının adıdır.

Veritabanını çevrimiçi duruma getirme

T-SQL komutu

sp_rds_set_db_online

Desteklenen sürümler

RDS Temel Sürüm ve RDS Yüksek Kullanılabilirlik Sürümü

Açıklama

Bir veritabanını OFFLINE durumuna ayarladıktan sonra onu tekrar çevrimiçi duruma getirmek için ALTER DATABASE ifadesini kullanamazsınız. Bunun yerine bu saklı yordamı kullanın.

Kullanım

USE master
GO
EXEC sp_rds_set_db_online 'db'
GO

Çevrimiçi duruma getirilecek veritabanının adı.

Genel veritabanı izinleri

T-SQL komutu

sp_rds_set_all_db_privileges

Desteklenen örnek sürümleri

Temel Sürüm, Yüksek Kullanılabilirlik Sürümü

Açıklama

Bir kullanıcıya tüm veya birden çok kullanıcı veritabanında izinler verir.

Not

Mevcut kullanıcının hedef veritabanlarındaki izinleri, verilen izinlerden büyük veya ona eşit olmalıdır.

Kullanım

sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
  • İlk parametre izinleri alacak kullanıcıyı belirtir.

  • İkinci parametre kullanıcıya verilecek veritabanı rolünü belirtir.

  • Üçüncü parametre virgülle ayrılmış bir veya daha fazla hedef veritabanını belirtir. Bu parametre isteğe bağlıdır. Atlanırsa tüm kullanıcı veritabanlarında izinler verilir.

Veritabanı silme

T-SQL komutu

sp_rds_drop_database

Desteklenen sürümler

Yüksek Kullanılabilirlik Sürümü

Not
  • Bu saklı yordam Temel Sürüm örneklerinde desteklenmez. Bunun yerine DROP DATABASE db komutunu kullanın.

  • Bu komutu, hedef veritabanı dışındaki bir veritabanına bağlıyken bir yetkili hesap ile çalıştırın. Hesabın hedef veritabanında gerekli izinlere sahip olduğundan emin olun. Daha fazla bilgi için bkz. Bir hesabın izinlerini değiştirme.

Açıklama

Bir örnekten bir veritabanı siler. Bu işlem ilişkili tüm nesneleri kaldırır. Yüksek Kullanılabilirlik Sürümü örnekleri için bu işlem ayrıca veritabanı yansımasını kaldırır ve veritabanına yönelik tüm bağlantıları sonlandırır.

Kullanım

USE master
GO
EXEC sp_rds_drop_database 'db'
GO

Parametre silinecek veritabanının adını belirtir.

Değişiklik izlemeyi yapılandırma

T-SQL komutu

sp_rds_change_tracking

Desteklenen örnek serileri

Yüksek Kullanılabilirlik Sürümü

Açıklama

Bir veritabanı için değişiklik izlemeyi etkinleştirir veya devre dışı bırakır.

Kullanım

USE db
GO
EXEC sp_rds_change_tracking 'db',1
GO
  • İlk parametre veritabanı adıdır.

  • İkinci parametre değişiklik izlemenin etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler:

    • 1: Değişiklik izlemeyi etkinleştirir.

    • 0: Değişiklik izlemeyi devre dışı bırakır.

Değişiklik verisi yakalamayı etkinleştirme

T-SQL komutu

sp_rds_cdc_enable_db

Desteklenen örnek serileri

Yüksek Kullanılabilirlik Sürümü ve Küme Sürümü

Açıklama

Bir veritabanı için değişiklik verisi yakalamayı (CDC) etkinleştirir.

Kullanım

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

Değişiklik verisi yakalamayı devre dışı bırakma

T-SQL komutu

sp_rds_cdc_disable_db

Desteklenen örnek serileri

Yüksek Kullanılabilirlik Sürümü, Küme Sürümü

Açıklama

Bir veritabanı için değişiklik verisi yakalamayı (CDC) devre dışı bırakır.

Kullanım

USE db
GO
-- Disable change data capture (CDC) at the database level.
EXEC sp_rds_cdc_disable_db
GO
-- Disable CDC for a specific table.
EXEC sys.sp_cdc_disable_table
    @source_schema = '<schema_name>',
    @source_name = '<table_name>',
    @capture_instance = '<capture_instance_name>'
    
-- Get the capture instance name for a specific table.
SELECT capture_instance
FROM cdc.change_tables
WHERE source_schema = '<schema_name>'
    AND source_name = '<table_name>'

RDS örnek parametreleri

T-SQL komutu

sp_rds_configure

Desteklenen örnek aileleri

Basic Edition ve High-availability Edition

Açıklama

Aşağıdaki örnek parametrelerini yapılandırın. Birincil/ikincil örnekler için ayarlar otomatik olarak senkronize edilir. Daha fazla bilgi için bkz. Microsoft belgeleri.

Parametre

Açıklama

Örnek

fill factor (%)

Bir dizin sayfası için doluluk oranı yüzdesini belirtir.

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

max worker threads

Sorguları çalıştırmak ve istekleri paralel işlemek için kullanılacak maksimum iş parçacığı sayısını belirtir.

EXEC sp_rds_configure 'max worker threads', 100;

cost threshold for parallelism

Paralellik için maliyet eşiğini belirtir.

EXEC sp_rds_configure 'cost threshold for parallelism', 30;

max degree of parallelism

Bir sorgu için maksimum paralellik derecesini belirtir.

EXEC sp_rds_configure 'max degree of parallelism', 4;

min server memory (MB)

RDS örneği tarafından kullanılan minimum bellek miktarını megabayt (MB) cinsinden belirtir.

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

max server memory (MB)

RDS örneği tarafından kullanılan maksimum bellek miktarını megabayt (MB) cinsinden belirtir.

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

blocked process threshold (s)

Engellenen işlemlerin raporlanması için eşik değerini saniye cinsinden belirtir.

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

nested triggers

İç içe tetikleyicileri etkinleştirir veya devre dışı bırakır. Geçerli değerler:

  • 0: Devre dışı bırak.

  • 1: Etkinleştir.

EXEC sp_rds_configure 'nested triggers', 1;

Ad Hoc Distributed Queries

Ad Hoc Dağıtılmış Sorguları etkinleştirir veya devre dışı bırakır. Geçerli değerler:

  • 0: Devre dışı bırak.

  • 1: Etkinleştir.

EXEC sp_rds_configure 'Ad Hoc Distributed Queries', 1;

clr enabled

Kullanıcı tarafından oluşturulan Common Language Runtime (CLR) derlemelerinin çalıştırılmasını etkinleştirir veya devre dışı bırakır. Geçerli değerler:

  • 0: Devre dışı bırak.

  • 1: Etkinleştir.

EXEC sp_rds_configure 'clr enabled', 1;

default full-text language

Tam metin araması için varsayılan dili belirtir. Yaygın değerler şunlardır:

  • 0: Varsayılan dil. İşletim sisteminin yerel ayarı varsayılanı belirler.

  • 1033: İngilizce.

  • 2052: Basitleştirilmiş Çince.

Tüm değerleri görüntülemek için tıklayın

Değer

Dil

Açıklama

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

Örnek için varsayılan dili belirtir. Yaygın değerler şunlardır:

  • 0: İngilizce (ABD).

  • 30: Basitleştirilmiş Çince.

Tüm değerleri görüntülemek için tıklayın

Değer

Dil

Açıklama

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)

Bir çoğaltma işlemindeki metin verilerinin maksimum boyutunu bayt cinsinden belirtir.

Maksimum metin çoğaltma boyutunu 100 MB olarak ayarlayın:

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

optimize for ad hoc workloads

Ad hoc iş yükleri için plan önbelleği optimizasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler:

  • 0: Devre dışı bırak.

  • 1: Etkinleştir.

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

query governor cost limit

Bir sorgu için tahmini maliyet üst sınırını belirtir. 0 değeri sorgu yöneticisini devre dışı bırakır.

EXEC sp_rds_configure 'query governor cost limit', 10;

recovery interval (min)

Bir veritabanının kurtarılması için gereken maksimum süreyi dakika cinsinden belirtir.

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

remote login timeout (s)

Uzaktan oturum açma denemesi için zaman aşımı süresini saniye cinsinden belirtir.

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

remote query timeout (s)

Uzak bir sorgu için zaman aşımı süresini saniye cinsinden belirtir.

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

query wait (s)

Bir sorgunun zaman aşımına uğramadan önce bellek kaynakları için beklediği süreyi saniye cinsinden belirtir.

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

min memory per query (KB)

Bir sorgunun yürütülmesi için ayrılan minimum bellek miktarını kilobayt (KB) cinsinden belirtir.

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

in-doubt xact resolution

Sistemin kararsız durumdaki dağıtılmış işlemleri nasıl çözdüğünü belirtir. Geçerli değerler:

  • 0 (Cluster Edition olmayan RDS örnekleri için varsayılan): Otomatik çözüm yok. Sistem kararsız durumdaki işlemleri otomatik olarak çözmez ve manuel müdahale gerektirir.

  • 1: Commit varsay. Sistem, kararsız durumdaki bir işlemi çözmek için yeterli bilgiye sahip değilse işlemi varsayılan olarak commit eder.

  • 2 (RDS Cluster Edition örnekleri için varsayılan): Rollback varsay. Sistem kararsız durumdaki bir işlemle karşılaşırsa işlemi varsayılan olarak geri alır.

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

Kullanım

EXEC sp_rds_configure '<parameter>',<parameter value>
  • İlk parametre, hangi örnek yapılandırma parametresinin ayarlanacağını belirtir.

  • İkinci parametre ise bu parametrenin değeridir.

Bağlantılı sunucu ekleme

T-SQL komutu

sp_rds_add_linked_server

Desteklenen örnekler

  • Örnek sürümü: Cluster Edition ve High-availability Edition. Basic Edition desteklenmez.

  • Örnek türü: genel amaçlı ve özel. shared örnekler desteklenmez.

  • Faturalama yöntemi: abonelik ve kullandıkça öde. serverless instances desteklenmez.

Açıklama

Bu komut, bir örneğe bağlantılı sunucu ekler ve dağıtılmış işlemleri destekler. Birincil örnekte oluşturulan bağlantılı sunucu, ikincil örneğe otomatik olarak eşitlenir. Birincil/ikincil geçiş işleminden sonra bağlantılı sunucuyu yeniden yapılandırmanız gerekmez. Ancak, birincil örnekteki mevcut bağlantılı sunucularda yapılan değişiklikler ikincil örneğe eşitlenmez. Daha fazla bilgi için bkz. Otomatik veya manuel birincil/ikincil geçişi.

Kullanım

DECLARE
@linked_server_name sysname = N'yangzhao_slb', --The name of the linked server.
@data_source sysname = N'****.sqlserver.rds.aliyuncs.com,3888', --The IP address and port number of the destination SQL Server instance. Format: IP,Port
@user_name sysname = N'ay15' , --The username for the destination SQL Server instance.
@password nvarchar(128) = N'******', --The password for the destination user.
@source_user_name sysname = N'test', --The username on the source instance.
@source_password nvarchar(128) = N'******', --The password for the source user.
--Server options for the linked server in XML format. This example sets permissions for data access, rpc, and 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

İzleme işaretini yapılandırma

T-SQL komutu

sp_rds_dbcc_trace

Desteklenen sürümler

Basic Edition, High-availability Edition

Açıklama

Bu saklı yordam, bir RDS örneği için izleme işaretini ayarlar. Şu anda yalnızca belirli izleme işaretlerini destekler. Birincil/ikincil örnekler için platform bu ayarı otomatik olarak eşitler.

Kullanım

EXEC sp_rds_dbcc_trace '1222',1/0
  • İlk parametre izleme işaretidir.

  • İkinci parametre, izleme işaretinin etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler şunlardır:

    • 1: İzleme işaretini etkinleştirir.

    • 0: Devre dışı bırakır.

Veritabanını yeniden adlandırma

T-SQL komutu

sp_rds_modify_db_name

Desteklenen örnek sürümleri

Basic Edition, High-availability Edition ve Cluster Edition

Açıklama

Bir veritabanını yeniden adlandırır. Bağlanan hesabın hedef veritabanı üzerinde gerekli izinlere sahip olduğundan ve veritabanının çevrimiçi durumda olduğundan emin olun.

High-availability Edition veya Cluster Edition örneklerinde, bir veritabanını yeniden adlandırmak birincil/ikincil ilişkisini otomatik olarak yeniden oluşturur. Bu süreçte yedekleme ve geri yükleme yapılır. Veritabanı büyükse, örneğin yeterli kullanılabilir depolama alanına sahip olduğundan emin olun. Gerekirse örneği yükseltebilirsiniz.

Kullanım

USE master
GO
EXEC sp_rds_modify_db_name 'db','new_db'
GO
  • İlk parametre özgün veritabanı adıdır.

  • İkinci parametre yeni veritabanı adıdır.

Sunucu rollerini verme

T-SQL komutu

sp_rds_set_server_role

Desteklenen sürümler

Basic Edition

Açıklama

Bir oturum açma adına sunucu rolü verir. Kullanılabilen roller setupadmin ve processadmin rolleridir. Diğer izinlere sahip hesaplar oluşturmak veya hesap izinleri hakkında daha fazla bilgi edinmek için bkz. SA izinlerine sahip bir hesap oluşturma ve Hesap izinleri.

Kullanım

EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'
  • Oturum açma adını belirtir.

  • Rol adını belirtir. Geçerli değerler setupadmin ve processadmin değerleridir.

SSS

S: Standart bir hesapla EXEC sp_rds_drop_database 'dbtest'; komutunu çalıştırırken neden Cannot use KILL to kill your own process. hatası alıyorum?

C: Komutu, farklı bir veritabanına bağlı olan bir komut penceresinden ayrıcalıklı bir hesap kullanarak çalıştırın. Hesabın hedef veritabanı üzerinde gerekli izinlere sahip olduğundan emin olun. Daha fazla bilgi için bkz. Hesap izinlerini değiştirme.