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 に答える