我有一个软件根据某些文件进行繁重的处理。 我不得不在SQL Server中查询一些表的过程,这就是查杀数据库和应用程序的性能。 (其他应用程序使用相同的表格)。减少SQL Server开销缓存查询结果
优化查询和代码后,获得更好的结果,但不够。经过研究,我达成了解决方案:缓存一些查询结果。我的想法是缓存正在处理的文件所需的一个特定表(标识为开销)行。我认为在使用AppCache Fabric(我在MS堆栈中)时,做了一些测试,发现它对于小对象(appcache服务具有〜350MB的ram用法,没有对象)有很大的内存使用量。但我需要在这些结果表中的某些查询(如搜索姓氏,SSN,生日等)
我的第二个选择是MongoDB中的缓存存储。我对此进行了研究,大多数人阅读推荐使用memcached或Redis,但我使用的是Windows服务器,并且它们不受官方支持。
在这种情况下使用mongo作为缓存存储这是一个好方法?或者AppFabric Caching +标签搜索更好?
等cachisng解决方案上的数据不会经常更改。真正的问题是我需要根据文件行查询SQLServer的时间量+我所做的查询类型(我的搜索主要在varchar列中)。此查询阻止其他应用程序,并且花费太长的时间来处理文件。今天,我在1.07小时内处理了一批(每个文件大约1MB)260MB,在不久的将来,我将处理GB文件,并且处理时间不会超过一天。 – Zingui 2013-04-28 20:52:57
如果数据非常静态,并且只关注构建结果集需要很长时间,则可以创建“实体化视图”(Sql Server中的“索引视图”)。看到这里:http:// msdn。microsoft.com/en-us/library/dd171921%28SQL.100%29.aspx 您可能需要创建其他表格等来创建搜索功能。然后,一些进程将填充所有这些。然后您的数据将在Sql Server上高度可用。如果这不符合您的条件,您可以随时使用您选择的缓存机制的服务器内存。 – 2013-04-29 16:45:42
索引视图现在可以工作并且可以节省一段时间的成本,但是将来我必须使用缓存(在专用服务器中)来减少这种开销。谢谢@ T.S。 – Zingui 2013-05-02 14:34:46