www.fatihkabakci.com

Personal Website and Computer Science TUR EN

SQL SERVER SHRINKING

Last update: 10/29/2012 4:26:00 AM

Yazan:Fatih KABAKCI

Sql Server içerisinde oluşturulan veritabanları ve dosyalar kimi zaman shrink işlemine tabi tutulur.Bir veritabanının veya veritabanı içerisindeki bir dosyanın mevcut boyutunun küçültülmesi veya kısaltılması işlemine shrinking adı verilir.Bazen daha önceden mevcut bir büyüklükte(size) oluşturulan bir veritabanının,daha sonradan kullanımına göre boyutunun küçültülmesi gerekebilir.

Örneğin 100MB değer biçilmiş bir bellek alanı,daha önceden oluşturulan veritabanı için gereksiz yere fazla gelebilir.Bu durumda küçültülecek alan ya işletim sistemine devredilir,ya da veritabanının ileride kullanması için ona bırakılabilir.Sonuçta 100MB disk alanına sahip veritabanı belirli bir miktarda küçültülüp yer tasarrufu elde edilebilir.Ancak bir veritabanı primary dosyasında sakladığı verilerinin büyüklüğünün daha azına küçültülememektedir.Shrinking işlemi sadece primary dosyalar için değil,transaction-log dahil tüm dosyalar için uygulanabilir.Ancak Transaction Log dosyasının yedeğini almak her zaman daha avantajlı olarak görülür.

Sql Server shrinking uygulamasını otomatik ve manuel olmak üzere iki seviyede gerçekleştirir.Manuel olarak,DBCC(Database Console Command) komutlarından yararlanılır.Otomatik düzeyde ise Database parametrelerinden bir tanesi olan AUTO_SHRINK bu iş için görevlidir.Bu yazıda her iki yöntemde ele alınacaktır.

DBCC ile

DBCC veritabanı işlemleri için bir takım komutlar içeren bir yapıdır.DBCC shrinking yöntemi için SHRINKFILE fonksiyonu ile kullanılan 3 adet parametre içerir.
  • TRUNCATEONLY,serbest bırakılan bellek alanı işletim sistemine geri verilir.
  • NOTRUNCATE,serbest bırakılan bellek alanı ilgili veritabanının kullanması için saklanmaya devam eder.
  • EMPTYFILE,tamamen serbest bırakılan bellek alanı ile boşalan dosyadaki veriler,aynı file group altında diğer dosyalara aktarılır.
DBCC SHRINKFILE(file_nick_name)

DBCC SHRINKFILE(file_nick_name,percent_shrink_value)

DBCC SHRINKFILE(file_nick_name,TRUNCATEONLY)

DBCC SHRINKFILE(file_nick_name,percent_shrink_value,TRUNCATEONLY)

Yukarıdaki fonksiyonda,birinci parametre ile belirtilen dosya,taşıdığı veri miktarı kapasitesine kadar küçültülür.Aşırı yüklenmiş ikinci halinde,ilgili dosya kapasitesinin yüzde olarak belirlenmesini sağlar.Örnek olarak ikinci parametrenin %20 olarak verildiği takdirde,ilgili dosyanın %20'e kadar boş olduğu belirtilir.Ancak bu alt sınır veri miktarının altına geçemez.Fonksiyonun aşırı yüklenmiş son halinde ise serbest bırakılan bellek alanı işletim sistemine geri verilir.

Yukarıdaki fonksiyonlarda yer alan TRUNCATEONLY parametreleri yerine daha önceden açıklanan diğer iki parametrede(NOTRUNCATE,EMPTYFILE) getirilebilir.Bu durumda parametrelerin yukarıdaki açıklamaları geçerli olacaktır.

Yukarıdaki DBCC SHRINKFILE fonksiyonları veritabanı user'leri için manuel yöntemlerdir.Şayet bu işi Sql Server'inizin kendisinin yapmasını isterseniz,DDL(Data Definition Language) komutlarından olan ALTER ile yapabilirsiniz.

ALTER DATABASE database_name
SET AUTO_SHRINK ON

Böylelikle Sql Server gerekli gördüğü her anda veritabanınızın boyutunu küçülterek optimize edecektir.

Sql Server Management Studio ile

T-SQL ile yapılan yukarıdaki her bir işlem Management Studio ile de gerçekleştirilebilmektedir.Bir veritabanını veya dosyasına shrink işlemi uygulamak için object explorer'den ilgili database'yi sağa tıklayarak tasks->shrink ifadesi seçilir.Database ve Files sekmelerinden bir tanesi seçilerek shrink penceresi açılır.



Database için aşağıdaki pencere açılır.



Files için ise aşağıdaki pencere açılır.



Shrink Action kısmı ise DBCC komutlarını ile ilgilidir.Yukarıdan aşağıya TRUNCATE,NOTRUNCATE ve EMPTYFILE parametreleri geçerlidir.Yukarıda ise istenilen dosya veritabanı,dosya grubu ve dosya parametreleriyle filtrelenir.

Studio ile Auto Shrink özelliği ise Database properties penceresinin options sekmesinden ayarlanır.
Database->Properties->Options.


There has been no comment yet

Name:


Question/Comment
   Please verify the image




The Topics in Computer Science

Search this site for





 

Software & Algorithms

icon

In mathematics and computer science, an algorithm is a step-by-step procedure for calculations. Algorithms are used for calculation, data processing, and automated reasoning.

Programming Languages

icon

A programming language is a formal constructed language designed to communicate instructions to a machine, particularly a computer. It can be used to create programs to control the behavior of a machine. Java,C, C++,C#

Database

icon

A database is an organized collection of data. The data are typically organized to model aspects of reality in a way that supports processes requiring information.

Hardware

icon

Computer hardware is the collection of physical elements that constitutes a computer system. Computer hardware refers to the physical parts or components of a computer such as the monitor, memory, cpu.

Web Technologies

icon

Web development is a broad term for the work involved in developing a web site for the Internet or an intranet. Html,Css,JavaScript,ASP.Net,PHP are one of the most popular technologies. J2EE,Spring Boot, Servlet, JSP,JSF, ASP

Mobile Technologies

icon

Mobile application development is the process by which application software is developed for low-power handheld devices, such as personal digital assistants, enterprise digital assistants or mobile phones. J2ME

Network

icon

A computer network or data network is a telecommunications network that allows computers to exchange data. In computer networks, networked computing devices pass data to each other along data connections.

Operating Systems

icon

An operating system is software that manages computer hardware and software resources and provides common services for computer programs. The OS is an essential component of the system software in a computer system. Linux,Windows

Computer Science

icon

Computer science is the scientific and practical approach to computation and its applications.A computer scientist specializes in the theory of computation and the design of computational systems.