私は、アプリケーションの待ち時間を短縮するために、以下によく記述されているパターン(またはそのパターンについてはパターン)があるかどうかを調べようとしています。私はこのテクニックを試してみましたが、これは私にレイテンシを約20%節約するように見えます。これはよく文書化されたパターンですか?
あなたは、データベースへの複数のSELECT呼び出しを行うと、あなたはそれを最適化するために必要なメソッド/関数/プロシージャを持っている:私はすべての側面は、私が
コンテキストを意識する必要があることに影響があるかどうかを知りたいのです。
あなたの方法の流れがあると言うことができます:
getDBConnection()
execute("Select a,b from tableA");
bind a with varA
bind b with varB
---SOME Business Logic-----
execute("Select c,d from tableB");
bind c with varC
bind d with varD
---SOME more Business Logic-----
execute("Select e,f from tableC");
bind e with varE
bind f with varF
---SOME more Business Logic-----
releaseConnection()
ソリューション: 使用連合すべてのデータベースへの単一の呼び出し
getDBConnection()
execute("Select a,b,'sqlA' from tableA"+
" UNION ALL "+
" Select c,d,'sqlB' from tableB"+
" UNION ALL "+
"Select e,f,'sqlC' from tableC");
bind a,b where records have "sqlA"
bind c,d where records have "sqlB"
bind e,f where records have "sqlC"
releaseConnection()
--------Do all Business Logic here-----
+1「この最適化手法は無関係の操作を一括して行う可能性があり、後で個々の操作の再利用性が制限されます」 –
QueryManagerの一部を受け入れる – rajeshnair