使用 SafePeak 动态数据库缓存提升 SQL Server 的性能

  • Roopesh Shenoy
  • 侯伯薇

2011 年 11 月 9 日

话题:DevOps

SafePeak是一种即插即用的动态数据库缓存解决方案(Dynamic Database Caching Solution),它的设计初衷是要为构建在 SQL Server 上的应用程序提升数据访问性能。它会动态地缓存内存中的结果集,从而减轻执行“Select”操作的查询和存储过程的负载,进而减少读取操作的反应时间以及总体上的数据库负载。

SafePeak 位于应用程序和数据库、服务器之间,因此所有对数据库的调用都会经过它。它会在 RAM 中按照原样保存数据库返回的结果集。当曾经执行过的查询或者带有相同参数的存储过程经过 SafePeak 的时候,它就会在几毫秒之内从 RAM 中返回结果,而不会把查询发送给数据库。SafePeak 会使用流量分析识别出可重复出现的查询,从而受益于缓存机制。

当数据无效的时候,缓存就会得到更新——所有数据库查询,而不仅仅是读取查询会通过 SafePeak 到达 SQL Server,SafePeak 会分析用于数据更新事件的 T-SQL 语句,然后刷新相关的缓存记录。由于 SafePeak 无法发现所有数据修改,而那肯定会破坏缓存的正确性,因此新版本的 SafePeak 还包含了一项叫做登录触发器(logon trigger)的特性,它会在有人直接连接 SQL Server 的时候通知 SafePeak,然后在需要的时候刷新所有缓存。

以下是之前的 SQL Server MVP、现在微软的技术布道师Pinal Dave所说的

尽管特定的环境肯定会受益于 SafePeak,像选择操作量大(high SELECTivity)和加强了读取操作(read-intensive)的数据库,但它是为 OLTP 应用程序设计的。看起来使用 SafePeak 能够获得最大速度提升的环境是电子商务、云和托管的应用程序、大型 SharePoint 和 CRM Dynamics 实现、ERP 和 CRM 应用程序。

Pinal 已经针对 SafePeak 的各种特性撰写了多篇博文。你还可以在厂商的站点上阅读到更多关于SafePeak 架构的内容。

查看英文原文:Accelerate SQL Server Performance With SafePeak’s Dynamic Database Caching
DevOps