gpt4 book ai didi

coldfusion - 如何影响常量和空值的性能?

转载 作者:行者123 更新时间:2023-12-03 23:43:28 24 4
gpt4 key购买 nike

考虑以下:

<cfquery name="aQuery" datasource="#aSource#">
SELECT aColumn
FROM aTable
WHERE bColumn = <cfqueryparam value="#aVariable#" cfsqltype="#aSqlType#" />
AND cColumn = 'someConstant'
AND dColumn is null
</cfquery>

如果我改变
AND cColumn = 'someConstant'


AND cColumn = <cfqueryparam value="someConstant" cfsqltype="#aSqlType#" />

是否有潜在的性能改进?是否有可能损害性能?

如果我对 AND dColumn is null 做同样的事情(使用 cfqueryparam)怎么办? ?

我的发现没有定论。

如果它很重要,假设 ColdFusion9 和 Oracle db 11g。

编辑:

我想重申一下,我询问的是 cfqueryparam 标记专门用于常量和/或空值以及性能改进(如果有)。

最佳答案

Is there a potential performance improvement?



不会。绑定(bind)变量在涉及可变参数时最有用。没有它们,每次查询参数更改时,数据库都会生成一个新的执行计划(这很昂贵)。绑定(bind)变量鼓励数据库缓存和重用单个执行计划,即使参数发生变化。这节省了编译成本,提高了性能。常量确实没有任何好处。由于该值永远不会改变,因此数据库将始终重用执行计划。所以没有太多理由在常量上使用它。

Is there potential to hurt performance?



我见过一些特殊情况的提及,其中在常量上使用绑定(bind)变量实际上可能会降低性能。但这实际上是根据具体情况而定的。
  • http://decipherinfosys.wordpress.com/2007/04/02/scenario-for-using-a-constant-instead-of-a-bind-variable-in-an-oltp-system/
  • http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:24110#121568
  • 关于coldfusion - <cfqueryparam> 如何影响常量和空值的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17574276/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com