Tempdb'yi bir üretim ortamında küçültmek için en iyi yöntem


24

SQL Server 2008'de Geçici db'yi küçültürken kullanmak için en iyi yöntem nedir?

Aşağıdakileri kullanmak riskli midir?

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

En iyi uygulama, onu neyin büyütdüğünü bulmak ve buna hitap etmektir. Eğer onu küçültürseniz, tekrar büyümesi gerekir ve bu zaman alır ve IO
Nick.McDermaid

Evet biliyorum. Ama mecbur kaldığımda proaktif olmak için geç kaldım :) Bu en iyi çözüm mü?

Üzgünüm orada yardımcı olamam.
Nick.McDermaid, 8:14

Yanıtlar:


11

Tempdb'nin normal kullanımını proaktif olarak izlemek ve boyutu buna göre ayarlamak en iyi yöntemdir. Bu, Tempdb'nin böyle bir boyuta ve bir PROD env'ye büyüdüğü durumlardan biriyse, haftalık bakım sırasında SQL Server Hizmetlerini yeniden başlatırım. Sonra Tempdb yapılandırılmış boyutuna geri dönecekti.

Dosyayı küçültmek, Tempdb kullanılmadığı sürece iyidir, diğer mevcut işlemler bloke etme ve kilitlenmeler nedeniyle performans açısından etkilenebilir.

Temizleme prosedürü önbelleği, arabellek önbellekleri vb. Bunlar yeniden oluşturulmadıkça veritabanı performansı üzerinde olumsuz etkiye sahip olacaktır. Bunu PROD'de yapmayacağım.

Umarım yardımcı olur!


Tanrıça girişi için teşekkürler. Temp_db içindeki işlemler için sp_who ile kontrol etmek yeterli mi?

1
Temp db kullanılıp kullanılmadığını bulmak için güvenilir bir yol olduğunu sanmıyorum. Bence sadece birisi doğrudan SSMS’de doğrudan geçici tablo oluşturuyorsa ortaya çıkar. Ancak aynı işlem, bellek dökülmesi vb. Nedeniyle yapılan bir sorgu işleminin sonucu olarak yapılırsa, sp_who2'de görünmez. Bu soru, ayrı bir konu olacaktır. Lütfen bunu ayrı bir tartışma olduğu için yaratın. Önceki cevap size yardımcı olduysa, lütfen bunu cevap olarak işaretleyin. Bu, benzer durumdaki başkalarına yardımcı olacaktır.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.