我正在 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>
最佳答案
我找到了解决方案:
开启组件缓存
一旦我打开它,我就得到了基本相同的性能。我认为问题在于 ColdFusion 实际上在不同的组件 (C:\ColdFusion9\CustomTags\com\adobe\coldfusion\base.cfc) 中运行查询,因此如果路径解析未缓存,则每次都必须找到该 CFC。
关于performance - CFScript查询性能很差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12006396/