Dari Aknutman

Selamat Datang semoga layanan kami memberikan informasi yang anda cari. (Dan mohon comment-nya :-D)

Thursday, August 18, 2016

Sebelum Melakukan SHRINKFILE atau SHRINKDATABASE

Dear Pembaca,
Check ukuran file dari database yang sebenarnya, dan ukuran space yang digunakan pada harddisk. Berikut caranya

Ganti [MyDatabase] dengan nama database anda
use [MyDatabase];
go

;with db_file_cte as
(
    select
        name,
        type_desc,
        physical_name,
        size_mb =
            convert(decimal(11, 2), size * 8.0 / 1024),
        space_used_mb =
            convert(decimal(11, 2), fileproperty(name, 'spaceused') * 8.0 / 1024)
    from sys.database_files
)
select
    name,
    type_desc,
    physical_name,
    size_mb,
    space_used_mb,
    space_used_percent =
        case size_mb
            when 0 then 0
            else convert(decimal(5, 2), space_used_mb / size_mb * 100)
        end

from db_file_cte;

QUERY diatas untuk menunjukkan ukuran sebenarnya database dibanding space yang diambil di harddisk.

Kemudian, lakukan BACKUP sebelum SHRINKING database maupun file.

Selanjutnya, silakan untuk melakukan SHRINKING lewat Management Studio untuk operasi yang lebih mudah


UNTUK YANG GAGAL MELAKUKAN SHRINKFILE Log File, ubah dulu RECOVERY TYPE dari database tersebut dari FULL menjadi SIMPLE, sebagai berikut:

USE [MyDatabase]
select name,recovery_model_desc from sys.databases
ALTER DATABASE [MyDatabase] SET RECOVERY simple
DBCC SHRINKFILE ([MyDatabase Log Name] , 1)

Sekalian melakukan SHRINKFILE menggunakan QUERY.

Demikian tips hari ini, semoga bermanfaat. Salam Coding