Forum
Öncelikler herkeze merhaba bu aralar derdim bitmiyor... SQL Server 2000 kullanmtayım. Elimde bulunan bir yedek üzerinde datayı düşürmeye çalışıyorum ve 5 senelik bilgilerim var tablolar icersinde. Data boyutunu düşürmek icin tablo icerisindeki verileri silmek yeterli değilmi yada farklı bir yerdenmi yapmam gerekiyor? 97 bin veri sildim tablomdan ama 1 mb bile kücülmedi daha dogrusu hic kücülmedi anlamadım gitti:).. Silmek istedigim sey programın bütünüyle oynamak değil sadece Müşteri adı tarih vs vs doluyla kayıtlarımız var bunları silmek istiyorum. Tablodan mı silmem gerekiyor yoksa baska bir yerden mi? 🙁
Merhaba,
Tablo sildikten sonra shiring yapmalısınız.
http://msdn.microsoft.com/en-us/library/ms190488.aspx
1984 doğumluyum. 4 yaşından bu yana İstanbul’da yaşıyorum. Sırası ile aşağıdaki okullarda eğitim gördüm. Paşaköy ilkokulu (1990-1995) Kartal Zekeriyya Güçer İlköğretim Okulu(1995-1998) Ümraniye Teknik ve Endüstri Meslek Lisesi Bilgisayar Bölümü(1998-2001) Kocaeli Üniversitesi Bilgisayar Programcılığı(2002-2004) Anadolu Ünv. İşletme Fakültesi(2006-2009) Lise yıllarından sonra bir bilgisayar firmasının teknik servisinde mesleğe merhaba dedim. Outsource olarak Citibank ytl ve bina taşınma projesinde yer alarak 8 ay görev yaptım. Bu görevden sonra şu an çalışmakta olduğum yerde bilgi işlem sorumlusu olarak göreve başladım ve 18 yıldır görevimin başındayım.
Teşekkür ederim hemen deniyorum.
shiring yaptıkdan sonra 1 gb daha yükseldi anlamadım ben bu işten:)
sql server data ve log dosyaları için hdd'den ihtiyaç olduğunda belirli bir yeri belirli bir boyutta allocate eder. Option'dan verilen growth rate ve boyut bunu belirtmektedir.
Diyelim ki yer doldu ve yeni yere ihtiyaç var, ve siz büyümeyi 1024 mb olarak belirttiniz ama şu anda bu kısmın tamamını kullanmıyorsunuz.
Yani mdf ve ldf dosyaların diskte kullandıkları yer kadar data olduğunu söyleyemeyiz. Diskte allocation yapılsa bile dosyanın içinde kulanmıyon alanlar olabilir.
Bunu sorgulamak ve sildiğiniz zaman boyutta değişme oluyor mu ya bakmak için sp_spaceused sp sini kullanabilirsiniz.
log için ise dbcc sqlperf('logspace') dbcc komutunu kullanabilirsiniz.
Database inizin o kadar büyük yer kaplaması muhtemelen Log larınızdandır.
dbcc sqlperf('logspace')
Komutu ile log boyutunuzu doğruladıktan sonra Database inizi detach edip log dosyanızı silip yada shrink edip, tekrar attach etmeniz sanırım çözecekdir.
Database inizin o kadar büyük yer kaplaması muhtemelen Log larınızdandır.
dbcc sqlperf('logspace')
Komutu ile log boyutunuzu doğruladıktan sonra Database inizi detach edip log dosyanızı silip yada shrink edip, tekrar attach etmeniz sanırım çözecekdir.
Detach - silme evet işe yarayabilir lakin downtime gerektirir.
en mantıklı küçültme işlemi shrink tir. örneğin aşağıdaki komut log dosyasını 2 MB'a küçültmek için kullanılabilir.
DBCC SHRINKFILE (N'AdventureWorks_Log' , 2)
Database inizin o kadar büyük yer kaplaması muhtemelen Log larınızdandır.
dbcc sqlperf('logspace')
Komutu ile log boyutunuzu doğruladıktan sonra Database inizi detach edip log dosyanızı silip yada shrink edip, tekrar attach etmeniz sanırım çözecekdir.
Arkadaşlar Log dosyası 16 GB olmuş. Shrink yaptım fakat küçülme olmadı. Farklı ne yapabilirim?