Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Stored procedures

Última atualização: Oct 09, 2026

Este tópico lista os procedimentos armazenados disponíveis para instâncias do ApsaraDB RDS for SQL Server com o SQL Server 2012 ou posterior.

Uso

Os comandos neste tópico são para o SSMS e usam GO como separador de comandos em lote. Ao executar comandos de procedimentos armazenados no DMS, não inclua a palavra-chave GO. Caso contrário, ocorrerá um erro.

Atualizar estatísticas do banco de dados

Comando T-SQL

sp_rds_update_db_stats

Descrição

Atualiza as estatísticas do banco de dados de forma flexível e eficiente, permitindo a configuração de parâmetros como taxa de amostragem, grau de paralelismo, tempo limite e limiar de modificação.

Uso

-- 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)
Nota

Ao especificar apenas o parâmetro @db_name ou ao usar o SQL Server 2008, o sistema executa o procedimento armazenado sp_updatestats por padrão. Para obter mais informações, consulte a documentação oficial da Microsoft.

Parâmetro

Obrigatório

Descrição

@db_name

Sim

Especifica o banco de dados cujas estatísticas serão atualizadas. Exemplo:

-- 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

Não

Especifica a porcentagem da tabela a ser amostrada para as estatísticas. O tipo de dado é float e o valor deve estar no intervalo de [0, 100].

Se omitido, o sistema usará a taxa de amostragem padrão. Para obter mais informações, consulte a documentação oficial da Microsoft. Exemplo:

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

@max_dop

Não

Especifica o grau de paralelismo (DOP). O tipo de dado é int. O valor padrão é 0, o que significa que o sistema usa sua configuração padrão. O valor máximo não pode exceder o número de núcleos da instância RDS. Este parâmetro não é compatível com o SQL Server 2012 e versões anteriores. Exemplo:

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

@timeout_seconds

Não

Especifica o tempo limite para a atualização de estatísticas, em segundos (s). O valor padrão é 3600 segundos (1 hora). Exemplo:

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

@modification_threshold

Não

Especifica o limiar de modificação como uma porcentagem para atualizar as estatísticas. O tipo de dado é int e o valor padrão é 0.

  • Política padrão (quando o valor é 0): a Alibaba Cloud aplica as práticas recomendadas:

    • número de linhas da tabela < 500: 30%

    • 500 ≤ número de linhas da tabela ≤ 1.000.000: 20%

    • número de linhas da tabela > 1.000.000: 5%

  • Entrada manual: especifique o valor do limiar. O valor deve estar no intervalo de [0, 100]. A porcentagem de modificação é calculada usando a fórmula: (número de linhas modificadas * 100) / número total de linhas. Para acionar uma atualização de estatísticas, a porcentagem calculada deve ser maior ou igual ao limiar definido.

    -- 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;

Copiar um banco de dados dentro de uma instância

Comando T-SQL

sp_rds_copy_database

Edições suportadas

Basic Edition e High-availability Edition

Descrição

Cria uma cópia de um banco de dados dentro da mesma instância.

Nota
  • O espaço de armazenamento disponível na instância deve ser de, no mínimo, 1,3 vezes o tamanho do banco de dados de origem.

  • Não é possível usar esta operação em instâncias do ApsaraDB MyBase for SQL Server.

Uso

USE db
GO
EXEC sp_rds_copy_database 'db','db_copy'
GO
  • Primeiro parâmetro: o nome do banco de dados de origem.

  • Segundo parâmetro: o nome do banco de dados de destino.

Colocar um banco de dados online

Comando T-SQL

sp_rds_set_db_online

Edições suportadas

RDS Basic Edition e RDS High-availability Edition

Descrição

Após definir um banco de dados como OFFLINE, não é possível usar a instrução ALTER DATABASE para colocá-lo online novamente. Em vez disso, use este procedimento armazenado.

Uso

USE master
GO
EXEC sp_rds_set_db_online 'db'
GO

Nome do banco de dados a ser colocado online.

Permissões globais de banco de dados

Comando T-SQL

sp_rds_set_all_db_privileges

Edições de instância suportadas

Basic Edition, High-availability Edition

Descrição

Concede permissões a um usuário em todos ou em vários bancos de dados de usuário.

Nota

As permissões do usuário atual nos bancos de dados de destino devem ser maiores ou iguais às permissões a serem concedidas.

Uso

sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
  • Primeiro parâmetro: o usuário que receberá as permissões.

  • Segundo parâmetro: a função de banco de dados a ser concedida ao usuário.

  • Terceiro parâmetro: um ou mais bancos de dados de destino, separados por vírgulas. Este parâmetro é opcional. Omiti-lo concede permissões em todos os bancos de dados de usuário.

Excluir um banco de dados

Comando T-SQL

sp_rds_drop_database

Edições suportadas

High-availability Edition

Nota
  • Este procedimento armazenado não é compatível com instâncias da Basic Edition. Em vez disso, use o comando DROP DATABASE db.

  • Execute este comando usando uma conta privilegiada enquanto estiver conectado a um banco de dados diferente do banco de dados de destino. Certifique-se de que a conta tenha as permissões necessárias no banco de dados de destino. Para obter mais informações, consulte Modificar as permissões de uma conta.

Descrição

Exclui um banco de dados de uma instância, removendo todos os objetos associados. Para instâncias da High-availability Edition, esta operação também remove o espelhamento do banco de dados e encerra todas as conexões com ele.

Uso

USE master
GO
EXEC sp_rds_drop_database 'db'
GO

O parâmetro especifica o nome do banco de dados a ser excluído.

Configurar o controle de alterações

Comando T-SQL

sp_rds_change_tracking

Séries de instância suportadas

High-availability Edition

Descrição

Ativa ou desativa o controle de alterações para um banco de dados.

Uso

USE db
GO
EXEC sp_rds_change_tracking 'db',1
GO
  • Primeiro parâmetro: o nome do banco de dados.

  • Segundo parâmetro: especifica se deve ativar ou desativar o controle de alterações. Valores válidos:

    • 1: Ativa o controle de alterações.

    • 0: Desativa o controle de alterações.

Ativar o change data capture

Comando T-SQL

sp_rds_cdc_enable_db

Séries de instância suportadas

High-availability Edition e Cluster Edition

Descrição

Ativa o change data capture (CDC) para um banco de dados.

Uso

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>'

Desativar o change data capture

Comando T-SQL

sp_rds_cdc_disable_db

Séries de instância suportadas

High-availability Edition, Cluster Edition

Descrição

Desativa o change data capture (CDC) para um banco de dados.

Uso

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>'

Parâmetros da instância RDS

Comando T-SQL

sp_rds_configure

Famílias de instância suportadas

Basic Edition e High-availability Edition

Descrição

Configure os seguintes parâmetros da instância. Em instâncias primárias e secundárias, as configurações são sincronizadas automaticamente. Para obter mais detalhes, consulte a documentação da Microsoft.

Parâmetro

Descrição

Exemplo

fill factor (%)

Especifica a porcentagem do fator de preenchimento para uma página de índice.

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

max worker threads

Especifica o número máximo de threads de trabalho para executar consultas e processar solicitações em paralelo.

EXEC sp_rds_configure 'max worker threads', 100;

cost threshold for parallelism

Especifica o limiar de custo para paralelismo.

EXEC sp_rds_configure 'cost threshold for parallelism', 30;

max degree of parallelism

Especifica o grau máximo de paralelismo para uma consulta.

EXEC sp_rds_configure 'max degree of parallelism', 4;

min server memory (MB)

Especifica a quantidade mínima de memória, em megabytes (MB), usada pela instância RDS.

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

max server memory (MB)

Especifica a quantidade máxima de memória, em megabytes (MB), usada pela instância RDS.

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

blocked process threshold (s)

Especifica o limiar, em segundos, para relatar processos bloqueados.

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

nested triggers

Ativa ou desativa gatilhos aninhados. Valores válidos:

  • 0: Desativar.

  • 1: Ativar.

EXEC sp_rds_configure 'nested triggers', 1;

Ad Hoc Distributed Queries

Ativa ou desativa Ad Hoc Distributed Queries. Valores válidos:

  • 0: Desativar.

  • 1: Ativar.

EXEC sp_rds_configure 'Ad Hoc Distributed Queries', 1;

clr enabled

Ativa ou desativa a execução de assemblies CLR (Common Language Runtime) criados pelo usuário. Valores válidos:

  • 0: Desativar.

  • 1: Ativar.

EXEC sp_rds_configure 'clr enabled', 1;

default full-text language

Especifica o idioma padrão para pesquisa de texto completo. Os valores comuns incluem:

  • 0: Idioma padrão. A localidade do sistema operacional determina o padrão.

  • 1033: Inglês.

  • 2052: Chinês simplificado.

Clique para visualizar todos os valores

Valor

Idioma

Descrição

0

Neutro

Neutro

1025

Árabe

Árabe

1026

Búlgaro

Búlgaro

1027

Catalão

Catalão

1028

Chinês tradicional

Chinês tradicional

1029

Tcheco

Tcheco

1030

Dinamarquês

Dinamarquês

1031

Alemão

Alemão

1032

Grego

Grego

1033

Inglês

Inglês

1036

Francês

Francês

1037

Hebraico

Hebraico

1039

Islandês

Islandês

1040

Italiano

Italiano

1041

Japonês

Japonês

1042

Coreano

Coreano

1043

Holandês

Holandês

1044

Bokmål

Norueguês (Bokmål)

1045

Polonês

Polonês

1046

Brasileiro

Português do Brasil

1048

Romeno

Romeno

1049

Russo

Russo

1050

Croata

Croata

1051

Eslovaco

Eslovaco

1053

Sueco

Sueco

1054

Tailandês

Tailandês

1055

Turco

Turco

1056

Urdu

Urdu

1057

Indonésio

Indonésio

1058

Ucraniano

Ucraniano

1060

Esloveno

Esloveno

1062

Letão

Letão

1063

Lituano

Lituano

1066

Vietnamita

Vietnamita

1081

Híndi

Híndi

1086

Malaio - Malásia

Malaio (Malásia)

1093

Bengali (Índia)

Bengali (Índia)

1094

Panjabi

Panjabi

1095

Guzerate

Guzerate

1097

Tâmil

Tâmil

1098

Télugo

Télugo

1099

Canarês

Canarês

1100

Malaiala

Malaiala

1102

Marata

Marata

2052

Chinês simplificado

Chinês simplificado

2057

Inglês britânico

Inglês britânico

2070

Português

Português

2074

Sérvio (Latino)

Sérvio (Latino)

3076

Chinês (Hong Kong SAR, PRC)

Chinês (Hong Kong SAR)

3082

Espanhol

Espanhol

3098

Sérvio (Cirílico)

Sérvio (Cirílico)

4100

Chinês (Singapore)

Chinês (Singapore)

5124

Chinês (Macao SAR)

Chinês (Macao SAR)

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

default language

Especifica o idioma padrão para a instância. Os valores comuns incluem:

  • 0: Inglês (EUA).

  • 30: Chinês simplificado.

Clique para visualizar todos os valores

Valor

Idioma

Descrição

0

Inglês

Inglês (EUA)

1

Alemão

Alemão

2

Francês

Francês

3

Japonês

Japonês

4

Dinamarquês

Dinamarquês

5

Espanhol

Espanhol

6

Italiano

Italiano

7

Holandês

Holandês

8

Norueguês

Norueguês

9

Português

Português

10

Finlandês

Finlandês

11

Sueco

Sueco

12

Tcheco

Tcheco

13

Húngaro

Húngaro

14

Polonês

Polonês

15

Romeno

Romeno

16

Croata

Croata

17

Eslovaco

Eslovaco

18

Esloveno

Esloveno

19

Grego

Grego

20

Búlgaro

Búlgaro

21

Russo

Russo

22

Turco

Turco

23

Inglês britânico

Inglês britânico

24

Estoniano

Estoniano

25

Letão

Letão

26

Lituano

Lituano

27

Português do Brasil

Português do Brasil

28

Chinês tradicional

Chinês tradicional

29

Coreano

Coreano

30

Chinês simplificado

Chinês simplificado

31

Árabe

Árabe

32

Tailandês

Tailandês

33

Norueguês (Bokmål)

Norueguês (Bokmål)

EXEC sp_rds_configure 'default language', 30;

max text repl size (B)

Especifica o tamanho máximo de dados de texto, em bytes, em um processo de replicação.

Defina o tamanho máximo de replicação de texto como 100 MB:

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

optimize for ad hoc workloads

Especifica se a otimização de cache de plano para cargas de trabalho ad hoc deve ser ativada. Valores válidos:

  • 0: Desativar.

  • 1: Ativar.

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

query governor cost limit

Especifica o limite superior do custo estimado para uma consulta. Um valor de 0 desativa o query governor.

EXEC sp_rds_configure 'query governor cost limit', 10;

recovery interval (min)

Especifica o tempo máximo, em minutos, para a recuperação de um banco de dados.

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

remote login timeout (s)

Especifica o tempo limite, em segundos, para uma tentativa de login remoto.

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

remote query timeout (s)

Especifica o tempo limite, em segundos, para uma consulta remota.

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

query wait (s)

Especifica o tempo, em segundos, que uma consulta aguarda por recursos de memória antes de atingir o tempo limite.

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

min memory per query (KB)

Especifica a quantidade mínima de memória, em kilobytes (KB), alocada para a execução de uma consulta.

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

in-doubt xact resolution

Especifica como o sistema resolve transações distribuídas em dúvida. Valores válidos:

  • 0 (Padrão para instâncias RDS que não são da Cluster Edition): sem resolução automática. O sistema não resolve automaticamente as transações em dúvida e requer intervenção manual.

  • 1: Assumir confirmação. Se o sistema não tiver informações suficientes para resolver uma transação em dúvida, ele confirmará a transação por padrão.

  • 2 (Padrão para instâncias RDS Cluster Edition): Assumir reversão. Se o sistema encontrar uma transação em dúvida, ele reverterá a transação por padrão.

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

Uso

EXEC sp_rds_configure '<parameter>',<parameter value>
  • Primeiro parâmetro: o parâmetro de configuração da instância a ser definido.

  • Segundo parâmetro: o valor do parâmetro.

Adicionar um servidor vinculado

Comando T-SQL

sp_rds_add_linked_server

Instâncias suportadas

  • Edição da instância: Cluster Edition e High-availability Edition. A Basic Edition não é suportada.

  • Tipo de instância: uso geral e dedicada. Instâncias shared não são suportadas.

  • Método de faturamento: assinatura e pagamento conforme o uso. serverless instances não são suportados.

Descrição

Este comando adiciona um servidor vinculado a uma instância e oferece suporte a transações distribuídas. Um servidor vinculado criado na instância primária é sincronizado automaticamente com a instância secundária. Não é necessário reconfigurar o servidor vinculado após um failover primário/secundário. No entanto, as modificações nos servidores vinculados existentes na instância primária não são sincronizadas com a instância secundária. Para obter mais informações, consulte Failover primário/secundário automático ou manual.

Uso

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

Configurar um trace flag

Comando T-SQL

sp_rds_dbcc_trace

Edições suportadas

Basic Edition, High-availability Edition

Descrição

Este procedimento armazenado define um trace flag para uma instância RDS. Atualmente, oferece suporte apenas a um subconjunto de trace flags. Para instâncias primárias e secundárias, a plataforma sincroniza essa configuração automaticamente.

Uso

EXEC sp_rds_dbcc_trace '1222',1/0
  • Primeiro parâmetro: o trace flag.

  • Segundo parâmetro: especifica se deve ativar ou desativar o trace flag. Valores válidos:

    • 1: Ativa o trace flag.

    • 0: Desativado.

Renomear um banco de dados

Comando T-SQL

sp_rds_modify_db_name

Edições de instância suportadas

Basic Edition, High-availability Edition e Cluster Edition

Descrição

Renomeia um banco de dados. Certifique-se de que a conta de conexão tenha as permissões no banco de dados de destino necessárias e que o banco de dados esteja no estado online.

Para instâncias da High-availability Edition ou Cluster Edition, renomear um banco de dados reconstrói automaticamente a relação primária/secundária. Esse processo inclui backup e restauração. Se o banco de dados for grande, certifique-se de que a instância tenha armazenamento disponível suficiente. Você pode aumentar a escala da instância, se necessário.

Uso

USE master
GO
EXEC sp_rds_modify_db_name 'db','new_db'
GO
  • Primeiro parâmetro: o nome original do banco de dados.

  • Segundo parâmetro: o novo nome do banco de dados.

Conceder funções de servidor

Comando T-SQL

sp_rds_set_server_role

Edições suportadas

Basic Edition

Descrição

Concede uma função de servidor a um login. As funções disponíveis são setupadmin e processadmin. Para criar contas com outras permissões ou para saber mais sobre as permissões de conta, consulte Criar uma conta com permissões SA e Permissões da conta.

Uso

EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'
  • Nome do login.

  • Nome da função. Os valores válidos são setupadmin e processadmin.

Perguntas frequentes

P: Por que recebo o erro Cannot use KILL to kill your own process. ao executar o comando EXEC sp_rds_drop_database 'dbtest'; com uma conta padrão?

R: Execute o comando usando uma conta privilegiada a partir de uma janela de comando conectada a um banco de dados diferente. Certifique-se de que a conta tenha as permissões necessárias no banco de dados de destino. Para obter mais informações, consulte Modificar permissões da conta.