You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cfqueryparam传多值引发索引扫描及504超时问题求助

ColdFusion cfqueryparam 引发索引扫描及部分环境超时问题
  • 使用cfqueryparam传递逗号分隔列表值时,SQL执行index scan而非index seek,经确认是nvarchar(4000)类型导致的问题。
  • 5个环境的CF版本和数据库版本完全一致,但其中2个环境触发504超时错误,且仅在WHERE子句使用tracknumber条件时出现。
  • 直接在SQL中写入具体值时查询运行正常,已初步排除代码问题,询问ColdFusion Administrator中是否存在与cfqueryparam相关的遗漏配置导致该问题。

相关代码

SELECT *
FROM 
    PSOPackage PP with(nolock)
    JOIN PSO PINV with(nolock) ON PINV.PSOID = PP.PSOID 
    JOIN File F with(nolock) ON F.FileID = PINV.FileID 
    JOIN Company CY with(nolock) ON F.companyID = CY.companyID  
    left JOIN Package E ON PP.PackageID = E.PackageID
WHERE   
        <cfif form.PSOID neq 'None' and form.PSOID neq ''>
            PP.PSOID in 
                ( <cfqueryparam value="#form.PSOID#" cfsqltype="cf_sql_varchar" list="true" separator=","> )
        <cfelse>
            tracknumber  in 
                ( <cfqueryparam value="#form.tracknumber#" cfsqltype="cf_sql_varchar" list="true" separator=","> )
        </cfif>
ORDER BY pp.tracknumber, CY.abbr, f.file_Dt DESC

测试正常的代码(直接传值)

<cfelse>
    tracknumber  in 
        ('1V0Y780E0352033914','1M0Y780E0331023829','1S0Y780E0326482481','1P0Y780E0320555454','1X0Y770B0329555454')
</cfif>

内容的提问来源于stack exchange,提问作者sangeeta bhat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:15:27