PostgreSQL:编写一个只调用存储过程并传递其参数的语句值得吗
如果我们有一份准备好的声明,如:PostgreSQL:编写一个只调用存储过程并传递其参数的语句值得吗,sql,postgresql,Sql,Postgresql,如果我们有一份准备好的声明,如: SELECT my_func($1::text, $2::int) 如果我用这个调用准备一个语句并通过准备好的语句进行调用,速度是否会提高。让我在这里引用: 准备好的语句在以下情况下具有最大的性能优势: 单个会话用于执行大量类似的任务 声明。性能差异将特别明显 如果语句的计划或重写非常复杂,则意义重大,例如 例如,如果查询涉及多个表的联接或需要 若干规则的应用。如果语句相对简单,则 计划和重写,但执行成本相对较高,性能 事先准备好的陈述的优势将不那么明显 这是
SELECT my_func($1::text, $2::int)
如果我用这个调用准备一个语句并通过准备好的语句进行调用,速度是否会提高。让我在这里引用:
准备好的语句在以下情况下具有最大的性能优势:
单个会话用于执行大量类似的任务
声明。性能差异将特别明显
如果语句的计划或重写非常复杂,则意义重大,例如
例如,如果查询涉及多个表的联接或需要
若干规则的应用。如果语句相对简单,则
计划和重写,但执行成本相对较高,性能
事先准备好的陈述的优势将不那么明显
这是我的。我认为它清楚地说明了在哪些条件下PREPARE
会有好处
尽管如此,目前所有语言都提供了一种编写语句()的本地方式,因此整个机制都是在幕后为您执行的
简而言之:
- 如果是来自客户端的一个计时器,则直接执行李>
- 如果它来自应用程序并假设用户输入,则使用您的平台及其功能为安全原因做好准备李>
- 如果在一个会话中多次执行语句,请使用任何方法(无论是
还是平台功能)为性能原因进行准备PREPARE