Sql server 2005 如何从完整的SQL查询转变为类似NoSQL的查询?
在我的一个过程中,我有一个SQL查询,它占用了总执行时间的10-20%。此SQL查询对我的数据库进行筛选,并加载PricingGrid对象的列表。 所以我想提高这些性能。 到目前为止,我猜有两种解决方案: 使用NoSQL解决方案,这些都是改进阅读过程的好解决方案Sql server 2005 如何从完整的SQL查询转变为类似NoSQL的查询?,sql-server-2005,.net-3.5,nosql,Sql Server 2005,.net 3.5,Nosql,在我的一个过程中,我有一个SQL查询,它占用了总执行时间的10-20%。此SQL查询对我的数据库进行筛选,并加载PricingGrid对象的列表。 所以我想提高这些性能。 到目前为止,我猜有两种解决方案: 使用NoSQL解决方案,这些都是改进阅读过程的好解决方案 但是迁移似乎很困难,需要做很多工作(比如定期将数据从sql server导入nosql) 我没有任何知识,我甚至不知道我应该使用哪一个(我首先使用的是Ravendb,因为我遵循ayende,它是由.net社区完成的) 我的模型中可能有
- 但是迁移似乎很困难,需要做很多工作(比如定期将数据从sql server导入nosql)
- 我没有任何知识,我甚至不知道我应该使用哪一个(我首先使用的是Ravendb,因为我遵循ayende,它是由.net社区完成的)
- 我的模型中可能有一些东西需要修改,以使我的对象适合nosql数据库
- 当我的服务器没有足够的内存来加载所有内容时,这可能是一个问题
- 我可能会重新发明NoSQL提供者发明的轮子(索引…)
.net 3.5、SQL Server 2005、windows Server 2005从SQL迁移数据只是第一步。 移动到文档存储(如RavenDB或MongoDB)也意味着您需要:
- 对数据进行非规范化处理
- 在代码中执行模式验证
- 处理代码中复杂操作的并发性,因为您不再有事务(至少不是以相同的方式)
- 在部分提交(更改)的情况下执行回滚
- 根据您的更新、读取和网络模型,您可能还需要处理冲突
我本人从未使用过它,我发现出于上述原因我需要NoSQL,或者我可以使用存储过程、索引和表视图以满足我的需要的方式优化RDBMS。Asaf提供了有关NoSQL使用以及何时最合适的大量信息。考虑到您主要关心的是性能,我倾向于同意他的观点——采用一个全新(而且非常不同)的数据持久化平台比欺骗您的SQL Server集群要花更多的时间和精力。也就是说,我的回答主要是针对你问题的“如何”部分 消除误解:
RavenSession
对象中使用类似ORM的“工作单元”模式。是的,您的数据验证需要在代码中完成,但无论如何您都应该在代码中完成。根据我的经验,这是一个过度炒作的骗局订单
对象时,不仅要确保其属性,还要确保相关集合(如项目
)加载到内存中
c、 实例化Raven/Mongo存储库并将数据推送到其中。主要实体成为JSON序列化的“顶级文档”或“根聚合”,其集合的数据嵌套在其中。保存更改并关闭存储库。注意:您可以根据数据需要将此步骤分解为多个小部分订单
和项目
顶级文档