[DB2] มาดูขนาดของ Table และ Database กันครับ

สุขสันต์วันสงกรานต์นะครับ วันที่ชาวไอทีหลายคนอาจจะยังต้องทำงานอยู่รวมทั้งผมด้วย 5555 หลังจากแก้เคสด่วนของรายงานแบงค์ชาติ LQ1 ไป คราวนี้ลองมาแอบส่อง Database บ้าง จากกันไปปีกว่าๆ แต่ทำไมชนาดที่ Backup มันดูใหญ่โตจัง 5555 โดยผมได้เขียน Query ดังนี้ครับ

Query ที่เขียนขึ้นครับ

SELECT SUBSTR(TABSCHEMA,1,18) AS TABSCHEMA
     , SUBSTR(TABNAME,1,30)   AS TABNAME
     , VARCHAR_FORMAT((DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE), '9,999,999,990.999') AS TOTAL_SIZE_IN_KB
     , VARCHAR_FORMAT((DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE)/1024.0, '9,999,999,990.999') AS TOTAL_SIZE_IN_MB
     , VARCHAR_FORMAT((DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE + LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) / (1024.0*1024.0), '9,999,999,990.999') AS TOTAL_SIZE_IN_GB 
FROM SYSIBMADM.ADMINTABINFO 
WHERE TABSCHEMA NOT LIKE 'SYS%'
  AND TABSCHEMA = 'INVEST'
ORDER BY TOTAL_SIZE_IN_KB DESC

สำหรับ Query นี้หลังๆ ดึงจาก Table SYSIBMADM.ADMINTABINFO ครับ โดยเอาค่าของเนื่อข้อมูล( DATA_OBJECT_P_SIZE ) + ขนาด Index( INDEX_OBJECT_P_SIZE ) + ขนาดของ Long Object (LONG_OBJECT_P_SIZE) + ขนาดของ Stream (LOB) (LOB_OBJECT_P_SIZE ) และ ขนาดของ XML(XML_OBJECT_P_SIZE) โดยที่ _P (Physical) ถ้าไปดู Schema ดีๆมี _L ที่หมายถึง Logical ด้วยครับ

ผลลัพธ์ที่ได้

ที่นี้เอาเราข้อมูลมาวิเคราห์ และสร้างกราฟนำเสนอให้ผู้บริหารต่อไปได้ครับ หรือจะเอาไปวิเคราะห์ทำเป็น MA ต่อไปครับ หากใช้ Database Microsoft SQL Server สามารถดูได้จาก Blog ตอนต่อไปครับ

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.