缓存sql数据库的结果,还是每次查询?

2023-12-14

我正在根据 sql 查询生成页面。

这是查询:

CREATEPROCEDURE sp_searchUsersByFirstLetter 
    @searchQuery nvarchar(1)
AS
BEGIN
    SET NOCOUNT ON;

    SELECT UserName
    FROM Users Join aspnet_Users asp on Users.UserId = asp.UserId
    WHERE (LoweredUserName like @searchQuery + '%')

我可以为字母表中的每个字母调用此过程,并获取以该字母开头的所有用户。然后,我将这些用户放入我的一个页面上的列表中。

我的问题是:将用户列表缓存到我的网络服务器上,而不是每次都查询数据库会更好吗?像这样:

HttpRuntime.Cache.Insert("users", listOfUsersReturnedFromQuery, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);

如果用户列表过期一小时对我来说没关系。这样会比每次查询数据库效率更高吗?


最好在查询满足以下约束的情况下使用缓存:

  • 数据对时间要求不高,即确保缓存命中不会导致代码错过最近的数据更新而破坏您的应用程序。
  • 数据未排序,即 A、B、C、D、E 被缓存,F 由另一个用户插入,您的用户插入 G 并命中缓存,结果是 ABCDEG 而不是 ABCDEFG。
  • 数据变化不大。
  • 数据被频繁查询和重复使用。

大小并不是一个真正的因素,除非它真的会消耗你的内存。

我发现最好的缓存表之一是设置表,其中数据实际上是静态的,几乎每个页面请求都会被查询,并且更改不必立即进行。

您要做的最好的事情是测试哪些查询执行得最多,然后选择那些对数据库服务器负担最高的查询。其中,缓存任何你能负担得起的东西。您还应该考虑调整最大缓存对象年龄。如果您每秒执行 100 次查询,则只需将其缓存 1 秒即可将查询速度降低 99%,从而消除了大多数实际情况下的更新延迟问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缓存sql数据库的结果,还是每次查询? 的相关文章

  • .net 应用程序中的内存泄漏

    我正在 VB net 2005 中开发一个桌面应用程序 该应用程序包含一个间隔为 1 分钟的计时器 每次计时器计时 就会执行一组函数 大部分与数据库相关 最初 应用程序运行良好 在进程 任务管理器 中 每次调用计时器时 CPU 使用率都会达
  • 如何在2.0构建的应用程序中使用WCF wsHttpBinding服务?

    WCF 服务正在使用 wsHttpBinding 绑定运行 将使用 WCF 服务的应用程序不符合 WCF 或者换句话说 它位于 Framework 2 0 之上 我无法在此应用程序中使用 ServiceModel 因为只有 3 5 支持 S
  • 访问动态创建的控件 (c#)

    在我的代码后面 c 中 我动态创建了一些RadioButtonList 每个RadioButton中有更多RadioButton 我将所有控件放在一个特定的面板中 我需要知道的是稍后如何访问这些控件 因为它们不是在 aspx 文件中创建的
  • 扩展授权属性

    我实施了 CustomAuthorization 属性基于 Authorize 属性 我的属性如下所示 public class CustomAuthorizeAttribute AuthorizeAttribute public eUse
  • 使用 '<%# Eval("item") %>';处理空值并显示 0

    如果数据项是Null我想展示0
  • UserControl 中的 Web 控件为空?

    我构建了一个小型用户控件 它本质上是一个 DropDownList 其中包含一些基于目标属性设置的预设值 这是代码 public partial class Selector System Web UI UserControl public
  • 无法使用 System.Net.Mail.SmtpClient 将电子邮件发送到其他域

    请看下面的代码 client Credentials new NetworkCredential SMTP SERVER USERNAME SMTP SERVER PASSWORD client EnableSsl false client
  • 如何使用 JavaScript 或 jQuery 清除 Google Chrome、Mozilla Firefox 和 Safari 中的剪贴板数据

    我正在开发一个网站 我想在使用 JavaScript 或 jQuery 查看我的网站时按下打印屏幕按钮时清除剪贴板数据 谁能帮我解决这个问题 我在 Internet Explorer 中成功处理了这个问题 提前致谢 由于安全原因 您无法使用
  • 删除或更改 ETL 中的记录

    我有一个表 我在上面构建了 ETL 服务 货物记录 到达 离开 进入表格 我已经这样做了 我的桌子将被删除 当项目标识符第二次到达数据库时 两条记录都被删除 label cost time x2 29 14 5 2020 01 00 00
  • 无需登录即可在 Intranet 上获取 Web 应用程序的域\用户名

    我的 Intranet 上有一个 Web 应用程序 VS 2005 有几个页面不需要用户登录应用程序 反馈和默认页面 我正在尝试获取要显示和 或发送反馈的域名和用户名 有没有一种方法可以在不需要用户登录的情况下执行此操作 我试过了this
  • 如果项目包含多个文件夹,如何使用 Add-Migration

    我想Add Migration使用我的 DbContext 但出现错误 The term add migration is not recognized as the name of a cmdlet function script fil
  • ASP.NET 3.5 更新至 4.0 -> Sys.WebForms.PageRequestManager 未定义

    正如标题所示 我最近将包含 UpdatePanels 和类似 AJAX 技术的 ASP NET 3 5 应用程序更新为 ASP NET 4 0 不幸的是 UpdatePanel 不再起作用 整页回发使一切都变得糟糕 Web config 文
  • TSQL:无法对 COUNT(*) 执行聚合函数 AVG 来查找一天中最繁忙的时间

    考虑一个保存日志数据的 SQL Server 表 重要的部分是 CREATE TABLE dbo CustomerLog ID int IDENTITY 1 1 NOT NULL CustID int NOT NULL VisitDate
  • 如何使用 linq 通过主键组合三个对象列表

    我正在尝试合并 3 个对象列表 我有一个人员列表 地址列表和地址关系列表 我想将这些列表组合成一个按 person id 排序的新列表 将其用作列表视图的数据源 然后能够访问 aspx 页面中的属性 这可能吗 Roughly using S
  • UpdatePanel 破坏 JQuery 脚本

    这是我想做的事情的简化版本 基本上我有一个数据列表 里面有很多东西 当你将鼠标悬停在数据列表中的项目上时 我希望 jquery 隐藏 显示东西 问题是 在我进行数据绑定后 如果 gridview repeater datalist 位于更新
  • 将 aspx 文件加载到 xmldocument 中

    我希望能够将 aspx 页面加载到 XmlDocument 变量中 我怎么做 这是我尝试过的 它期望 xml 文件而不是 aspx 页面 有没有办法将aspx页面即时转换为xml文档并加载它 谢谢 string filePath C Web
  • 如何从网站的 .NET 安装程序中排除文件夹?

    我们的网站有一个安装程序 效果很好 我在创建安装程序时排除了 web config 和其他一些文件 但是我似乎无法排除文件夹 这可能吗 我已使用 NET 内置 Web 安装项目创建了安装程序 该项目可在新项目对话框中的 Visual Stu
  • 是否使用 C# 数据集? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 C 中的数据集概念有点困惑 编码 ASP NET 站点 但这并不重要 在我的阅读中 我了解到它们 本质上 用作我的应用程序和我的
  • SQL Server 标识列值从 0 而不是 1 开始

    我遇到了一个奇怪的情况 数据库中的某些表的 ID 从 0 开始 即使 TABLE CREATE 的 IDENTITY 1 1 也是如此 对于某些表来说是这样 但对于其他表则不然 它一直有效到今天 我尝试过重置身份列 DBCC CHECKID
  • 正则表达式仅允许特定数字

    我正在寻找一个只允许输入特定数字的正则表达式 例如2 4 5 6 10 18 我尝试过类似的东西 2 4 5 6 10 18 我输入的任何内容都无法通过正则表达式 然后计算机用手指着我并大笑 我哪里出错了 单引号是不必要的 您正在寻找的正则

随机推荐

  • 如何删除 MySQL 数据库中的重复行? (保留主 ID 最低的那个)

    假设我想首先选择 download link 相同的行 然后 我想保留具有最低主 ID 的那个 并丢弃其余的 有没有简单的 SQL 语句可以实现这一点 这行得通吗 delete from mytable where id not in se
  • 超出 LDAPException 大小限制

    我正在使用 unboundid ldap sdk 来执行 ldap 查询 我在运行 ldap 搜索查询时遇到一个奇怪的问题 当我对包含 50k 条目的组运行查询时 出现异常 我的例外 LDAPException resultCode 4 s
  • 脚本中的双连字符使 Firefox 渲染异常

    当我在纯 html 页面的 部分中有上述行时 Firefox 3 5 5 会将尾随 gt 呈现为文本 如果我将 c 更改为 c 则不会 有什么想法吗 由于经过处理的非常大的脚本 我的页面上出现了一个工件 我可以将语句更改为 c 1 并暂时避
  • AS3:获取 Matrix 对象的比例

    最常见的问题是如何缩放 DisplayObject 答案通常是使用 Matrix 我的问题是 如何获取矩阵的比例 scaleX 和scaleY 有一个 Matrix scale 方法来设置scaleX和scaleY 但它不返回值 并且不存在
  • 如何以编程方式确定 iOS 中的默认电子邮件帐户/地址?

    在 iOS 设备上 一次可以配置多个电子邮件帐户 在 设置 应用中 用户可以选择默认电子邮件帐户 邮件 gt 邮件 默认帐户 此默认帐户是通过 MFMailComposeViewController 发送电子邮件时的 发件人 地址 是否有
  • Python 中 dir() 和 __dict__ 最大的区别是什么

    class C object def f self print self dict print dir self c C c f output class delattr f 为什么 self dict 中没有 f dir 所做的不仅仅是仰
  • 将 JPanel 变成 JOptionPane.OK_OPTION

    目前我有一个扩展 JPanel 的类 基本上显示有关传递到其构造函数的对象的一些信息 屏幕上有各种标签和图像图标 并且有一个 BorderLayout 设置 当用户左键单击主 GUI 中的 ImageIcon 并显示在屏幕上时 会触发此面板
  • .NET 中集合的内存分配

    这可能是一个骗局 我没有找到足够的信息 我正在讨论 Net 中集合的内存分配 集合中分配的元素的内存在哪里 List
  • 如何使用 Bootstrap 在 Django 中自定义复选框和单选框?

    我正在尝试使用 bootstrap 类自定义 Django 中的复选框和单选按钮 然而 这并没有奏效 我已经尝试在 forms py 中插入引导类widgets and attrs custom control custom radio c
  • Sparql 使用变量绑定计数结果

    有什么办法可以bind的结果count到一个变量 我尝试了以下方法 不起作用 SELECT totalSubject WHERE s p o BIND COUNT s AS totalSubject COUNT is an 总计的函数 只能
  • 睡眠/等待,不消耗CPU

    所以我正在将这个智能手机应用程序模拟到 Windows 这是一个运行其逻辑并绘制方法的游戏1 60速度 以毫秒为单位 这是16 6667 我已经实现了这个游戏循环 private const double UPDATE RATE 1000d
  • clusterExport到R并行中的单线程

    我想分割一个大的data frame分成块并将每个块单独传递给集群的不同成员 就像是 library parallel cl lt makeCluster detectCores for i in 1 detectCores cluster
  • iOS 13 Beta 版本中的应用程序启动时应用程序崩溃

    这是崩溃报告 崩溃仅发生在 iOS 13 beta 版本上 Crashed com apple main thread 0 libsystem pthread dylib 0x1ae056484 pthread get qos class
  • SwiftUI 列表正在使用 .navigationBarItems 进行剪辑[重复]

    这个问题在这里已经有答案了 When I add navigationBarItems modifier list is clipping and doesn t take all space like this It should be
  • Google plus API 可像 Facebook 一样在墙上发布

    我一直在谷歌上搜索教程 以便在谷歌加上发布一些文本 但好像没有 我还尝试浏览谷歌为 mac 和 iPhone 开发人员提供的文档 但找不到任何可以解决我的问题的内容 此外 关于如何让用户登录 google plus 帐户的信息也很少 我不确
  • object-fit 如何与 canvas 元素配合使用?

    我一直无法找到任何文档来告诉我一种或另一种方式 我可以在画布元素上使用适合对象的封面吗 我做了一些实验 但它的表现并不符合预期 有人能给我一个明确的答案吗 object fit1 will only have an effect when
  • 为什么我会收到此 NullPointer 异常?

    两个表 一个的主键是另一个的外键 旧数据库 我使用双向一对一映射 Entity public class First Id protected int a OneToOne mappedBy first cascade CascadeTyp
  • 将 Microsoft Office Communicator 2007 集成到 ASP.NET 页面中

    我正在为我公司的 Intranet 使用 ASP NET 和 C 构建网站 那么是否可以将 Microsoft Office Communicator 2007 集成到 ASP NET Page 中 即该网站应该能够提供所有联系人的当前状态
  • PyQt4 - “运行时错误:底层 C/C 对象已被删除”

    我不断收到此运行时错误 我不知道如何修复 这就是我想要实现的目标 当我单击 QTreeView 中的不同项目时 我想用值动态更新此 QTableWidget 在大多数情况下 我的代码可以工作 除非我单击第二个项目并且我需要更新我的 QTab
  • 缓存sql数据库的结果,还是每次查询?

    我正在根据 sql 查询生成页面 这是查询 CREATEPROCEDURE sp searchUsersByFirstLetter searchQuery nvarchar 1 AS BEGIN SET NOCOUNT ON SELECT