いくつかの多対多テーブルを使用して、少し複雑なデータベース設定をしています。
このデータから XML ドキュメントを生成しようとしています。ある言語で名前が定義されていない場合は、(null を表示する代わりに) 別の言語から名前を取得しようとするなど、少しチェックがあります。
ループ内に多くのクエリがあるという問題があります。
パフォーマンスを向上させるために、何を遠ざけるか、何を使用するかなど、これに関するガイドラインはありますか?
cfoutput cfloop cfquery ?
いくつかの多対多テーブルを使用して、少し複雑なデータベース設定をしています。
このデータから XML ドキュメントを生成しようとしています。ある言語で名前が定義されていない場合は、(null を表示する代わりに) 別の言語から名前を取得しようとするなど、少しチェックがあります。
ループ内に多くのクエリがあるという問題があります。
パフォーマンスを向上させるために、何を遠ざけるか、何を使用するかなど、これに関するガイドラインはありますか?
cfoutput cfloop cfquery ?
ループ ロジックが基本的にデータ処理を行っている場合、たとえば、最初のクエリの値に基づいて、次のクエリのためにデータベースに戻るものを決定する場合、パフォーマンスのためにできる最善のことは、そのロジックをすべて削除することです。 CF コードを取得し、DB に配置します。データ処理にはDBを使用し、処理されたデータを処理して出力に変換するにはCFを使用します。
CF がデータ操作を実行する必要があるのは、データベース、リモート サービス、ファイル システム、別のデータベースなど、さまざまなソースからのデータを処理する必要がある場合のみです。基本的には、データベースがデータ処理を実行できない場合のみです。 ColdFusion を使用する必要があります。
「ある言語で名前が定義されていない場合のように、別の言語から名前を取得しようとする(nullを表示する代わりに)」について。
クエリでこれを実行できるはずです。そこにあるほとんどすべてのデータベースには、合体機能があります。それらはすべてケース構造もサポートしています。状況に最も適した方法を選択するだけです。