用于 RDS for Db2 的缓冲池的存储过程
以下存储过程管理 Amazon RDS for Db2 数据库的缓冲池。要运行这些过程,主用户必须先连接到 rdsadmin
数据库。
rdsadmin.create_bufferpool
创建缓冲池。
语法
db2 "call rdsadmin.create_bufferpool( '
database_name
', 'buffer_pool_name
',buffer_pool_size
, 'immediate
', 'automatic
',page_size
,number_block_pages
,block_size
)"
参数
以下参数为必需参数:
database_name
-
要在其上运行命令的数据库的名称。数据类型为
varchar
。 buffer_pool_name
-
要创建的缓冲池的名称。数据类型为
varchar
。
以下参数为可选参数:
buffer_pool_size
-
缓冲池的大小,以页数表示。数据类型为
integer
。默认为-1
。 immediate
-
指定命令是否立即运行。数据类型为
char
。默认为Y
。 automatic
-
指定是否将缓冲池设置为自动。数据类型为
char
。默认为Y
。 page_size
-
缓冲池的页面大小。数据类型为
integer
。有效值:4096
、8192
、16384
、32768
。默认为8192
。 number_block_pages
-
缓冲池中的块页面数。数据类型为
integer
。默认为0
。 block_size
-
块页面的块大小。数据类型为
integer
。有效值:2
到256
。默认为32
。
使用说明
有关检查创建缓冲池的状态的信息,请参阅rdsadmin.get_task_status。
示例
以下示例使用默认参数为名为 TESTDB
的数据库创建名为 BP8
的缓冲池,因此该缓冲池使用 8KB 的页面大小。
db2 "call rdsadmin.create_bufferpool( 'TESTDB', 'BP8')"
以下示例为名为 TESTDB
的数据库创建一个名为 BP16
的缓冲池,该缓冲池使用 16KB 的页面大小,初始页面计数为 1000,并且设置为自动。Db2 会立即运行该命令。如果您使用的初始页面计数为 -1,则 Db2 将使用自动分配页面。
db2 "call rdsadmin.create_bufferpool( 'TESTDB', 'BP16', 1000, 'Y', 'Y', 16384)"
以下示例为名为 TESTDB
的数据库创建名为 BP16
的缓冲池。此缓冲池的页面大小为 16KB,初始页面计数为 10000。Db2 使用 500 个块页面立即运行该命令,块大小为 512。
db2 "call rdsadmin.create_bufferpool( 'TESTDB', 'BP16', 10000, 'Y', 'Y', 16384, 500, 512)"
rdsadmin.alter_bufferpool
更改缓冲池。
语法
db2 "call rdsadmin.alter_bufferpool( '
database_name
', 'buffer_pool_name
',buffer_pool_size
, 'immediate
', 'automatic
',change_number_blocks
,number_block_pages
,block_size
)"
参数
以下参数为必需参数:
database_name
-
要在其上运行命令的数据库的名称。数据类型为
varchar
。 buffer_pool_name
-
要更改的缓冲池的名称。数据类型为
varchar
。 buffer_pool_size
-
缓冲池的大小,以页数表示。数据类型为
integer
。
以下参数为可选参数:
immediate
-
指定命令是否立即运行。数据类型为
char
。默认为Y
。 automatic
-
指定是否将缓冲池设置为自动。数据类型为
char
。默认为N
。 change_number_blocks
-
指定缓冲池中的块页面数是否发生更改。数据类型为
char
。默认为N
。 number_block_pages
-
缓冲池中的块页面数。数据类型为
integer
。默认为0
。 block_size
-
块页面的块大小。数据类型为
integer
。有效值:2
到256
。默认为32
。
使用说明
有关检查更改缓冲池的状态的信息,请参阅rdsadmin.get_task_status。
示例
以下示例将名为 TESTDB
的数据库的缓冲池(名为 BP16
)更改为非自动,并将大小更改为 10000 页。Db2 会立即运行此命令。
db2 "call rdsadmin.alter_bufferpool( 'TESTDB', 'BP16', 10000, 'Y', 'N')"
rdsadmin.drop_bufferpool
删除缓冲池。
语法
db2 "call rdsadmin.drop_bufferpool( '
database_name
', 'buffer_pool_name
'"
参数
以下参数为必需参数:
database_name
-
缓冲池所属的数据库的名称。数据类型为
varchar
。 buffer_pool_name
-
要删除的缓冲池的名称。数据类型为
varchar
。
使用说明
有关检查删除缓冲池的状态的信息,请参阅rdsadmin.get_task_status。
示例
以下示例删除名为 TESTDB
的数据库的名为 BP16
的缓冲池。
db2 "call rdsadmin.drop_bufferpool( 'TESTDB', 'BP16')"