Todos los productos
Search
Centro de documentos

ApsaraDB RDS:Stored procedures

Última actualización: Oct 09, 2026

Este tema enumera los procedimientos almacenados disponibles para las instancias de ApsaraDB RDS for SQL Server que ejecutan SQL Server 2012 o versiones posteriores.

Uso

Los comandos de este tema están diseñados para SSMS y utilizan GO como separador de lotes de comandos. Si ejecuta comandos de procedimientos almacenados en DMS, no incluya la palabra clave GO. De lo contrario, se producirá un error.

Actualizar estadísticas de la base de datos

Comando T-SQL

sp_rds_update_db_stats

Descripción

Actualiza las estadísticas de la base de datos de manera flexible y eficiente. Permite configurar parámetros como la tasa de muestreo, el grado de paralelismo, el tiempo de espera y el umbral de modificación.

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

Si solo especifica el parámetro @db_name o utiliza SQL Server 2008, el sistema ejecuta de forma predeterminada el procedimiento almacenado sp_updatestats. Para obtener más información, consulte la documentación oficial de Microsoft.

Parámetro

Obligatorio

Descripción

@db_name

Sí

Especifica la base de datos cuyas estadísticas se van a actualizar. Ejemplo:

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

No

Especifica el porcentaje de la tabla que se va a muestrear para las estadísticas. El tipo de dato es float y el valor debe estar dentro del rango [0, 100].

Si se omite, el sistema utiliza la tasa de muestreo predeterminada. Para obtener más información, consulte la documentación oficial de Microsoft. Ejemplo:

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

@max_dop

No

Especifica el grado máximo de paralelismo (DOP). El tipo de dato es int. El valor predeterminado es 0, lo que indica que el sistema usa su configuración predeterminada. El valor máximo no puede superar RDS instance core count. Este parámetro no es compatible con SQL Server 2012 ni con versiones anteriores. Ejemplo:

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

@timeout_seconds

No

Especifica el tiempo de espera para la actualización de estadísticas, en segundos (s). El valor predeterminado es 3600 segundos (1 hora). Ejemplo:

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

@modification_threshold

No

Especifica el umbral de modificación, como porcentaje, para actualizar las estadísticas. El tipo de dato es int y el valor predeterminado es 0.

  • Directiva predeterminada (cuando el valor es 0): Alibaba Cloud aplica sus prácticas recomendadas:

    • Recuento de filas de la tabla < 500: 30%

    • 500 ≤ recuento de filas de la tabla ≤ 1,000,000: 20%

    • Recuento de filas de la tabla > 1,000,000: 5%

  • Entrada manual: especifique el valor del umbral. El valor debe estar dentro del rango [0, 100]. El porcentaje de modificación se calcula con la fórmula: (number of modified rows * 100) / total number of rows. Para activar una actualización de estadísticas, el porcentaje calculado debe ser mayor o igual al umbral que establezca.

    -- 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 una base de datos dentro de una instancia

Comando T-SQL

sp_rds_copy_database

Ediciones compatibles

Basic Edition y High-availability Edition

Descripción

Crea una copia de una base de datos dentro de la misma instancia.

Nota
  • El almacenamiento disponible en la instancia debe ser como mínimo 1.3 veces el tamaño de la base de datos de origen.

  • Esta operación no se puede utilizar en instancias de ApsaraDB MyBase for SQL Server.

Uso

USE db
GO
EXEC sp_rds_copy_database 'db','db_copy'
GO
  • El primer parámetro es el nombre de la base de datos de origen.

  • El segundo parámetro es el nombre de la base de datos de destino.

Poner una base de datos en línea

Comando T-SQL

sp_rds_set_db_online

Ediciones compatibles

RDS Basic Edition y RDS High-availability Edition

Descripción

Después de establecer una base de datos en OFFLINE, no se puede usar la instrucción ALTER DATABASE para volver a ponerla en línea. Utilice este procedimiento almacenado en su lugar.

Uso

USE master
GO
EXEC sp_rds_set_db_online 'db'
GO

El nombre de la base de datos que se va a poner en línea.

Permisos globales de base de datos

Comando T-SQL

sp_rds_set_all_db_privileges

Ediciones de instancia compatibles

Basic Edition, High-availability Edition

Descripción

Otorga permisos a un usuario en todas las bases de datos de usuario o en varias de ellas.

Nota

Los permisos del usuario actual sobre las bases de datos de destino deben ser mayores o iguales que los permisos que se van a otorgar.

Uso

sp_rds_set_all_db_privileges 'user','db_owner','db1,db2...'
  • El primer parámetro especifica el usuario que recibe los permisos.

  • El segundo parámetro especifica el rol de base de datos que se va a otorgar al usuario.

  • El tercer parámetro especifica una o más bases de datos de destino, separadas por comas. Este parámetro es opcional. Si se omite, se otorgan permisos en todas las bases de datos de usuario.

Eliminar una base de datos

Comando T-SQL

sp_rds_drop_database

Ediciones compatibles

High-availability Edition

Nota
  • Este procedimiento almacenado no es compatible con instancias de Basic Edition. Utilice el comando DROP DATABASE db en su lugar.

  • Ejecute este comando con una privileged account mientras está conectado a una base de datos distinta de la base de datos de destino. Asegúrese de que la cuenta tenga los permisos necesarios sobre la base de datos de destino. Para obtener más información, consulte Modify the permissions of an account.

Descripción

Elimina una base de datos de una instancia. Esta operación quita todos los objetos asociados. En las instancias de High-availability Edition, también elimina la réplica de la base de datos y finaliza todas las conexiones hacia ella.

Uso

USE master
GO
EXEC sp_rds_drop_database 'db'
GO

El parámetro especifica el nombre de la base de datos que se va a eliminar.

Configurar el seguimiento de cambios

Comando T-SQL

sp_rds_change_tracking

Series de instancia compatibles

High-availability Edition

Descripción

Habilita o deshabilita el seguimiento de cambios para una base de datos.

Uso

USE db
GO
EXEC sp_rds_change_tracking 'db',1
GO
  • El primer parámetro es el nombre de la base de datos.

  • El segundo parámetro especifica si se va a habilitar o deshabilitar el seguimiento de cambios. Valores válidos:

    • 1: habilita el seguimiento de cambios.

    • 0: deshabilita el seguimiento de cambios.

Habilitar la captura de datos modificados

Comando T-SQL

sp_rds_cdc_enable_db

Series de instancia compatibles

High-availability Edition y Cluster Edition

Descripción

Habilita la captura de datos modificados (CDC) para una base de datos.

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

Deshabilitar la captura de datos modificados

Comando T-SQL

sp_rds_cdc_disable_db

Series de instancia compatibles

High-availability Edition, Cluster Edition

Descripción

Deshabilita la captura de datos modificados (CDC) para una base de datos.

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 de la instancia RDS

Comando T-SQL

sp_rds_configure

Familias de instancias compatibles

Basic Edition y High-availability Edition

Descripción

Configure a continuación los parámetros de la instancia. En las instancias primarias y en espera, la configuración se sincroniza automáticamente. Para más detalles, consulte la documentación de Microsoft.

Parámetro

Descripción

Ejemplo

fill factor (%)

Especifica el porcentaje del factor de relleno para una página de índice.

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

max worker threads

Define el número máximo de subprocesos de trabajo que ejecutan consultas y procesan solicitudes en paralelo.

EXEC sp_rds_configure 'max worker threads', 100;

cost threshold for parallelism

Establece el umbral de costo para el paralelismo.

EXEC sp_rds_configure 'cost threshold for parallelism', 30;

max degree of parallelism

Indica el grado máximo de paralelismo para una consulta.

EXEC sp_rds_configure 'max degree of parallelism', 4;

min server memory (MB)

Determina la cantidad mínima de memoria, en megabytes (MB), que utiliza la instancia RDS.

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

max server memory (MB)

Fija la cantidad máxima de memoria, en megabytes (MB), que utiliza la instancia RDS.

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

blocked process threshold (s)

Configura el umbral, en segundos, para reportar procesos bloqueados.

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

nested triggers

Habilite o deshabilite los desencadenadores anidados. Valores válidos:

  • 0: Deshabilitar.

  • 1: Habilitar.

EXEC sp_rds_configure 'nested triggers', 1;

Ad Hoc Distributed Queries

Permite habilitar o deshabilitar Ad Hoc Distributed Queries. Valores válidos:

  • 0: Deshabilitar.

  • 1: Habilitar.

EXEC sp_rds_configure 'Ad Hoc Distributed Queries', 1;

clr enabled

Controla si se permite ejecutar ensamblados de Common Language Runtime (CLR) creados por el usuario. Valores válidos:

  • 0: Deshabilitar.

  • 1: Habilitar.

EXEC sp_rds_configure 'clr enabled', 1;

default full-text language

Asigna el idioma predeterminado para la búsqueda de texto completo. Algunos valores comunes son:

  • 0: Idioma predeterminado. La configuración regional del sistema operativo determina el valor predeterminado.

  • 1033: Inglés.

  • 2052: Chino simplificado.

Haga clic en para ver todos los valores

Valor

Idioma

Descripción

0

Neutral

Neutral

1025

Árabe

Árabe

1026

Búlgaro

Búlgaro

1027

Catalán

Catalán

1028

Chino tradicional

Chino tradicional

1029

Checo

Checo

1030

Danés

Danés

1031

Alemán

Alemán

1032

Griego

Griego

1033

Inglés

Inglés

1036

Francés

Francés

1037

Hebreo

Hebreo

1039

Islandés

Islandés

1040

Italiano

Italiano

1041

Japonés

Japonés

1042

Coreano

Coreano

1043

Neerlandés

Neerlandés

1044

Bokmål

Noruego (Bokmål)

1045

Polaco

Polaco

1046

Brasileño

Portugués brasileño

1048

Rumano

Rumano

1049

Ruso

Ruso

1050

Croata

Croata

1051

Eslovaco

Eslovaco

1053

Sueco

Sueco

1054

Tailandés

Tailandés

1055

Turco

Turco

1056

Urdu

Urdu

1057

Indonesio

Indonesio

1058

Ucraniano

Ucraniano

1060

Esloveno

Esloveno

1062

Letón

Letón

1063

Lituano

Lituano

1066

Vietnamita

Vietnamita

1081

Hindi

Hindi

1086

Malayo - Malasia

Malayo (Malasia)

1093

Bengalí (India)

Bengalí (India)

1094

Panyabí

Panyabí

1095

Guyaratí

Guyaratí

1097

Tamil

Tamil

1098

Telugu

Telugu

1099

Canarés

Canarés

1100

Malayalam

Malayalam

1102

Maratí

Maratí

2052

Chino simplificado

Chino simplificado

2057

Inglés británico

Inglés británico

2070

Portugués

Portugués

2074

Serbio (latino)

Serbio (latino)

3076

Chino (RAE de Hong Kong, China)

Chino (RAE de Hong Kong)

3082

Español

Español

3098

Serbio (cirílico)

Serbio (cirílico)

4100

Chino (Singapur)

Chino (Singapur)

5124

Chino (RAE de Macao)

Chino (RAE de Macao)

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

default language

Define el idioma predeterminado de la instancia. Algunos valores comunes son:

  • 0: Inglés (EE. UU.).

  • 30: Chino simplificado.

Haga clic en para ver todos los valores

Valor

Idioma

Descripción

0

Inglés

Inglés (EE. UU.)

1

Alemán

Alemán

2

Francés

Francés

3

Japonés

Japonés

4

Danés

Danés

5

Español

Español

6

Italiano

Italiano

7

Neerlandés

Neerlandés

8

Noruego

Noruego

9

Portugués

Portugués

10

Finlandés

Finlandés

11

Sueco

Sueco

12

Checo

Checo

13

Húngaro

Húngaro

14

Polaco

Polaco

15

Rumano

Rumano

16

Croata

Croata

17

Eslovaco

Eslovaco

18

Esloveno

Esloveno

19

Griego

Griego

20

Búlgaro

Búlgaro

21

Ruso

Ruso

22

Turco

Turco

23

Inglés británico

Inglés británico

24

Estonio

Estonio

25

Letón

Letón

26

Lituano

Lituano

27

Portugués brasileño

Portugués brasileño

28

Chino tradicional

Chino tradicional

29

Coreano

Coreano

30

Chino simplificado

Chino simplificado

31

Árabe

Árabe

32

Tailandés

Tailandés

33

Noruego (Bokmål)

Noruego (Bokmål)

EXEC sp_rds_configure 'default language', 30;

max text repl size (B)

Indica el tamaño máximo de los datos de texto, en bytes, durante un proceso de replicación.

Establezca el tamaño máximo de replicación de texto en 100 MB:

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

optimize for ad hoc workloads

Define si se habilita la optimización de la caché de planes para cargas de trabajo ad hoc. Valores válidos:

  • 0: Deshabilitar.

  • 1: Habilitar.

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

query governor cost limit

Establece el límite superior del costo estimado para una consulta. Un valor de 0 deshabilita el regulador de consultas.

EXEC sp_rds_configure 'query governor cost limit', 10;

recovery interval (min)

Especifica el tiempo máximo, en minutos, que debe tomar la recuperación de una base de datos.

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

remote login timeout (s)

Configura el tiempo de espera, en segundos, para un intento de inicio de sesión remoto.

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

remote query timeout (s)

Define el tiempo de espera, en segundos, para una consulta remota.

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

query wait (s)

Indica el tiempo, en segundos, que una consulta espera recursos de memoria antes de agotar el tiempo de espera.

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

min memory per query (KB)

Asigna la cantidad mínima de memoria, en kilobytes (KB), que se reserva para ejecutar una consulta.

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

in-doubt xact resolution

Determina cómo resuelve el sistema las transacciones distribuidas dudosas. Valores válidos:

  • 0 (valor predeterminado para instancias RDS que no pertenecen a Cluster Edition): Sin resolución automática. El sistema no resuelve automáticamente las transacciones dudosas y requiere intervención manual.

  • 1: Asumir confirmación. Si el sistema carece de información suficiente para resolver una transacción dudosa, la confirma de forma predeterminada.

  • 2 (valor predeterminado para instancias RDS Cluster Edition): Asumir reversión. Cuando el sistema detecta una transacción dudosa, la revierte de forma predeterminada.

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

Uso

EXEC sp_rds_configure '<parameter>',<parameter value>
  • El primer parámetro indica qué parámetro de configuración de la instancia se va a establecer.

  • El segundo parámetro corresponde a su valor.

Agregar un servidor vinculado

Comando de T-SQL

sp_rds_add_linked_server

Instancias compatibles

  • Edición de la instancia: Cluster Edition y High-availability Edition. No hay compatibilidad con Basic Edition.

  • Tipo de instancia: de uso general y dedicada. No hay compatibilidad con las instancias shared.

  • Método de facturación: suscripción y pay-as-you-go. No hay compatibilidad con serverless instances.

Descripción

Este comando agrega un servidor vinculado a una instancia y admite transacciones distribuidas. Un servidor vinculado creado en la instancia principal se sincroniza automáticamente con la instancia secundaria. No es necesario volver a configurar el servidor vinculado después de un cambio entre la instancia principal y la secundaria. Sin embargo, las modificaciones en los servidores vinculados existentes de la instancia principal no se sincronizan con la instancia secundaria. Para obtener más información, consulte Automatic or manual primary/secondary switchover.

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 una marca de seguimiento

Comando de T-SQL

sp_rds_dbcc_trace

Ediciones compatibles

Basic Edition, High-availability Edition

Descripción

Este procedimiento almacenado establece una marca de seguimiento para una instancia de RDS. Actualmente solo admite un subconjunto de marcas de seguimiento. En las instancias principal y secundaria, la plataforma sincroniza esta configuración automáticamente.

Uso

EXEC sp_rds_dbcc_trace '1222',1/0
  • El primer parámetro es la marca de seguimiento.

  • El segundo parámetro indica si se debe habilitar o deshabilitar la marca de seguimiento. Valores válidos:

    • 1: habilita la marca de seguimiento.

    • 0: desactivada.

Cambiar el nombre de una base de datos

Comando de T-SQL

sp_rds_modify_db_name

Ediciones de instancia compatibles

Basic Edition, High-availability Edition y Cluster Edition

Descripción

Cambia el nombre de una base de datos. Asegúrese de que la cuenta de conexión tenga los permisos obligatorios permissions on the target database y de que la base de datos esté en el estado online state.

En las instancias de High-availability Edition o Cluster Edition, cambiar el nombre de una base de datos reconstruye automáticamente la relación entre la instancia principal y la secundaria. Este proceso incluye una copia de seguridad y una restauración. Si la base de datos es grande, asegúrese de que la instancia tenga suficiente almacenamiento disponible. De ser necesario, puede scale up la instancia.

Uso

USE master
GO
EXEC sp_rds_modify_db_name 'db','new_db'
GO
  • El primer parámetro es el nombre original de la base de datos.

  • El segundo parámetro es el nuevo nombre de la base de datos.

Otorgar roles de servidor

Comando de T-SQL

sp_rds_set_server_role

Ediciones compatibles

Basic Edition

Descripción

Otorga un rol de servidor a un inicio de sesión. Los roles disponibles son setupadmin y processadmin. Para crear cuentas con otros permisos o conocer más sobre los permisos de las cuentas, consulte Create an account with SA permissions y Account permissions.

Uso

EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'
  • Especifica el nombre del inicio de sesión.

  • Especifica el nombre del rol. Los valores válidos son setupadmin y processadmin.

Preguntas frecuentes

P: ¿Por qué aparece el error Cannot use KILL to kill your own process. al ejecutar el comando EXEC sp_rds_drop_database 'dbtest'; con una cuenta estándar?

R: Ejecute el comando con una privileged account desde una ventana de comandos conectada a otra base de datos. Asegúrese de que la cuenta tenga los permisos necesarios en la base de datos de destino. Para obtener más información, consulte Modify account permissions.