PostgreSQL 8.0.0 中文文档(8mao手册在线) | ||||
---|---|---|---|---|
Prev | Fast Backward | Fast Forward | Next |
SPI_prepare 为声明的命令创建和返回一个执行规划但是不执行查询。 应该只从一个已联接的过程部调用。
如果相同或者类似的查询要多次重复执行,那么只进行一次查询规划应该是更好些。 SPI_prepare 把一个命令字串转换成一个执行计划,你可以用 SPI_execute_plan 多次执行它。
我们可以把准备好的查询通用化,方法是在那些普通查询里是常量的地方书写参数($1,$2,等等)。 参数的数值随后在调用 SPI_execute_plan 的时候声明。 这样就允许已准备的查询在远比没有参数时广泛得多的场合下使用。
SPI_prepare 返回的规划只能在当前过程调用中使用, 因为 SPI_finish 释放为一个规划分配的内存。 不过,一个规划可以用函数 SPI_saveplan 函数保存更长的时间。