Transight HQ - วิธีการลบ Event Log บน Transingt HQ

ขนาดฐานข้อมูลบน HQ มีขนาดใหญ่ส่วนมากมาจาก Event Log ซึ่งโปรแกรมจะเก็บ Event Log จากทุกสาขามารวมไว้ ทำให้เกิดปัญหาเวลา Backup ข้อมูลใช้เวลามากและอาจทำให้เกิด Error บน HQ ได้ เราสามารถลบ Event Log เก่าทิ้งได้

ขั้นตอนที่ 1####

ให้ดูขนาด Record ใน Table dbo.eventlog ว่ามีขนาดประมาณเท่าไร โดยใช้โปรแกรม MS SQL Server Management Studio เข้าไปดู

ขนาด Record ดูจาก ช่อง Row count

ขั้นตอนที่ 2####

ในโปรแกรม SQL Server Management Studio ให้เปิดเมนู File > New > Query With Current Connection หรือกด Ctrl+N

จากนั้นพิมพ์คำสั่ง SQL ดังนี้

DECLARE @deletedRow INT = 0;
USE [HeadQ];
WHILE 1 = 1
BEGIN
   DELETE TOP(10000)
   FROM [HeadQ].[dbo].[eventlog]
   WHERE busidate < '2001-01-01';
   
   IF @@ROWCOUNT < 10000 BREAK;
   
   SET @deletedRow = @deletedRow + 10000;
   DECLARE @msg VARCHAR(100);
   SET @msg = 'DELETED Total ' + CONVERT(VARCHAR, @deletedRow) + ' Records ON:' + convert(char(19), getdate(), 121);
   RAISERROR (@msg, 0, 1) WITH NOWAIT;

END

คำอธิบายเพิ่มเติมของคำสั่งในบรรทัดต่างๆ

USE [HeadQ];

คำสั่งให้โปรแกรมทำงานกับ Database ชื่อ HeadQ ซึ่งหากมีการตั้งชื่อฐานข้อมูลต่างจากนี้ให้แก้ให้ตรงกัน


FROM [HeadQ].[dbo].[eventlog]

ใช้สำหรับการบอกตำแหน่งของตารางในฐานข้อมูล หากมีการตั้งชื่อต่างจากนั้ให้แก้ไขให้ตรงกัน


WHERE busidate < '2001-01-01';

สามารถแก้เงื่อนไขในบรรทัดนี้ ให้เป็นเงื่อนไขการลบที่ต้องการได้ โดยในตัวอย่างจะให้ลบข้อมูลเก่าทั้งหมด ที่เก่ากว่า วันที่ 01 มกราคม 2001


==
หมายเหตุ: ชุดคำสั่งข้างต้นจะทำงานโดยการลบข้อมูลทีละ 10000 Records และแสดงผลการทำงานออกมาทางหน้าจอ Message ของ SQL Server Management Studio ซึ่งระยะเวลาการทำงานจะมากหรือน้อยขึ้นอยู่กับจำนวน Records ทั้งหมดที่ต้องการลบ

==

ตัวอย่างหน้าการแสดงผลขณะลบข้อมูล

==
คำเตือน: หากการลบข้อมูลมีมาก แนะนำให้เมื่อ Run คำสั่งไปจนถึงประมาณ 20-30 ล้าน Records (run ประมาณ 6-8 ชั่วโมง) แล้วควรทำการ Stop และไปทำการ Shrink ข้อมูลก่อนค่อยกลับมา Run คำสั่งอีกครั้ง จะทำให้การทำงานเร็วขึ้น การ Shrink DB แต่ละครั้งสำหรับขนาดฐานข้อมูลขนาดใหญ่ (เกิน 100G) จะใช้เวลาประมาณ 4 ชม. และจะต้องทำโดยการ Lock ฐานข้อมูลเพื่อป้องกันไม่ให้มี คนใช้งานในขณะนั้นด้วย

==
วิธีการ Shrink DB สำหรับโปรแกรม Transight HQ ดูได้ที่นี่
http://systemsupport.itorama.com/transight-hq-withiikaar-shrink-database-bn-transingt-hq/
จบ