Gul*_*han 3 performance sql-server tempdb performance-tuning
SQL Server 在名为tempdb 的数据库中工作以处理大量任务。连接和聚合等查询操作发生在那里。在线索引重建、排序依据、聚合函数、触发器也在tempdb 中完成。
如何衡量何时应该添加另一个 tempdb 数据文件?需要多少个 tempdb 数据文件?
Paul Randal 在这里解释了要创建多少个 tempDB 文件正确地将数据文件添加到 tempdb
如果您的服务器的逻辑内核少于 8 个(例如,具有 4 个物理内核且启用超线程的单 CPU 服务器具有 8 个逻辑内核),请使用 # tempdb 数据文件 = # 个逻辑内核,大小相同
如果您的服务器有 8 个以上的逻辑核心,则从 8 个 tempdb 数据文件开始,并一次添加四个相同大小的组,直到争用得到缓解
请注意,在开始之前首先更改所有现有的 tempDB 文件,使它们具有相同的大小和相同的 AUTOGROW 设置,这一点至关重要。然后创建与现有文件具有相同大小和自动增长设置的所有新 TempDB 文件。
至于你目前有没有问题?查看您的等待统计数据并确定您的最高等待时间,如果 PAGELATCH_UP 或 PAGELATCH_EX 在那里,那么您需要进一步调查。Glen Berry 有一个很好的查询,包括此处的SQL Server 诊断信息查询 2016 年 9 月
当您发现 SQL Server 速度变慢时,您应该返回 sys.dm_exec_requests 等待类型和等待资源信息,并留意 pagelatch_* 等待类型。然后,您可以通过 DBCC PAGE 传递等待资源,以确定遇到页面闩锁的数据库和内部页面。您还可以在此处使用 SQLSoldier 的非常有用的查询Breaking Down TempDB Contention(第 2 部分)来更好地确定哪些内部数据库页面(如果有)遇到问题,以及添加额外的 tempDB 文件是否是答案。假设您在内部 GAM、SGAM 或 PFS 页面上看到 pagelatches,那么您希望根据上述建议继续添加文件,直到 PAGELATCH_ 争用减少。
归档时间: |
|
查看次数: |
2138 次 |
最近记录: |