Caching SQL queriesの回答に満足できません。一般的な方法でSQLクエリの結果をシリアル化および逆シリアル化する方法
私は第三者のソリューションに興味がありません。なぜなら、これは自分で解決するのは簡単な問題だからです。
私はCaching of Linq queriesの代替ソリューションを探していますが、Linqだけでなく、どのSQLクエリでも動作します。理想的な解決策は、execsql @ Sql、@ HashCodeのようなストアドプロシージャを持つことです.HashCodeは、シリアライズされた結果のテーブルをHashCodeで照会し、存在する場合は結果を返し、そうでない場合はクエリを実行し、結果のテーブルにシリアル化された結果を保存して返します。もちろん、返される結果は、格納されていない場合と同じ構造でなければなりません。
このコンテキストでは、キャッシュの有効期限切れ/ガベージ・クリーニングやその他のパフォーマンスの問題については心配しないでください。
これを行うには、SQLクエリのハッシュコードを検出できるようにする必要があります(SQLクエリ文字列にGetHashCode
があるとします)、クエリ結果をシリアル化してデシリアライズします。
クエリの結果が異なる構造になっていることを考慮すると、FOR XML AUTO
の利用率がシリアル化の候補になると思います。しかし、コードを結果構造に依存しないように汎用的に非直列化する方法はありますか?
解決策は、必要に応じてSQL 2008機能を使用できます。
キャッシュは解決するためには問題になるはずです...。解決するのが最も困難な問題の –