我正在基于sql查询生成页面。来自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 + '%')
我可以调用这个过程字母表中的每个字母,并得到所有以该字母开头的用户。然后,我将这些用户列入我的一个网页的列表中。
我的问题是这样的:将用户列表缓存到我的web服务器,而不是每次查询数据库会更好吗?像这样:
HttpRuntime.Cache.Insert("users", listOfUsersReturnedFromQuery, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
对于我来说,如果用户列表是一个过时的小时,对我来说还可以。每次查询数据库会更高效吗?