开发者社区 问答 正文

SQL Server 2017 内存优化表如何实现本地发布

我们的应用场景是一个表,增,改非常频繁,并且查询也相当频繁。现在的做法是读写分离,分发到下面的服务器上进行查询。

如果用上SQL Server 2017 的内存表,增,改的性能会极大的提升,但是我试验了,内存表作为发布服务器,会错误,所以分发不到其他服务器上,读没有分离出来。

请问大神,有什么办法或方法吗? 非常感谢!

展开
收起
wf141732 2019-11-12 09:37:42 871 分享 版权
阿里云 AI 助理回答

针对您的应用场景,您已经采用了读写分离策略来应对高频的增、改、查操作。您提到使用SQL Server 2017的内存表显著提升了增、改性能,但遇到了内存表作为发布服务器时无法正确分发数据到其他服务器进行查询的问题。

考虑到您的需求和遇到的挑战,这里有一些建议和可能的解决方案:

解决方案一:调整内存表策略

  • 探索内存表复制机制:研究SQL Server是否支持将内存表的数据变化实时同步到普通表中,这样可以利用内存表提升写操作性能,同时保持数据同步到可复制的传统表结构,进而实现读写分离。

解决方案二:采用中间件或代理服务

  • 部署数据库代理层:如同MySQL Proxy在MySQL中的应用一样,考虑使用SQL Server兼容的代理软件(如SQL Server自带的Always On可用性组或者第三方中间件),该代理能够识别读写请求,并智能地将读请求导向至一个或多个专门用于读取的副本节点上。这些副本节点可以是包含内存表的高性能服务器,而写操作则直接指向主服务器。

解决方案三:优化现有架构

  • 增强现有读服务器能力:如果直接使用内存表作为发布服务器不可行,尝试在现有的读服务器上优化存储配置和索引策略,以提高查询效率。虽然这不直接解决内存表分发问题,但能间接提升整体系统性能。

解释与注意事项

  • 技术限制与兼容性:确保任何解决方案都符合SQL Server 2017的技术规范和最佳实践,特别是关于内存表的使用和数据同步机制。
  • 资源评估与分配:在实施任何变更前,彻底评估系统的资源需求,包括内存、CPU和网络带宽,确保新架构能够有效支撑高并发读写操作。
  • 测试与监控:在生产环境部署前,务必在测试环境中充分验证所选方案的可行性和稳定性,并建立严密的监控体系,以便及时发现并解决问题。

综上所述,通过调整内存表的使用策略、引入数据库代理层或优化现有架构,都有可能是解决您当前困境的有效途径。每种方法都需要细致规划和测试,以确保既能发挥内存表的性能优势,又能维持系统的稳定性和扩展性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答