Bagaimana Memantau SQL Server Pertumbuhan Database menggunakan TSQL dan Excel

Bagikan sekarang:

Memantau pertumbuhan database adalah faktor kunci dalam merencanakan sumber daya server. Gunakan skrip ini dan buat laporan pertumbuhan database yang mudah dipahami

Mengapa Anda Perlu Memantau Pertumbuhan Database

Jika Anda adalah administrator Database SQL dan jika Anda tidak memiliki "SQL Server perencanaan kapasitas basis data ”di daftar tugas utama Anda, maka Anda dapat yakin bahwa basis data di server Anda akan segera mengisi ruang disk Anda. Melacak ukuran dan pertumbuhan database SQL adalah salah satu tugas utama perencanaan Kapasitas. Ini juga memastikan bahwa ada cukup ruang pada disk untuk database Anda berkembang.

DIY melalui SQL Script dan Excel

Pada artikel ini, kita akan menggunakan SQL dan Excel untuk menangkap ukuran database SQL beserta polanya. Ini akan memungkinkan kami untuk merencanakan persyaratan ruang yang akan datang dan juga membantu kami memahami garis waktu di mana ada volume yang berat.

Proses ini dibagi menjadi empat langkah berbeda sehingga Anda dapat mengikuti tanpa masalah.

Langkah 1: Jalankan skrip ini di jendela kueri baru.

Outputnya akan memiliki nama database sebagai header baris dan Bulan sebagai header Kolom. Nilai yang ditampilkan dalam output adalah ukuran database dalam GB.

declare @v_count as integer, @do_count as integer, @v_month as varchar(20),@sql as varchar(5000)

create table [t_databases]
(
Database_Name varchar(200),
January       float(3),
February      float(3),
March  float(3),
April  float(3),
May    float(3),
June   float(3),
July   float(3),
August float(3),
September     float(3),
October       float(3),
November      float(3),
December      float(3),
)
create table t_databases_gateway
(
Database_Name varchar(200),
Database_Size float(3)
)
set @v_count = (select COUNT(*) from t_databases ) 
if @v_count = 0 
begin
insert into t_databases(Database_Name)
select name from sysdatabases 
 end
if @v_count <> 0 
 begin 
--this script captures the size of all databases. You can add a where clause to capture the size of specific database name 
 INSERT t_databases (Database_Name) 
 SELECT DISTINCT Name FROM sysdatabases cr LEFT JOIN t_databases c ON cr.Name = c.Database_Name WHERE c.Database_Name IS NULL 
 end 
 --select * from master.dbo.t_databases 
 --drop table t_databases 
 set @do_count = 1 
 while (@do_count <=12) 
 begin 
 set @v_month = DATENAME(m, str(@do_count) + '/1/2016') –change the year to 2017 or other year as per your requirement 
 truncate table master.dbo.t_databases_gateway 
 insert into master.dbo.t_databases_gateway select distinct
(msdb.dbo.backupset.[database_name]),max(msdb.dbo.backupset.[Backup_Size]/1073741824)
from msdb.dbo.backupset inner join master.dbo.t_databases on msdb.dbo.backupset.[database_name] = master.dbo.t_databases.[Database_Name] where
datepart(m,msdb.dbo.backupset.[backup_finish_date]) =  @do_count and datepart(yyyy,msdb.dbo.backupset.[backup_finish_date] ) = 2015 group by msdb.dbo.backupset.[database_name]
set @sql = 'update master.dbo.t_databases set ' + @v_month + ' = (select Database_Size from master.dbo.t_databases_gateway where master.dbo.t_databases.Database_Name = master.dbo.t_databases_gateway.Database_Name)'
exec (@sql)
set @do_count = @do_count + 1
end
select * from t_databases
drop table t_databases_gateway
drop table t_databases

Output:Ukuran Database Output

Langkah 2: Buat instance Excel baru, dan salin Output dari langkah sebelumnya ke lembar Excel baru Anda.

Salin Output Ke Lembar Excel

Langkah 3: Sekarang pilih dua baris pertama pada lembar dan masukkan grafik garis 2D.

Ini akan membuat grafik tren untuk database yang dipilih. Di Bagan, Sumbu X akan menunjukkan bulan dan Sumbu Y akan menunjukkan ukuran database dalam GB.Pilih Dua Baris Pertama Pada Lembar Dan Sisipkan Bagan Garis 2D

Langkah 4: Pilih seluruh data dengan menyeret simbol 'plus' untuk membungkusnya.

Ini akan menunjukkan tren semua database pada grafik.Pilih Seluruh Data

Tunjukkan Tren Semua Database Di Bagan

Jika Anda melewati Langkah 3 dan menyisipkan diagram garis 2D dengan memilih seluruh tabel, Anda masih akan mendapatkan diagram tetapi sumbu X akan menunjukkan nama Database, bukan Bulan, Ini bukan keluaran yang diperlukan.Lewati Langkah 3 Dan Sisipkan Bagan Garis 2D Dengan Memilih Seluruh Tabel

Tabel Output mungkin memiliki beberapa nilai NULL. Ini terjadi karena riwayat pencadangan basis data mungkin tidak memiliki catatan apa pun untuk basis data untuk bulan tersebut. Ini juga menyiratkan bahwa skrip mengacu pada ukuran cadangan di tabel riwayat cadangan untuk melacak tren pertumbuhan. Jika salah satu database Anda tidak termasuk dalam rencana cadangan, tabel Output akan tetap menyimpan nama database tetapi nilai untuk semua bulan adalah NULL

Perbaiki Basis Data Besar

Jika Anda tidak mengikuti strategi di atas di masa lalu, dan database Anda terlalu besar, maka ini dapat menyebabkan berbagai masalah. Dalam kasus seperti itu, Anda sebaiknya mencari file SQL Server alat pemulihan file untuk memecahkan masalah secara efektif dan efisien.

Pengantar Penulis:

Neil Varley adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk memperbaiki masalah Outlook dan unggul dalam produk perangkat lunak pemulihan. Untuk informasi lebih lanjut kunjungi www.datanumen.com

Bagikan sekarang:

Komentar ditutup.