自動生成Dao性能対策
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-戻る
--[[リリース情報]]
--[[D層自動生成ツール]]
--[[バッチ処理方式>バッチ処理方式#u9c20643]]
*目次 [#j12868f0]
#contents
*概要 [#xc7b824c]
-自動生成Daoにクエリを再利用する~
クエリ・キャッシュ機能が追加された(v02-50から利用可能)。
-本機能を利用する事によって、
>「列数が多過ぎるテーブルに対して、D層自動生成機能に拠るD...
内部で使用される"動的パラメタライズド・クエリ"の実行エン...
>と言う問題が解決される。
※ 本修正は、v02-50に含まれる予定ですが、~
テンプレート修正だけなので旧バージョンと互換性があり、~
&color(red){v02-50以前の旧バージョンにも適用可能};とな...
*詳細 [#h6fa24fc]
**利用方法 [#u3ba88d1]
***自動生成ツールの設定変更 [#c6649c34]
DaoGen_Toolのapp.configを以下の様に変更し、使用するテンプ...
-app.config
--
<add key="DaoTemplateFileName" value="DaoTemplate"/>
>↓ ↓ ↓
--
<add key="DaoTemplateFileName" value="DaoTemplate2"/>
-DaoTemplate2
--https://github.com/OpenTouryoProject/OpenTouryo/blob/de...
--https://github.com/OpenTouryoProject/OpenTouryo/blob/de...
***クエリ・キャッシュIDを指定 [#qc412f52]
クエリ・キャッシュを行う箇所で、自動生成Daoのコンストラク...
-
// 自動生成Daoを生成
DaoShippers genDao = new DaoShippers(this.GetDam());
>↓ ↓ ↓
-
// 自動生成Daoを生成
// https://www.guidgenerator.com/online-guid-generator.a...
DaoShippers genDao = new DaoShippers(this.GetDam(),
"f54d4d7bd5c8441187ec6939c4da7303");
コレにより、
-2回目以降は[[動的パラメタライズド・クエリ]]を、
-処理済みの[[静的パラメタライズド・クエリ]]として、
扱う事が出来る。
**仕様詳細 [#z0f1f563]
-クエリ・キャッシュは各自動生成Daoに、staticメンバのConcu...
-ConcurrentDictionaryのキーは、「クエリ・キャッシュID + ...
-クエリ・キャッシュを行う箇所で、一意のクエリ・キャッシュ...
--通常は、一意の異なるクエリ・キャッシュIDを指定する。~
--同じクエリ・キャッシュIDを使用して異なる箇所で同じクエ...
---ただし、双方の個所で、当該自動生成Daoに指定するパラメ...
---また、異なる自動生成Daoに同じクエリ・キャッシュIDを指...
-クエリ・キャッシュIDには、以下の様な、~
当該個所の当該自動生成Daoに一意性を与え得る値を使用できる。
--GUID(ハード・コーディング)
--呼出し元のクラス.メソッドの完全修飾名
**注意点 [#c7e9af0d]
本機能は、[[動的パラメタライズド・クエリ]]の、
-パラメタ・セットが同じになる地点でのクエリ・キャッシュを...
-パラメタ・セットが異なる地点で、
--同じクエリ・キャッシュIDを使用してクエリ・キャッシュを...
--パラメタライズド・クエリのパラメタ・エラーが発生する。
>ことになる。
-Guid.NewGuid() メソッドはランダム値になり、箇所を特定で...
*参考 [#s8c64910]
-Issue #332 · OpenTouryoProject/OpenTouryo~
Performance improvement of automatically generated Dao.~
https://github.com/OpenTouryoProject/OpenTouryo/issues/332
-Open棟梁:Dao自動生成機能の潜在的な性能問題が完全に解決...
https://www.osscons.jp/jo1qzb1y1-537/
終了行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-戻る
--[[リリース情報]]
--[[D層自動生成ツール]]
--[[バッチ処理方式>バッチ処理方式#u9c20643]]
*目次 [#j12868f0]
#contents
*概要 [#xc7b824c]
-自動生成Daoにクエリを再利用する~
クエリ・キャッシュ機能が追加された(v02-50から利用可能)。
-本機能を利用する事によって、
>「列数が多過ぎるテーブルに対して、D層自動生成機能に拠るD...
内部で使用される"動的パラメタライズド・クエリ"の実行エン...
>と言う問題が解決される。
※ 本修正は、v02-50に含まれる予定ですが、~
テンプレート修正だけなので旧バージョンと互換性があり、~
&color(red){v02-50以前の旧バージョンにも適用可能};とな...
*詳細 [#h6fa24fc]
**利用方法 [#u3ba88d1]
***自動生成ツールの設定変更 [#c6649c34]
DaoGen_Toolのapp.configを以下の様に変更し、使用するテンプ...
-app.config
--
<add key="DaoTemplateFileName" value="DaoTemplate"/>
>↓ ↓ ↓
--
<add key="DaoTemplateFileName" value="DaoTemplate2"/>
-DaoTemplate2
--https://github.com/OpenTouryoProject/OpenTouryo/blob/de...
--https://github.com/OpenTouryoProject/OpenTouryo/blob/de...
***クエリ・キャッシュIDを指定 [#qc412f52]
クエリ・キャッシュを行う箇所で、自動生成Daoのコンストラク...
-
// 自動生成Daoを生成
DaoShippers genDao = new DaoShippers(this.GetDam());
>↓ ↓ ↓
-
// 自動生成Daoを生成
// https://www.guidgenerator.com/online-guid-generator.a...
DaoShippers genDao = new DaoShippers(this.GetDam(),
"f54d4d7bd5c8441187ec6939c4da7303");
コレにより、
-2回目以降は[[動的パラメタライズド・クエリ]]を、
-処理済みの[[静的パラメタライズド・クエリ]]として、
扱う事が出来る。
**仕様詳細 [#z0f1f563]
-クエリ・キャッシュは各自動生成Daoに、staticメンバのConcu...
-ConcurrentDictionaryのキーは、「クエリ・キャッシュID + ...
-クエリ・キャッシュを行う箇所で、一意のクエリ・キャッシュ...
--通常は、一意の異なるクエリ・キャッシュIDを指定する。~
--同じクエリ・キャッシュIDを使用して異なる箇所で同じクエ...
---ただし、双方の個所で、当該自動生成Daoに指定するパラメ...
---また、異なる自動生成Daoに同じクエリ・キャッシュIDを指...
-クエリ・キャッシュIDには、以下の様な、~
当該個所の当該自動生成Daoに一意性を与え得る値を使用できる。
--GUID(ハード・コーディング)
--呼出し元のクラス.メソッドの完全修飾名
**注意点 [#c7e9af0d]
本機能は、[[動的パラメタライズド・クエリ]]の、
-パラメタ・セットが同じになる地点でのクエリ・キャッシュを...
-パラメタ・セットが異なる地点で、
--同じクエリ・キャッシュIDを使用してクエリ・キャッシュを...
--パラメタライズド・クエリのパラメタ・エラーが発生する。
>ことになる。
-Guid.NewGuid() メソッドはランダム値になり、箇所を特定で...
*参考 [#s8c64910]
-Issue #332 · OpenTouryoProject/OpenTouryo~
Performance improvement of automatically generated Dao.~
https://github.com/OpenTouryoProject/OpenTouryo/issues/332
-Open棟梁:Dao自動生成機能の潜在的な性能問題が完全に解決...
https://www.osscons.jp/jo1qzb1y1-537/
ページ名: