ここでは、かなり非効率的なことが 2 つあります。まず、1,000 個のuser
オブジェクトを生成しますが、これは ColdFusion で 1 回の要求で行うのはあまり良い考えではありません。2 つ目は、1,000 件のデータベース クエリを実行していることです。これは、どのプログラミング言語でも実行するのは良い考えではありません。
このような場合にモデル オブジェクトを使用するのをやめて、ロジックを 1 つのデータベース クエリに凝縮する方法を見つけます。Wheels の ORM は一般的に非常に便利ですが、このような状況では限界があります。
たとえば、SQL Server 2008 を使用している場合は、user
モデル内でこれを実行して、すべてを 1 回の呼び出しで保持できcfquery
ます。
<cffunction name="batchCreate">
<cfquery datasource="#get('dataSourceName')#">
INSERT INTO
#this.tableName()# (#this.columnNameForProperty("name")#)
VALUES
<cfloop from="1" to="10000" index="i">
(<cfqueryparam cfsqltype="cf_sql_varchar" value="Test#i#">)
<cfif i lt 10000>,</cfif>
</cfloop>
</cfquery>
</cffunction>
もちろん、MySQL または別のデータベース エンジンを使用している場合、クエリは異なって見えます。