使用SafePeak动态数据库缓存提升SQL Server的性能
jopen 13年前
<p align="justify"> <a href="/misc/goto?guid=4958198554618197671">SafePeak</a> 是一种即插即用的动态数据库缓存解决方案(Dynamic Database Caching Solution),它的设计初衷是要为构建在 SQL Server 上的应用程序提升数据访问性能。它会动态地缓存内存中的结果集,从而减轻执行“Select”操作的查询和存储过程的负载,进而减少读取操作的反应时间以及总体上的数据库负载。</p> <p align="justify"> SafePeak 位于应用程序和数据库、服务器之间,因此所有对数据库的调用都会经过它。它会在 RAM 中按照原样保存数据库返回的结果集。当曾经执行过的查询或者带有相同参数的存储过程经过 SafePeak 的时候,它就会在几毫秒之内从 RAM 中返回结果,而不会把查询发送给数据库。SafePeak 会使用流量分析识别出可重复出现的查询,从而受益于缓存机制。</p> <p style="text-align:center;"><img title="使用SafePeak动态数据库缓存提升SQL Server的性能" border="0" alt="使用SafePeak动态数据库缓存提升SQL Server的性能" src="https://simg.open-open.com/show/e17837dee535454d1ef4f5c4af799828.jpg" width="525" height="276" /></p> <p align="justify"> 当数据无效的时候,缓存就会得到更新——所有数据库查询,而不仅仅是读取查询会通过 SafePeak 到达 SQL Server,SafePeak 会分析用于数据更新事件的T-SQL 语句,然后刷新相关的缓存记录。由于 SafePeak 无法发现所有数据修改,而那肯定会破坏缓存的正确性,因此新版本的 SafePeak 还包含了一项叫做登录触发器(logon trigger)的特性,它会在有人直接连接 SQL Server 的时候通知 SafePeak,然后在需要的时候刷新所有缓存。</p> <p align="justify"> 以下是之前的 SQL Server MVP、现在微软的技术布道师 <a href="/misc/goto?guid=4958198555375191272">Pinal Dave</a><a href="/misc/goto?guid=4958198556102565417">所说的</a>:</p> <blockquote> <p align="justify">尽管特定的环境肯定会受益于 SafePeak,像选择操作量大(high SELECTivity)和加强了读取操作(read-intensive)的数据库,但它是为 OLTP 应用程序设计的。看起来使用 SafePeak 能够获得最大速度提升的环境是电子商务、云和托管的应用程序、大型 SharePoint 和 CRM Dynamics 实现、ERP 和 CRM 应用程序。</p> </blockquote> <p align="justify"> Pinal 已经针对 SafePeak 的各种特性撰写了<a href="/misc/goto?guid=4958198556102565417">多篇</a><a href="/misc/goto?guid=4958198557532297870">博文</a>。你还可以在厂商的站点上阅读到更多关于 <a href="/misc/goto?guid=4958198558269793663">SafePeak 架构</a>的内容。</p> <p> <strong>查看英文原文:</strong><a href="/misc/goto?guid=4958198559035853767">Accelerate SQL Server Performance With SafePeak’s Dynamic Database Caching</a></p> 来自: <a id="link_source2" href="/misc/goto?guid=4958198559775150055" target="_blank">InfoQ</a>