วิธีการตรวจสอบ SQL Server การเติบโตของฐานข้อมูลโดยใช้ TSQL และ Excel

แบ่งปันเลย:

การตรวจสอบการเติบโตของฐานข้อมูลเป็นปัจจัยสำคัญในการวางแผนทรัพยากรของเซิร์ฟเวอร์ ใช้สคริปต์นี้และสร้างรายงานการเติบโตของฐานข้อมูลที่เข้าใจง่าย

ทำไมคุณต้องตรวจสอบการเติบโตของฐานข้อมูล

หากคุณเป็นผู้ดูแลระบบฐานข้อมูล SQL และหากคุณไม่มี“SQL Server การวางแผนความจุฐานข้อมูล” ในรายการงานหลักของคุณคุณจึงมั่นใจได้ว่าฐานข้อมูลบนเซิร์ฟเวอร์ของคุณจะเต็มพื้นที่ดิสก์ของคุณในไม่ช้า การติดตามขนาดและการเติบโตของฐานข้อมูล SQL เป็นหนึ่งในงานหลักของการวางแผนกำลังการผลิต นอกจากนี้ยังช่วยให้มั่นใจได้ว่ามีพื้นที่บนดิสก์เพียงพอสำหรับฐานข้อมูลของคุณที่จะเติบโต

DIY ผ่านสคริปต์ SQL และ Excel

ในบทความนี้เราจะใช้ SQL และ Excel เพื่อจับขนาดของฐานข้อมูล SQL พร้อมกับรูปแบบ สิ่งนี้จะช่วยให้เราสามารถวางแผนสำหรับข้อกำหนดเกี่ยวกับพื้นที่ที่ใกล้เข้ามาและยังช่วยให้เราเข้าใจไทม์ไลน์ที่มีปริมาณมาก

กระบวนการนี้แบ่งออกเป็นสี่ขั้นตอนที่แตกต่างกันเพื่อให้คุณสามารถปฏิบัติตามได้โดยไม่มีปัญหาใด ๆ

ขั้นตอนที่ 1: เรียกใช้สคริปต์นี้ในหน้าต่างแบบสอบถามใหม่

ผลลัพธ์จะมีชื่อฐานข้อมูลเป็นส่วนหัวของแถวและเดือนเป็นส่วนหัวคอลัมน์ ค่าที่แสดงในเอาต์พุตคือขนาดฐานข้อมูลเป็น 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:ขนาดฐานข้อมูลเอาต์พุต

ขั้นตอนที่ 2: สร้างอินสแตนซ์ใหม่ของ Excel และคัดลอกผลลัพธ์จากขั้นตอนก่อนหน้าลงในแผ่นงาน Excel ใหม่ของคุณ

คัดลอกผลลัพธ์ลงในแผ่นงาน Excel

ขั้นตอนที่ 3: ตอนนี้เลือกสองแถวแรกบนแผ่นงานและแทรกแผนภูมิเส้น 2D

สิ่งนี้จะสร้างแผนภูมิแนวโน้มสำหรับฐานข้อมูลที่เลือก ในแผนภูมิแกน X จะแสดงเดือนและแกน Y จะแสดงขนาดฐานข้อมูลเป็น GBเลือกสองแถวแรกบนแผ่นงานและแทรกแผนภูมิเส้น 2D

ขั้นตอนที่ 4: เลือกข้อมูลทั้งหมดโดยลากสัญลักษณ์ 'บวก' เพื่อห่อหุ้ม

สิ่งนี้จะแสดงแนวโน้มของฐานข้อมูลทั้งหมดบนแผนภูมิเลือกข้อมูลทั้งหมด

แสดงแนวโน้มของฐานข้อมูลทั้งหมดบนแผนภูมิ

หากคุณข้ามขั้นตอนที่ 3 และแทรกแผนภูมิเส้น 2D โดยเลือกทั้งตารางคุณจะยังคงได้รับแผนภูมิ แต่แกน X จะแสดงชื่อฐานข้อมูลแทนเดือนซึ่งไม่ใช่ผลลัพธ์ที่ต้องการข้ามขั้นตอนที่ 3 และแทรกแผนภูมิเส้น 2D โดยเลือกทั้งตาราง

ตารางผลลัพธ์อาจมีค่า NULL บางค่า สิ่งนี้เกิดขึ้นเนื่องจากประวัติการสำรองฐานข้อมูลอาจไม่มีบันทึกสำหรับฐานข้อมูลสำหรับเดือนนั้น ๆ นอกจากนี้ยังบอกเป็นนัยว่าสคริปต์หมายถึงขนาดการสำรองข้อมูลในตารางประวัติการสำรองข้อมูลเพื่อติดตามแนวโน้มการเติบโต หากฐานข้อมูลใด ๆ ของคุณไม่รวมอยู่ในแผนสำรองตารางผลลัพธ์จะยังคงเก็บชื่อฐานข้อมูลไว้ แต่ค่าของทุกเดือนจะเป็นค่าว่าง

แก้ไขฐานข้อมูลขนาดใหญ่

หากคุณไม่ปฏิบัติตามกลยุทธ์ข้างต้นในอดีตและฐานข้อมูลของคุณมีขนาดใหญ่เกินไปอาจทำให้เกิดปัญหาต่างๆ ในกรณีนี้คุณควรหาไฟล์ SQL Server เครื่องมือการกู้คืนไฟล์ เพื่อแก้ปัญหาอย่างมีประสิทธิภาพและประสิทธิผล

บทนำผู้เขียน:

Neil Varley เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ซ่อมแซมปัญหา Outlook และผลิตภัณฑ์ซอฟต์แวร์กู้คืน excel ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด