首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果您有大量未使用的内存,tempDB磁盘是否重要?

如果您有大量未使用的内存,tempDB磁盘是否重要?
EN

Database Administration用户
提问于 2014-10-10 17:53:18
回答 1查看 443关注 0票数 6

我们有一个具有大量RAM (256 GB)的SQL Server 2012 Enterprise安装程序,此时的数据库相当小(大约为17 GB)。目前,由于各种编码问题,我们正在经历性能问题,希望通过一些代码评审和优化来解决这些问题。同时,也有一种尝试通过为tempDB LUN获得更快的磁盘来提高性能,比如使用FusionIO PCIe闪存卡。

我担心的是,考虑到Server仍然有大量的RAM可供利用,我们不会看到添加更快的磁盘带来任何真正的性能改善。我认为大多数tempDB操作都是在内存中进行的,或者是在磁盘上进行的,但最终缓存在内存中(无论是在主机上、HBA上还是SAN上)。

是否有人知道,当tempDB磁盘操作有大量内存可供使用时,Server 2012是否仍将等待IO阻塞,还是我们所看到的tempDB磁盘活动只是为了提供持久性或持久性?

EN

回答 1

Database Administration用户

发布于 2014-10-12 10:55:50

即使您有大量的DRAM,tempdb仍然可能被使用。

这种情况在以下几种情况下发生:

快照隔离:使用此功能可以创建大量的tempdb活动。

散列和排序溢出:当优化器创建查询计划时,它将尝试估计运行查询所需的内存总量。在查询运行之前,将分配估计内存。如果结果(例如,由于糟糕的统计数据)分配的内存太小,那么Server将像散列表和排序缓冲区那样向tempdb溢出操作符,即使在查询开始满足需求之后有足够的内存。

当然,如果您的查询被完美地调优,并且运行时没有快照隔离,则可以避免这些效果。但是在大多数情况下,即使在大型的tempdb系统中,也会有一定数量的DRAM活动。

票数 6
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/78907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档