gpt4 book ai didi

coldfusion - 带有 cfqueryparam 的 cfquery 可以获得多长时间?

转载 作者:行者123 更新时间:2023-12-04 22:46:37 26 4
gpt4 key购买 nike

我有一些代码可以执行紧密循环以插入数千条记录,最近我介绍了 <cfqueryparam> , CF 崩溃。

有点像...

<cfquery>
<cfloop query="qBars">
INSERT INTO Foo
SET
xx = <cfqueryparam value="#qBars.aa#" sqltype="CF_SQL_VARCHAR">,
yy = <cfqueryparam value="#qBars.bb#" sqltype="CF_SQL_INTEGER">
</cfloop>
</cfquery>

这过去在没有 <cfqueryparam> 的情况下工作得很漂亮.然而,对于 cfqueryparam,我想当 qBars 的记录计数时可能会有问题。很大(10,000+)。

现在……我该怎么办?重构要在数据库级别处理的整个事情?

谢谢

最佳答案

老实说,如果我需要将 10k+ 记录加载到数据库中,我不会使用 CFQUERY。您的数据库几乎肯定具有批量加载数据的能力,因此我建议对此进行调查。

我认为允许的绑定(bind)参数的最大数量是由数据库引擎设置的限制,而不是由 CF 或底层 JDBC 设置的。但是您没有提到您使用的是哪个数据库,因此很难在那里为您研究答案。

我四处窥探并为 SQL Server 找到了这张表:http://msdn.microsoft.com/en-us/library/ms143432.aspx .它没有具体提到一个内联查询可以有多少个绑定(bind)参数,但是他们提到的 2100 个参数的 proc 或函数的数字与我之前能够在列表中传递的最大参数数量相同(比如 WHERE IN 子句)。我一直认为这是一个列表的最大大小,但也许它实际上是一般参数的截止值。这对您来说很容易测试……用 1005 次迭代尝试您的循环,看看它是否有效。然后尝试 1006 次迭代,我可能认为它会失败。

当然,如果您恰好在 SQL Server 上...

另外,你说这东西崩溃了,但你没有说错误是什么......当你问这类问题时,包含这类信息总是有帮助的。

关于coldfusion - 带有 cfqueryparam 的 cfquery 可以获得多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128852/

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