2012-03-22 14 views
5

Geçici tablolar oluşturup bıraktıkça, bu tablolara veri ekler, temp db'nin boyutu ve günlük kaydı veritabanının sınırsız boyutta büyümesine neden olur. 100 gram gb'ye ulaşır ve sabit diski doldurur. Bu, veritabanı sunucusundaki boyut eksikliğine neden olabilir ve uygulama çökebilir. sqlexpress hizmetini yeniden başlatmamız gerekiyor, bence bu kötü bir fikir. Hizmetin durdurulması, sitenin/uygulamanın kapanmasına neden olur.sql içinde temp db ve hizmetini yeniden başlatmak dışında bir günlük silmek için başka bir yolu var mı?

USE [tempdb] 
GO 
DBCC SHRINKFILE (N'templog' , 0) 
GO 
DBCC SHRINKFILE (N'tempdev' , 0) 
GO 

Bu tempdb tüm kullanılmayan alanı yayınlayacak: Yani bu sorunun hep veritabanı dosyaları küçültmek deneyebilirsiniz

cevap

4

alternatif budur. Ancak MSSQL alanı yine de yeniden kullanmalıdır. Dolayısıyla, dosyalarınız çok büyükse, mantığınıza bakmanız ve gerçekten büyük tablolar oluşturduğunuz yerleri bulmanız ve boyutlarını ve/veya ömürlerini azaltmaya çalışmanız gerekir. Ayrıca kullanılmayan geçici tabloları da atmamaktan kaçınmalısınız.

Oturum ömrünü kısaltmaya çalışabilirsiniz. Eski kullanılmayan masaların düşürüleceğini garanti edecektir.

+0

Teşekkürler dostum. Bu işlerde kullanılabilir, böylece alanı otomatik olarak temizler mi? –

+0

Elbette. Fakat mantığınızı gözden geçirmeye çalışın. Senin sorununun derinlerde olduğuna inanıyorum. –

+0

Kullanımdayken tempdb'yi küçültmeyin - yolsuzluğa neden olduğu belgelendi! http://support.microsoft.com/kb/307487 –