วิธีปฏิบัติที่ดีที่สุดในการลดขนาด Tempdb ในสภาพแวดล้อมการผลิต


24

แนวปฏิบัติที่เหมาะสมที่สุดที่จะใช้เมื่อลดขนาด db ชั่วคราวใน SQL Server 2008 คืออะไร

การใช้สิ่งต่อไปนี้มีความเสี่ยงหรือไม่?

use tempdb
GO

DBCC FREEPROCCACHE -- clean cache
DBCC DROPCLEANBUFFERS -- clean buffers
DBCC FREESYSTEMCACHE ('ALL') -- clean system cache
DBCC FREESESSIONCACHE -- clean session cache
DBCC SHRINKDATABASE(tempdb, 10); -- shrink tempdb
dbcc shrinkfile ('tempdev') -- shrink db file
dbcc shrinkfile ('templog') -- shrink log file
GO

-- report the new file sizes
SELECT name, size
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');
GO

แนวทางปฏิบัติที่ดีที่สุดคือการหาสิ่งที่ทำให้มันเติบโตและกล่าวถึงสิ่งนั้น ถ้าคุณหดมันมันก็จะต้องเติบโตอีกครั้งและนั่นต้องใช้เวลาและ IO
Nick.McDermaid

ใช่ฉันรู้. แต่เมื่อฉันต้องทำให้มันเป็นสายที่จะเป็นเชิงรุก :) นี่คือทางออกที่ดีที่สุดหรือไม่?

ขอโทษฉันไม่สามารถช่วยคุณได้
Nick.McD เงือก

คำตอบ:


11

เป็นวิธีปฏิบัติที่ดีที่สุดในการตรวจสอบการใช้งานปกติของ Tempdb เชิงรุกและกำหนดขนาดให้เหมาะสม หากนี่เป็นกรณีที่ Tempdb มีขนาดดังกล่าวและเป็น env ของ PROD ฉันจะเริ่ม SQL Server Services ใหม่ในระหว่างการบำรุงรักษารายสัปดาห์ หลังจากนั้น Tempdb จะกลับไปสู่ขนาดที่กำหนดไว้

การหดขนาดไฟล์นั้นทำได้ดีตราบใดที่ไม่ได้ใช้งาน Tempdb มิฉะนั้นธุรกรรมที่มีอยู่อาจได้รับผลกระทบจากมุมมองประสิทธิภาพเนื่องจากการบล็อกและการหยุดชะงัก

การทำความสะอาดแคชโพรซีเดอร์แคชบัฟเฟอร์ ฯลฯ จะมีผลกระทบด้านลบต่อประสิทธิภาพของฐานข้อมูลจนกว่าจะไม่ถูกสร้างขึ้นใหม่ ฉันจะไม่ทำเช่นนี้ใน PROD

หวังว่าจะช่วย!


ขอบคุณสำหรับการป้อนข้อมูล godd มันเพียงพอที่จะตรวจสอบกับ sp_who สำหรับกระบวนการใน tempdb หรือไม่?

1
ฉันไม่คิดว่าเป็นวิธีที่เชื่อถือได้เพื่อตรวจสอบว่ามีการใช้ temp db หรือไม่ ฉันคิดว่ามันจะปรากฏขึ้นเฉพาะในกรณีที่มีใครบางคนกำลังสร้างตารางชั่วคราวใน SSMS โดยตรง แต่ถ้าหากทำสิ่งเดียวกันนี้เป็นผลมาจากการดำเนินการสืบค้นเนื่องจากหน่วยความจำล้น ฯลฯ มันจะไม่แสดงใน sp_who2 คำถามนั้นน่าจะเป็นเธรดแยกต่างหาก โปรดสร้างสิ่งนั้นเนื่องจากเป็นการอภิปรายแยกต่างหาก หากคำตอบก่อนหน้านี้ช่วยคุณโปรดทำเครื่องหมายว่าเป็นคำตอบ ที่จะช่วยผู้อื่นในสถานการณ์ที่คล้ายกัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.