有一對夫婦是非常低效的東西會在這裏。首先,它會生成1,000 user
對象,這在ColdFusion中的單個請求中並不是一個好主意。其次,它運行着1,000個數據庫查詢,這在任何編程語言中都不是一個好主意。
我會停止使用這種情況下的模型對象,並找出如何將邏輯壓縮成單個數據庫查詢。 Wheels中的ORM通常非常有用,但它在這種情況下有其侷限性。
例如,如果你使用SQL Server 2008中,你可以做到這一點你user
模型中一個呼叫中保持一切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或其他數據庫引擎。
這是Adobe的官方解決方法嗎? – Henry 2011-06-01 16:50:42
@亨利:http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=85736是記錄的錯誤。 AFAIK Adobe尚未確認或評論此問題。在實踐中,這是相對罕見的。 – orangepips 2011-06-01 17:20:39