

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# mysql.rds\_execute\_operation
<a name="mysql_rds_execute_operation"></a>

執行 InnoDB 操作，以管理緩衝集區狀態和暫存資料表空間。此程序可用來動態控制 InnoDB 操作，例如傾印和載入緩衝集區狀態，或截斷暫存資料表空間。

## 語法
<a name="mysql_rds_execute_operation-syntax"></a>

```
CALL mysql.rds_execute_operation(operation);
```

## Parameters
<a name="mysql_rds_execute_operation-parameters"></a>

 *操作*   
字串. 要執行的 InnoDB 操作。有效的值如下：  
+ *innodb\_buffer\_pool\_dump\_now* - 傾印緩衝集區目前狀態的操作。
+ *innodb\_buffer\_pool\_load\_now* - 載入已儲存緩衝集區狀態的操作。
+ *innodb\_buffer\_pool\_load\_abort* - 中止緩衝集區載入操作的操作。
+ *innodb\_truncate\_temporary\_tablespace\_now* - 截斷暫存資料表空間的操作。

## 使用須知
<a name="mysql_rds_execute_operation-usage-notes"></a>

只有執行 MariaDB 11.8 版和更高版本的 MariaDB 資料庫執行個體才支援此程序。

在執行期間，二進位記錄會暫時停用，以防止這些管理命令遭到複寫。

此程序會將所有操作記錄在 [https://mariadb.com/docs/server/security/securing-mariadb/securing-mariadb-encryption/data-in-transit-encryption/securing-connections-for-client-and-server#requiring-tls](https://mariadb.com/docs/server/security/securing-mariadb/securing-mariadb-encryption/data-in-transit-encryption/securing-connections-for-client-and-server#requiring-tls) 資料表中，藉以維護稽核軌跡。

## 範例
<a name="mysql_rds_execute_operation-examples"></a>

下列範例示範如何使用 `mysql.rds_execute_operation` 縮減暫存資料表空間：

若要檢查目前的暫存資料表空間大小，請執行下列查詢：

```
      
SELECT FILE_SIZE FROM information_schema.innodb_sys_tablespaces WHERE name LIKE 'innodb_temporary';
+------------+
| FILE_SIZE  |
+------------+
| 6723469312 |  -- 6.3 GB
+------------+
```

您捨棄暫存資料表時，並不會減少全域資料表空間中的儲存用量。若要減少全域資料表空間的大小，請執行 `mysql.rds_execute_operation` 命令以縮減暫存資料表空間。

```
 
CALL mysql.rds_execute_operation('innodb_truncate_temporary_tablespace_now');
Query OK, 2 rows affected (0.004 sec)
```

執行程序後，請確認空間已回收。

```
SELECT FILE_SIZE FROM information_schema.innodb_sys_tablespaces WHERE name LIKE 'innodb_temporary';
+-----------+
| FILE_SIZE |
+-----------+
|  12582912 |  -- 12 MB
+-----------+
```

**注意**  
 縮減操作可能需要一些時間，具體取決於暫存資料表空間大小和目前的工作負載。

**重要**  
只有在所有佔用大小的暫存資料表不再使用時，暫存資料表空間才會縮減。建議您在執行個體上沒有作用中暫存資料表空間時執行此程序。