存储/重用sql查询结果的最佳方法

时间:2014-07-11 13:10:22

标签: c# sql .net-4.0 firebird

我有一个请求想出一种存储和重用SQL查询结果的方法,我非常需要建议。
具体情况:
他们希望使用调度程序执行长时间运行的查询,然后以稍后可用于创建表,图表和报告的方式存储结果。报告需要能够进一步过滤结果集(基于用户输入),因此使调度程序执行报告是不可能的。结果需要以某种统一的方式存储:我们不知道长时间运行的查询的确切数量,可能有数百个。我已经考虑过制作描述和存储结果集的数据库表,但实际上并不喜欢“存储表的表”的想法(并且认为它可能不会被强类型化)。我还想过将这些结果序列化为文件。我不知道我们要坚持多久这些查询结果,这当然很重要。我们正在使用.net 4.0和firebird技术。如果我没有将这个问题发布到正确的地方,请给我一些指示。

1 个答案:

答案 0 :(得分:0)

我们正在考虑做一些非常相似的事情。对于我们的实现,我们希望将结果集存储为

List<T> 
某个对象的

,所以如果它是书籍,我们就会有一本书类。在这种情况下,RunQuery函数将返回

List<Book> RunQuery(MyQuery query);

对于集合的实际存储,Memcache服务器似乎是满足我们需求的一个很好的简单选择。有许多免费提供的memcache客户端非常容易使用。您需要将对象二进制序列化,但这非常简单 - 请查看.net的protobuf

我们可以使用从Angular或jQuery调用的web api端点来查询&#34;查询&#34;或过滤从Memcache服务器检索的结果集。我们通常构造我们的GetData样式方法以首先自动查找缓存,然后命中数据库。你可以做类似的事情,也许可以在它们中加入一些通知混合 - 即我们将运行查询并在完成时ping你。

希望这有帮助

斯科特