Hen*_*nry 2 sql-server coldfusion jdbc prepared-statement
cfquery只要有1个,是否会成为准备好的声明cfqueryparam?还是有其他条件?
当ORDER BY条款或FROM子句是动态的时会发生什么?每个独特的组合会成为准备好的声明吗?
当我们正在做的事情发生cfloop与INSERT,与cfqueryparam'ed每一个值,并调用不同迭代次数的CFQUERY?
准备好的陈述过多的潜在问题?
DB如何处理准备好的声明?它们会被转换成类似于商店程序的东西吗?
在什么情况下我们不应该使用准备好的声明?
谢谢!
我可以回答你问题的某些部分:
只要有一个查询,查询就会成为prepareStatement <queryparam.我在过去添加了一个
where 1 = <cfqueryparam value="1"没有任何动态参数的查询,以使它们作为preparedStatements运行
大多数数据库与存储过程类似地处理preparedStarements,只是暂时保留,而不是长期保留,但细节可能是特定于数据库的.
假设您正在使用ColdFusion提供的驱动程序,如果您打开DataSource设置的高级面板中的"日志活动"复选框,那么您将获得有关CF如何与数据库交互以及何时创建数据的非常详细的信息.一个新的preparedStatement以及它何时重新使用它们.我建议你自己尝试一下,因为涉及很多因素(数据库设置,驱动程序,CF版本等).如果您使用数据库日志记录,请在运行测试代码之前重新启动CF,这样您就可以看到它创建预准备语句,否则您只会看到它按ID重用语句,而不会看到这些语句是什么.