Oli*_*ver 3 sql-server asp.net
我正在基于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 + '%')
Run Code Online (Sandbox Code Playgroud)
我可以为字母表中的每个字母调用此过程,并获取以该字母开头的所有用户.然后,我将这些用户放入我的一个页面上的列表中.
我的问题是:将用户列表缓存到我的网络服务器,而不是每次都查询数据库会更好吗?像这样:
HttpRuntime.Cache.Insert("users", listOfUsersReturnedFromQuery, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
Run Code Online (Sandbox Code Playgroud)
如果用户列表过时了一小时,它对我来说没问题.每次查询数据库会更有效吗?
对于查询满足以下约束的情况,最好使用缓存:
大小并不是一个真正的因素,除非它真的会对你的RAM征税.
我发现要缓存的最好的表之一是设置表,其中数据几乎是静态的,几乎每个页面请求都会被查询,并且不必立即进行更改.
您要做的最好的事情是测试哪些查询执行最多,然后选择那些对数据库服务器征税最高的查询.除此之外,缓存任何你能负担得起的东西.您还应该看一下调整最大缓存对象的年龄.如果您每秒执行100次查询,则可以通过简单地将其缓存1秒来降低该速率99%,这可以消除大多数实际情况下的更新延迟问题.
| 归档时间: |
|
| 查看次数: |
4956 次 |
| 最近记录: |