TempDB ใช้ร่วมกันระหว่างฐานข้อมูลทั้งหมดในอินสแตนซ์ ดังนั้นจึงมีบางครั้งอาจเป็นความขัดแย้งภายใน TempDB สำหรับบางหน้า: SGAM , GAMและPFS สรุปหน้าเหล่านี้ติดตามสิ่งที่ถูกใช้ใน TempDB จนถึงขณะนี้และที่ว่างสำหรับการใช้ใหม่
โดยทั่วไปจะมีการจัดการโดยการเพิ่มไฟล์ข้อมูลหลายไฟล์ไปยัง TempDB มีปรัชญาแตกต่างกันเล็กน้อยตามจำนวนที่ถูกต้อง แต่ทั้งหมดเห็นด้วยคุณควรมีมากกว่าหนึ่ง
ต่อไปนี้เป็นข้อซักถามบางข้อสำหรับเรียกใช้ ...
อันนี้จะแสดงให้คุณเห็นว่ามีไฟล์กี่ไฟล์ TempDB และอยู่ที่ใด
-- tempdb layout
use tempdb
go
exec sp_helpfile
go
อันนี้จะแสดงจำนวนซีพียูและคอร์ที่คุณมี
-- cores and hyperthreading
select cpu_count, hyperthread_ratio
from sys.dm_os_sys_info
go
อันนี้จะแสดงจำนวนโหนดและคอร์จำนวน NUMA รายการต่อ NUMA โหนดที่คุณมี
-- numa nodes and schedulers
select node_id, online_scheduler_count
from sys.dm_os_nodes
order by node_id
go
อันนี้จะแสดงให้คุณเห็นว่าหน้าใดที่กำลังรออยู่ใน TempDB
-- see if anything is waiting on tempdb
select *
from sys.dm_os_waiting_tasks
where resource_description like '2:%'
go
ต่อไปนี้เป็นบทความที่ให้รายละเอียดเพิ่มเติมเกี่ยวกับปัญหาการช่วงชิงหน้า
ตกลงดังนั้นตอนนี้ส่วนปรัชญา ... :-)
สำหรับตัวเองถ้าฉันบนSMPระบบฉันเพียงต้องการให้เป็นไฟล์จำนวนมากเป็นครึ่งหนึ่งของแกนทั้งหมด
ถ้าฉันบนNUMAระบบแล้วฉันเพียงต้องการให้เป็นไฟล์จำนวนมากเป็นแกนต่อ NUMA โหนด
อย่างไรก็ตามฉันไม่ค่อยเห็นการปรับปรุงใด ๆ สำหรับการมีมากกว่าสี่ไฟล์สำหรับ TempDB ดังนั้นฉันมักจะเริ่มต้นด้วยสี่และตรวจสอบการต่อสู้ตามที่อธิบายไว้ในบทความที่ฉันเชื่อมโยง
หากฉันยังพบปัญหาอยู่ฉันจะเพิ่มอีกสองคน ตรวจสอบอีกครั้งเพิ่มมากขึ้นและทำซ้ำจนกว่าความขัดแย้งจะหายไป