Funciones de Base de datos ilimitada de Aurora PostgreSQL - Amazon Aurora

Funciones de Base de datos ilimitada de Aurora PostgreSQL

En la tabla siguiente se muestran las nuevas funciones de Base de datos ilimitada de Aurora PostgreSQL.

nota

Las funciones enumeradas en esta tabla se encuentran en el esquema rds_aurora. Cuando utilice una función de Base de datos ilimitada, asegúrese de incluir el nombre del objeto totalmente cualificado: rds_aurora.object_name.

Función de Base de datos ilimitada de Aurora PostgreSQL Función de Aurora PostgreSQL correspondiente
limitless_backend_dsid pg_backend_pid
limitless_cancel_session pg_cancel_backend
limitless_stat_clear_snapshot pg_stat_clear_snapshot
limitless_stat_database_size pg_database_size
limitless_stat_get_snapshot_timestamp pg_stat_get_snapshot_timestamp
limitless_stat_prepared_xacts pg_prepared_xacts
limitless_stat_relation_sizes pg_indexes_size, pg_relation_size, pg_table_size, pg_total_relation_size
limitless_stat_reset pg_stat_reset
limitless_stat_statements_reset pg_stat_statements_reset
limitless_stat_system_waits aurora_stat_system_waits
limitless_terminate_session pg_terminate_backend
limitless_wait_report aurora_wait_report

Los siguientes ejemplos proporcionan detalles sobre las funciones de Base de datos ilimitada de Aurora PostgreSQL. Para obtener más información acerca de las funciones de PostgreSQL, consulte Functions and operators en la documentación de PostgreSQL.

limitless_backend_dsid

La función limitless_backend_dsid devuelve el ID de la sesión actual distribuido. Una sesión distribuida se ejecuta en un enrutador de un grupo de particiones de base de datos e implica procesos de backend en una o más particiones del grupo de particiones de base de datos.

El siguiente ejemplo muestra cómo utilizar la función limitless_backend_dsid.

SELECT rds_aurora.limitless_backend_dsid(); limitless_backend_dsid ------------------------ 8CACD7B04D0FC2A5 (1 row)
limitless_cancel_session

La función limitless_cancel_session es similar a pg_cancel_backend, pero intenta cancelar todos los procesos de backend relacionados con el ID de sesión distribuido proporcionado mediante el envío de una SIGINT (señal de interrupción).

El parámetro de entrada es el siguiente:

  • distributed_session_id (texto): es el ID de la sesión distribuida que se va a cancelar.

Los parámetros de salida son los siguientes:

  • subcluster_id (texto): es el ID del subclúster al que pertenece este proceso.

  • pid (texto): es el ID del proceso de backend.

  • success (booleano): indica si la cancelación se ha realizado correctamente.

El siguiente ejemplo muestra cómo utilizar la función limitless_cancel_session.

SELECT * FROM rds_aurora.limitless_cancel_session('940CD5C81E3C796B'); subcluster_id | pid | success ---------------+-------+--------- 1 | 26920 | t (1 row)
limitless_stat_clear_snapshot

La función limitless_stat_clear_snapshot descarta la instantánea actual de las estadísticas o la información almacenada en caché en todos los nodos.

El siguiente ejemplo muestra cómo utilizar la función limitless_stat_clear_snapshot.

SELECT rds_aurora.limitless_stat_clear_snapshot();
limitless_stat_database_size

La función limitless_stat_database_size devuelve los tamaños de una base de datos del grupo de particiones de base de datos.

El parámetro de entrada es el siguiente:

  • dbname (nombre): es la base de datos de la que se van a obtener los tamaños.

Los parámetros de salida son los siguientes:

  • subcluster_id (texto): es el ID del subclúster al que pertenece este proceso.

  • subcluster_type (texto): es el tipo de subclúster al que pertenece este proceso: router o shard.

  • db_size: es el tamaño de la base de datos de este subclúster en bytes.

El siguiente ejemplo muestra cómo utilizar la función limitless_stat_database_size.

SELECT * FROM rds_aurora.limitless_stat_database_size('postgres_limitless'); subcluster_id | subcluster_type | db_size ---------------+-----------------+---------- 1 | router | 8895919 2 | router | 8904111 3 | shard | 21929391 4 | shard | 21913007 5 | shard | 21831087 (5 rows)
limitless_stat_get_snapshot_timestamp

La función limitless_stat_get_snapshot_timestamp devuelve la marca de tiempo de la instantánea actual de las estadísticas o NULL si no se ha realizado ninguna instantánea de estadísticas. Se toma una instantánea la primera vez que se accede a las estadísticas acumuladas de una transacción si stats_fetch_consistency se establece en snapshot. Devuelve una vista consolidada de las marcas temporales de las instantáneas de todos los nodos. Las columnas subcluster_id y subcluster_type muestran de qué nodo provienen los datos.

El siguiente ejemplo muestra cómo utilizar la función limitless_stat_get_snapshot_timestamp.

SELECT * FROM rds_aurora.limitless_stat_get_snapshot_timestamp(); subcluster_id | subcluster_type | snapshot_timestamp ---------------+-----------------+-------------------- 1 | router | 2 | router | 3 | shard | 4 | shard | 5 | shard | (5 rows)
limitless_stat_prepared_xacts

La función limitless_stat_prepared_xacts devuelve información sobre las transacciones de todos los nodos que están actualmente preparados para la confirmación en dos fases. Para más información, consulte pg_prepared_xacts en la documentación de PostgreSQL.

El siguiente ejemplo muestra cómo utilizar la función limitless_stat_prepared_xacts.

postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_prepared_xacts; subcluster_id | subcluster_type | transaction_id | gid | prepared | owner_id | database_id ---------------+-----------------+----------------+------------------------------+-------------------------------+------------+-------------------- 8 | shard | 5815978 | 7_4599899_postgres_limitless | 2024-09-03 15:51:17.659603+00 | auroraperf | postgres_limitless 12 | shard | 4599138 | 7_4599899_postgres_limitless | 2024-09-03 15:51:17.659637+00 | auroraperf | postgres_limitless (2 rows)
limitless_stat_relation_sizes

La función limitless_stat_relation_sizes devuelve tamaños distintos de una tabla del grupo de particiones de base de datos.

Los parámetros de entrada son los siguientes:

  • relnspname (nombre): es el nombre del esquema que contiene la tabla.

  • relname (nombre): es el nombre de la tabla.

Los parámetros de salida son los siguientes:

  • subcluster_id (texto): es el ID del subclúster al que pertenece este proceso.

  • subcluster_type (texto): es el tipo de subclúster al que pertenece este proceso: router o shard.

  • main_size: es el tamaño en bytes de la bifurcación de datos principal de este nodo.

  • fsm_size: es el tamaño en bytes del mapa del espacio libre de la tabla de este nodo.

  • vm_size: es el tamaño en bytes del mapa de visibilidad de la tabla de este nodo.

  • init_size: es el tamaño en bytes de la inicialización de la tabla en este nodo.

  • toast_size: es el tamaño en bytes de la tabla de TOAST asociada a la tabla de esta bifurcación.

  • index_size: es el tamaño en bytes de todos los índices de la tabla en este nodo.

  • total_size: es el tamaño en bytes de todos los segmentos de la tabla en este nodo.

El siguiente ejemplo muestra cómo utilizar la función limitless_stat_relation_sizes (se han omitido algunas columnas).

SELECT * FROM rds_aurora.limitless_stat_relation_sizes('public','customers'); subcluster_id | subcluster_type | main_size | fsm_size | vm_size | toast_size | table_size | total_size ---------------+-----------------+-----------+----------+---------+------------+------------+------------ 1 | router | 0 | 0 | 0 | 0 | 0 | 0 2 | router | 0 | 0 | 0 | 0 | 0 | 0 3 | shard | 4169728 | 4177920 | 1392640 | 1392640 | 11132928 | 11132928 4 | shard | 4169728 | 4177920 | 1392640 | 1392640 | 11132928 | 11132928 5 | shard | 3981312 | 4227072 | 1409024 | 1409024 | 11026432 | 11026432 (5 rows)
limitless_stat_reset

La función limitless_stat_reset restablece todos los contadores de estadísticas de la base de datos actual a cero (0). Si track_functions está activado, la columna stats_reset de limitless_stat_database mostrará la última vez que se restablecieron las estadísticas de la base de datos. De forma predeterminada, solo un superusuario puede ejecutar limitless_stat_reset. Se puede conceder permiso a otros usuarios con el privilegio EXECUTE.

El siguiente ejemplo muestra cómo utilizar la función limitless_stat_reset.

SELECT tup_inserted, tup_deleted FROM pg_stat_database WHERE datname = 'postgres_limitless'; tup_inserted | tup_deleted --------------+------------- 896 | 0 (1 row) SELECT rds_aurora.limitless_stat_reset(); limitless_stat_reset --------------------- (1 row) SELECT tup_inserted, tup_deleted FROM pg_stat_database WHERE datname = 'postgres_limitless'; tup_inserted | tup_deleted -------------+------------- 0 | 0 (1 row)
limitless_stat_statements_reset

La función limitless_stat_statements_reset descarta las estadísticas recopiladas hasta el momento por limitless_stat_statements correspondientes a los parámetros username, dbname, distributed_query_id y queryid especificados. Si no se especifica alguno de los parámetros, se utiliza el valor predeterminado "" o 0 (no válido) para cada uno de ellos y se restablecen las estadísticas que coincidan con otros parámetros. Si no se especifica ningún parámetro, o si todos los parámetros especificados son "" o 0 (no son válidos), la función descarta todas las estadísticas. Si se descartan todas las estadísticas de la vista limitless_stat_statements, la función también restablece las estadísticas de la vista limitless_stat_statements_info.

Los parámetros de entrada son los siguientes:

  • username (nombre): es el usuario que ha consultado la instrucción.

  • dbname (nombre): es la base de datos en la que se ha ejecutado la consulta.

  • distributed_query_id (bigint): es el ID de la consulta principal del nodo coordinador. Esta columna es NULL si se trata de la consulta principal. El nodo coordinador envía el ID de consulta distribuida a los nodos participantes. Por lo tanto, para los nodos participantes, los valores del ID de consulta distribuida y del ID de consulta son diferentes.

  • queryid (bigint): es el ID de consulta de la instrucción.

El siguiente ejemplo muestra cómo utilizar la función limitless_stat_statements_reset para restablecer todas las estadísticas recopiladas por limitless_stat_statements.

SELECT rds_aurora.limitless_stat_statements_reset();
limitless_stat_system_waits

La función limitless_stat_system_waits devuelve una vista consolidada de los datos de los eventos de espera de aurora_stat_system_waits, que informa de la actividad de espera en todo el sistema en una instancia, desde todos los nodos. Las columnas subcluster_id y subcluster_type muestran de qué nodo provienen los datos.

El siguiente ejemplo muestra cómo utilizar la función limitless_stat_system_waits.

postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_system_waits() lssw, pg_catalog.aurora_stat_wait_event() aswe WHERE lssw.event_id=aswe.event_id and aswe.event_name='LimitlessTaskScheduler'; subcluster_id | subcluster_type | type_id | event_id | waits | wait_time | event_name ---------------+-----------------+---------+-----------+--------+--------------+------------------------ 1 | router | 12 | 201326607 | 677068 | 616942216307 | LimitlessTaskScheduler 2 | router | 12 | 201326607 | 678586 | 616939897111 | LimitlessTaskScheduler 3 | shard | 12 | 201326607 | 756640 | 616965545172 | LimitlessTaskScheduler 4 | shard | 12 | 201326607 | 755184 | 616958057620 | LimitlessTaskScheduler 5 | shard | 12 | 201326607 | 757522 | 616963183539 | LimitlessTaskScheduler (5 rows)
limitless_terminate_session

La función limitless_terminate_session es similar a pg_terminate_backend, pero intenta finalizar todos los procesos de backend relacionados con el ID de sesión distribuido proporcionado mediante el envío de una SIGTERM (señal de interrupción).

El parámetro de entrada es el siguiente:

  • distributed_session_id (texto): es el ID de la sesión distribuida que se va a finalizar.

Los parámetros de salida son los siguientes:

  • subcluster_id (texto): es el ID del subclúster al que pertenece este proceso.

  • pid (texto): es el ID del proceso de backend.

  • success (booleano): indica si el proceso ha finalizado correctamente.

El siguiente ejemplo muestra cómo utilizar la función limitless_terminate_session.

SELECT * FROM rds_aurora.limitless_terminate_session('940CD5C81E3C796B'); subcluster_id | pid | success ---------------+-------+--------- 1 | 26920 | t (1 row)
limitless_wait_report

La función limitless_wait_report devuelve la actividad del evento de espera durante un período de tiempo desde todos los nodos. Las columnas subcluster_id y subcluster_type muestran de qué nodo provienen los datos.

Los parámetros de salida son los siguientes:

  • subcluster_id (texto): es el ID del subclúster al que pertenece este proceso.

  • subcluster_type (texto): es el tipo de subclúster al que pertenece este proceso: router o shard.

El resto de las columnas son las mismas que en aurora_wait_report.

El siguiente ejemplo muestra cómo utilizar la función limitless_wait_report.

postgres_limitless=> select * from rds_aurora.limitless_wait_report(); subcluster_id | subcluster_type | type_name | event_name | waits | wait_time | ms_per_wait | waits_per_xact | ms_per_xact ---------------+-----------------+-----------+------------+-------+-----------+-------------+--------------- +------------- 1 | router | Client | ClientRead | 57 | 741550.14 | 13009.652 | 0.19 | 2505.237 5 | shard | Client | ClientRead | 54 | 738897.68 | 13683.290 | 0.18 | 2496.276 4 | shard | Client | ClientRead | 54 | 738859.53 | 13682.584 | 0.18 | 2496.147 2 | router | Client | ClientRead | 53 | 719223.64 | 13570.257 | 0.18 | 2429.810 3 | shard | Client | ClientRead | 54 | 461720.40 | 8550.378 | 0.18 | 1559.86