2

我在 ColdFusion 中运行一个非常简单的查询。如果我在 cfquery 标记中运行它,它会在大约 20 毫秒内完成。如果我在 cfscript 中使用查询对象,大约需要 500 毫秒才能完成。它似乎不是查询本身——调试输出表明查询在两种情况下都在大约 10 毫秒内完成。知道发生了什么吗?

CFQuery 版本:

<cfquery name="selUsers" datasource="m112dev_2">
  SELECT * FROM Users
  WHERE User_ID = 3
</cfquery>

CFScript 版本:

<cfscript>
  q = new Query();
  q.setDataSource('m112dev_2');
  q.setName('selUsers');
  selUsers = q.execute(sql="SELECT * FROM Users
                            WHERE User_ID = 3
                     ").getResult();
</cfscript>
4

1 回答 1

3

我找到了解决方案:

开启组件缓存

一旦我打开它,我得到基本相同的性能。我认为问题在于 ColdFusion 实际上是在不同的组件(C:\ColdFusion9\CustomTags\com\adobe\coldfusion\base.cfc)中运行查询,所以如果没有缓存路径解析,它每次都必须找到该 CFC。

于 2012-08-17T16:07:33.317 回答