มาอีกแว้วววว กับเรื่องของ DB Script สำหรับ MS SQL วันนี้ขอเสนอในท้องเรื่องลดขนาด Log กันหน่อยเถอะเพื่อลดโลกร้อน เอ้ย !! เพิ่มพื้นที่ใน Harddisk ต่างหาก เพราะอันเนื่องมาจากเวลาที่เรามาทำงานจิง ๆ เนี่ย ขนาด Database ที่มีอยู่มันช่างใหญ่โตขึ้นซะทุกวัน เก็บไปเก็บมาเพลิน ๆ ปาเข้าไป 40 Gb เข้าไปนั่น โอ้ว ๆ ๆ รวมนั่นรวมนี่ รวม Mp3 เย้ยยย!! (ห้ามพูดเรื่องละเมิดลิขสิทธิ์ มานไม่ดี) ยิ่งไฟล์ที่เป็น Log File ซึ่งเป็น File คู่บารมีกะ DB คุณเธอก็อ้วนตามที่เรานั้น Query ยิ่ง Database ใหญ่ Query วัน ๆ นึงก็ Query กันหูตาแตกตามความต้องการของ User ที่รัก DBMS ก็จะเก็บทุกสิ่งอย่างว่าเราได้ปู้ยี่ปู้ยำอะไรเขาบ้างทำให้ตัว Log ไฟล์ใหญ่ขึ้นมากน้อง ๆ Database เลย อย่างของผมนี่ DB 40 Gb เคยได้ Log 20 ก่า Gb แน่ะ ถ้าเราไม่ต้องการที่จะใช้เจ้า Log ทั้งหลายแล้วเนี่ยเราก็สามารถที่จะลดขนาดมันได้เพื่อเพิ่มเนื้อที่ให้เราเอาไว้ใส่หนังโป๊ได้อีกหลายเรื่องก็จะมีวิธีง่าย ๆ แต่ Log หายเกลี้ยงดังนี้
use [DB Name] ‘ใช้คำสั่ง Use ตามด้วยชื่อ Database จากนั้นก็ทำการลดขนาด Log File ตามคสั่งด้านล่างต่อได้เลย
dbcc shrinkfile([DB Name_log],1) ‘ ใส่ชื่อ Log File น่อ
backup log [DB Name] with truncate_only
dbcc shrinkfile([DB Name_log],1) ‘ ใส่ชื่อ Log File เช่นกานนนน
รอให้ SQL แสดงผลว่าเรียบร้อยตัว Log File ก็จะเหลือแค่ 1 Mb ก่า ๆ เท่านั้น โฮ่ ๆๆๆ
ปล. ปกติ DB SQL จะมี File อยู่ 2 File คือ
- ไฟล์ Database รูปแบบ ชื่อ DB เฉย ๆ (เช่น Categories)
- ไฟล์ Log รูปแบบ ชื่อ DB_Log (เช่น Categories_Log)
Database ที่ผมใช้การลดขนาด Log นั้น ส่วนใหญ่เป็น DB พวก Ad-Hoc แบบว่าได้ข้อมูลจก Textfile แล้วเอามารวบรวมลง Table เพื่อนำมายำให้ได้ผลลัพธ์ตามใบสั่ง จะไม่ค่อยยุ่งกะ Database ของระบบปกติ เพราะไม่รู้ว่าระบบจะใช้ทำไรหรือไม่ดังนั้นหากอยากลองของจงคิดให้ดีนะครับ หรือถ้าจะให้ชัวร์ก็ Backup ก่อนเน้อพี่น้องงงงง!!!