Apa praktik terbaik untuk digunakan saat menyusut db sementara di SQL Server 2008?
Apakah berisiko menggunakan yang berikut ini?
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
sql-server
shrink
tempdb
Mcol
sumber
sumber
Jawaban:
Ini adalah praktik terbaik untuk secara proaktif memantau penggunaan Tempdb yang normal dan mengatur ukurannya. Jika ini adalah salah satu kasus di mana Tempdb telah berkembang ke ukuran seperti itu dan itu adalah PROD env, saya akan me-restart SQL Server Services selama pemeliharaan mingguan. Di sana setelah Tempdb akan kembali ke ukuran yang dikonfigurasi.
Mengecilkan file baik-baik saja selama Tempdb tidak digunakan, kalau tidak transaksi yang ada mungkin terpengaruh dari sudut pandang kinerja karena pemblokiran dan kebuntuan.
Cache prosedur pembersihan, cache buffer, dll. Akan berdampak negatif pada kinerja database itu sendiri hingga tidak dibuat kembali. Saya tidak akan melakukan ini di PROD.
Semoga itu bisa membantu!
sumber