ColdFusionは、より良いのcfqueryパフォーマンスを得るために、Javaメソッド/オブジェクトを使用することはできますか?
-
20-09-2019 - |
質問
のcfqueryに代わるだろうJavaメソッド/オブジェクトがある場合、私は両方の変数衛生、および優れたキャッシュ方法が許可されていること、疑問に思ってます。
私はあなたのデータ型とchar型の長さを取得するために、情報スキーマを使用して、クエリ内の変数のデータ型と長さを検証するためにそれを使用できることを知っています。
しかし、誰もcfqueryタグにキャッシュを使用しないようにバインド変数と変数衛生のためでcfqueryparamを使用して変換してます。
私はそこに多くのパフォーマンスとスケーラビリティを得るためのより良い方法やスクリプトをして期待していたので...
個人的に、私たちは新しい方法やcfqueryタグでのキャッシングの方法が必要だと思います。私たちが本当にしたいことはあるのでない分のx個のためにキャッシュするが、データが変化するまでキャッシュに、再びデータが変更されるまで、再びキャッシュ、新鮮なデータを使用して..
その代わり年間にわたり、我々は我々がコントロールまたはデータが変更されたりされなかったときの意識の多くを与えるものではありませんColdFusionでのcfqueryをキャッシュする時間の長さを計算するために持っていた..
これは理にかなっていますか?
解決
まずは、誤解を解消しましょう。 CF8 +で、あなたはでcfqueryparamを使用するクエリをキャッシュすることができます。私はあなたがそれが広くしばらくするためのベストプラクティスと考えられてきた使用しているので、どちらかの「誰もが、変換」によって何を意味するのか本当にわからない。
だから、私はあなたの質問は、実際に議論の余地があると思います。あなたがをしながらすることができますのキャッシュクエリを手動でcfqueryparamはしばらくの間でこれを行う理由はされていない(と私は他のデータ型のためにこれを行う)。
他のヒント
、ORM(オブジェクト関係マッピング)が移動するための方法です。あなたはCF9を使用している場合は、Hibernateのライブラリ(Javaの)は、データのアクセスとキャッシュを管理するためにボンネットの下に使用されています。
CF7 +ユーザーは、ORMの機能のためにマーク・マンデルによって建設された転送ライブラリを使用することができます。
私はその転送ORMを注意したいのですが、のjarofclay のの答えが内蔵されたキャッシュシステム(今後のバージョンはいくつかのより良い既存のソリューションを使用できるようになりますが)に加えて、これはどのようにありますそれは、より良いパフォーマンスを提供します。
任意の方法は、私はより良いスキーマとクエリの最適化を開始し、プラスのキャッシュを使用しようと思い、それは本当にさまざまなレベルで行うことができます:DBから描画されたコンテンツにまで照会します。
たとえば、Railoの新バージョンでは、Ehcacheのようないくつかのエンタープライズ・レベルのキャッシュエンジンをサポートしています。
IMOこれは、Javaおよびクエリを台無しにしようとするよりも、あなたのパフォーマンスの課題を解決するための良い方法です。私が正しく物事を理解していれば、彼らはまだ多分同じ基本バイトコードと、同じデータソースを流れるされます。