gpt4 book ai didi

sql - 缓存 SQL 查询

转载 作者:行者123 更新时间:2023-12-03 02:48:42 24 4
gpt4 key购买 nike

如果我查看 SQL-server 的探查器,它会出现很多重复的查询,例如:

exec sp_executesql N'SELECT *
FROM [dbo].[tblSpecifications] AS [t0]
WHERE [t0].[clientID] = @p0
ORDER BY [t0].[Title]', N'@p0 int', @p0 = 21

许多查询不需要显示实时数据,也就是说,如果有人插入了与该查询匹配的新记录,那么即使在插入后一个小时内不显示也没关系.

您可以输出缓存 asp.net 页面,但我想知道 dbms(特别是 SQL 服务器)上是否有类似的功能,它将查询结果保存在缓存中,并在设定的时间段后更新该缓存。时间,比如1小时,目的是提高记录的检索速度。

最佳答案

在 SQL Server 2000 及更早版本中,您可以使用 DBCC PINTABLE (databaseid, tableid),但最好允许 SQL Server 管理您的内存

如果您想要“缓存”一个昂贵的聚合查询,请创建一个索引 View 来具体化结果。

否则,数据库页在内存中保留的时间由最近最少使用的策略确定。缓存中每个数据页的 header 存储有关最近两次访问的详细信息。后台进程扫描缓存,如果自上次扫描以来该页面尚未被访问,则减少使用计数。当 SQL Server 需要释放缓存时,首先刷新使用计数最低的页面。 (专业SQL Server 2008内部原理和故障排除)

sys.dm_os_buffer_descriptors 为当前缓存中的每个数据页包含一行

关于sql - 缓存 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5743700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com