扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:microsoft.com 来源:microsoft.com 2007年9月1日
关键字: 数据库 SQL Server 2005 SQL Server
缓存应用程序:
缓存应用程序可以是客户端应用程序,也可以是应用程序服务器应用程序,这种应用程序需要保留查找值或很少更改的数据的本地数据缓存,从而避免对后端数据库进行不必要的往返操作。缓存用于使应用程序可以从本地计算机检索需要的数据,以便改进性能并减少网络流量。当需要对用于呈现(下拉选择或引用列表)或用于查找业务逻辑中的应用程序服务器的相对静态数据记录列表进行访问时,需要使用缓存应用程序。
为了对数据进行最快速的检索,可以将数据缓存在内存中,在需要缓存的值时直接返回数据。但是,您可能不想或不能在应用程序每次重新启动时从服务器刷新缓存,因此可能需要为缓存值提供本地数据存储。另外,如果正在缓存的值列表非常大(例如,产品目录),您可能不想将整个目录保存在应用程序内存中,因为偶尔才会需要访问集合中的项目。不论是出于哪个原因,将 SSCE 作为本地数据缓存存储位置对于您的体系结构可能都是个很好的选择。
第一次运行应用程序时,需要从服务器对缓存数据进行初始化,缓存数据通常有与它关联的过期日期或时间,这时必须从数据源刷新缓存。与缓存关联的超时取决于应用程序要求、数据的更改频率以及应用程序和用户可以容忍缓存数据的延迟时间。
在设计应用程序如何使用数据缓存时,必须选择采用被动还是主动的数据缓存策略。如果使用“被动缓存”,则应用程序将尝试从本地数据缓存获得需要的数据。如果数据不存在,应用程序逻辑会从服务器中检索数据,并将结果存储在缓存中,供后续检索使用。当缓存由于超时或其他条件而变为无效时,应用程序必须从数据源刷新缓存。如果使用“主动缓存”,则会根据某些条件(例如,从服务器定时刷新)主动更新缓存。使用主动缓存策略时,应用程序代码将更简单,因为它始终可以直接引用本地缓存中的数据。但是,必须编写额外代码才能初始化主动缓存,并使它保持最新。
对于缓存应用程序,可能要执行两级缓存。您可能需要在持久性存储(例如,SSCE)中缓存数据,从而使缓存的数据驻留在本地计算机中,以便在应用程序重新启动后仍然有效,或避免将所有缓存数据加载到内存中。但是,您可能还要将某些数据从持久性缓存内缓存到内存中,以便在需要数据时可以尽可能最快地检索数据(例如,用于驱动文本框或下拉列表输入控件中的自动完成逻辑)。对于这两个缓存级别,可以有相同或不同的缓存策略(主动对被动)。
图 5 显示示例缓存应用程序体系结构,缓存同时位于客户端应用程序和中间层应用程序服务器中。客户端应用程序在持久 SSCE 存储和内存中都缓存数据,因为在客户端应用程序中通常不用担心内存消耗量。应用程序服务器缓存将持久存储大型查找列表(例如,产品目录),不是为了避免由于可伸缩性原因而消耗内存,而是为了避免在需要查找产品目录从而获取某些数据(例如,查找某个价格范围内的所有产品)时,因往返访问数据库服务器而影响性能。缓存应用程序和执行同步的应用程序(例如,现场团队应用程序)之间的主要差异是:在缓存应用程序中,只从服务器将数据拉入本地数据缓存中。如果进行同步,则在完成编辑之后,还会将缓存中的数据与后端数据库同步。
结论:
很多应用程序都需要可靠、事务性、持久、高效的数据存储,但并不一定需要 SQL Server 2005 提供的全部功能。SSCE 提供了免费、功能强大而且容易使用的数据库引擎,它可以广泛用于各种应用场合和体系结构中。它可以用于现场团队应用程序、个人信息管理应用程序、小型 Web 应用程序或应用程序数据缓存。它提供了很多目前已有和新出现的数据同步选项,使其可以成为使用后端 SQL Server 2005 数据库的更大型分布式应用程序体系结构的一部分。SSCE 应当是任何需要轻型关系数据存储的应用程序的备选数据库技术之一。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者