cfspreadsheet.(約 600 行) を使用して読み込まれたデータからデータを参照するテーブル更新を行う次のクエリがあり、qry1 として参照されます。SQL が完了するまで約 2 分かかります。更新のタイミングを改善するために SQL を改善できますか? products テーブルには 1360000 行あります。この例では、これらの行のうち 600 行を更新しています。Oracle のバージョンは 11g です Coldfusion のバージョンは 9.1 です
<cfloop from="1" to="#qry1.recordcount#" index="i">
<cfquery name="qry2" datasource="db1">
UPDATE PRODUCTS P
SET P.QTY = <cfqueryparam value="#qry1.ITEM_NEW_INCOMING_QUOTE_QTY#" cfsqltype="cf_sql_numeric" />
WHERE P.PRODUCT= <cfqueryparam value="#qry1.PRODUCT#" cfsqltype="cf_sql_varchar" />
AND EXISTS(
SELECT QUOTE_ID
FROM QUOTE Q
WHERE P.QUOTE_ID = Q.QUOTE_ID
AND Q.QUOTE_NUMBER = <cfqueryparam value="#Val(qry1.QUOTE_NUMBER)#" cfsqltype="cf_sql_numeric" />
)
</cfquery>
</cfloop>