标准 SSD 磁盘上有 BPE,则一次 IO 操作的延迟可能是一到两毫秒。如果一个查询执行 200 万次 IO,并且我们在其中使用标量函数来强制 SQL Server 在单个线程中处理它,则仅执行相关数量的 IO 就需要 30 到 60 分钟。您认为如果 BPE 和 SQL Server 从磁盘加载数据的话,是否会出现同样的情况?你说对了一部分。然而,应该注意的是,分析查询可能会重用该对象,因此重用已经从快速 RAM 中的数据中受益。
如果数据使用更频繁,由于其自身的内存管理,SQL Server 可以决定将其在内存 墨西哥电报数据 中保留更长时间,并且对相同数据的查询也可以从 RAM 中受益。但是,如果表位于 BPE 中,则对其数据的重复查询始终会从磁盘读取每一页。配置不合适,还有SQL Server的版本问题然而,BPE 的存在并不是查询组性能问题的唯一原因。在以前版本的 SQL Server 中也配置了 BPE,并没有导致问题。更改 SQL Server 的版本也很重要。
客户端使用的是企业版,该版本没有缓冲池大小限制。因为服务器有足够的RAM并且配置了BPE,所以SQL Server基本上不需要使用它,因为它的RAM本身有足够的空间。随着迁移到标准版,这种情况发生了变化,缓冲池突然限制为 128 GB,因此数据库的大部分数据大小都放置在 BPE 中。 提示C删除 BPE 配置后,某些查询的性能得到了部分改善,正是因保留在 RAM 中,因此对该数据集的查询速度更快。
|