Category Database

[DB] การออกแบบฐานข้อมูลที่ 1 Table Column เยอะๆ กับ หลาย Table แต่ต้อง Join อันไหนดีกว่ากัน

จริงๆ เรื่องนี้มันเป็นคำถามที่โลกแตกมากๆครับ ตอนที่เรียน Database Design มาการทำ Normalize จนถึง 3์NF หรือแบบสูดๆหน่อยก็ 6NF แล้วพอมาทำงานจริงเจอ 1 Table รวมมิตรสารพัดอย่าง แต่จริงๆแล้วเราควร Design เป็นแบบไหนหละ ? จริงๆ เรื่องการออกแบบ Database มันส่งผลกับสถาปัตยกรรมของระบบนะ รู้จักกับข้อมูลที่ต้องการจัดเก็บก่อน ? Solution ที่เป็นไปได้จากคำถามก่อนหน้า !!!! 📌 เน้นสำหรับออกรายงาน หรือ Warehouse 📌 เน้นสำหรับจัดการ Transaction ที่มีการเปลี่ยนบ่อย 📌 ที่สำคัญต้องแยก ข้อมูลเยอะ เราควรให้ Business…

[MSSQL] รู้หรือไม่ว่า WHERE IN (มันมีข้อจำกัดนะ)

Microsoft SQL Server

พอดีลองพัฒนาโมดูล Compliance ขึ้นมาใหม่ และลองทำ Stress Test ดูว่า ระบบมันรองรับได้มากที่สุดแค่ไหน โดยลองส่ง Portfolio ทีมีหลายร้อย Port เข้ามาตรวจดู ปรากฏว่าเจอ Exception ดังรูป ถ้ามาดู Exception Message แบบละเอียดหละ ซึ่งสาเหตุของมันเกิดจาก SQL ในส่วนของ WHERE IN (มันมีข้อจำกัด สำหรับ Microsoft SQL Server สามารถใส่ข้อมูล เข้าไปได้มากที่สุด 2100 ตัวเท่านั้น) โดยตัวอย่าง SQL IN เป็นแบบนี้ แล้วจำนวนเท่าไหร่ ถึงเหมาะสม…

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

IBM DB2

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

[MSSQL] ทำให้เครื่องอื่นสามารถ Connect เข้ามาหาได้

Microsoft SQL Server

พอดีมีเครื่องน้องในทีมลง Windows ใหม่แล้วพอลงอะไรเสร็จหมดแล้ว ปรากฏว่าเครื่องอื่นๆ ในวงแลน ไม่สามารถเชื่อมต่อฐานข้อมูลที่อยู่บนเครื่องนี้ได้ครับ สำหรับวิธีการ + ตรวจเช็คให้เครื่องอื่นสามารถ Connect เข้ามาหาได้ มีขั้นตอน ดังนี้ Error Pattern Check List: CMD – Ping Check List: MSSQL Server Configuration ตรวจสอบ Server Properties ของ SQL Server ได้เปิด “Allow remote connection to this server” หรือไม่ โดยมีขั้นตอน…

[DB2] SQL2314W Some statistics are in an inconsistent state. (SQLSTATE=01650)

IBM DB2

ระหว่างน้องทดสอบ Script ปรากฏว่าเจอ Error Message ว่า SQL2314W Some statistics are in an inconsistent state. The newly collected “TABLE” statistics are inconsistent with the existing “INDEX” statistics.(SQLSTATE=01650) แล้วทำไม statistics มันไม่สอดคล้องหละ (inconsistent) แก้ไขอย่างไร จริงๆ คำสั่งที่เอามาใช้แก้ มีหลายแบบ ดังนี้ีครับ หมายเหตุ: INVEST = DB SCHEMA และ COMPANY…

[MSSQL] ขยับมาใช้ MSSQL ON LINUX 2017 กันดีกว่า

หลังจาก Blog ในปีก่อนโน้นนนนนนน ผมได้ลองใช้ MSSQL on Linux 2016 ไปแล้ว มาปีนี้ ในงานเล็กๆ ของเด็กฝึกงาน มาในปีนี้ พอดีกำลังเริ่ม Project ใหม่ ที่มีระยะเวลาทำระมาณ 3 เดือนครับ แม้จะ รู้ว่าเสี่ยง แต่คงต้องขอลอง โดยเอาตัว MSSQL on Linux 2017 มาใช้เป็น Dev-Environment สำหรับทำให้ทีมลองบ้างครับ สำหรับใน Blog ตอนนี้เขียนตั้งแต่ ช่วงลง MSSQL Database บน Ubuntu – Setup ขั้นตอนการติดตั้ง เขียนสั้นๆ และเน้นอะไรที่ผมไม่คุ้นใน…

[MSSQL] สรุปงาน SQL Server Community Thailand Meeting #03

วันนี้หลังจาก Train C# เสร็จ ผมรีบออกจากบริษัท ให้มาถึง BTS เร็วที่สุด เพราะกลัวฝนจะตกอีกรอบ เพื่อมางาน SQL Server Community Thailand Meeting ครั้งที่ 3 ครับ โดยครั้งนี้จัดที่ Agoda ที่เดิมครับ ซึ่งในงาน Meetup ครั้งนี้มี 2 หัวข้อครับ ได้แก่ คำเดือน Blog นี้เขียนโดยมุมมองของ Developer อาจจะมีบางเรื่องที่เขียนผิดไปบ้างนะครับ ขอเข้าเรื่องเลยและกัน Microsoft SQL Server Index (Row Store Index)…

[MSSQL] สรุปงาน SQL Server Community Thailand Meeting #02

สำหรับมางาน SQL Server Community Thailand Meeting งานนี้จัดเป็นครั้งที่ 2 แล้ว ส่วนงานแรกผมพลาด เพราะติดสอบพอดี SQL Server Performance Tuning Essential โดยคุณ Chulladej Aramsri หมายเหตุ: เขียนในมุมของ Developer หากมีอะไรผิดพลาด ขออภัยมา ณ ที่นี้ครับ – Root-Cause ของ Performance หลักๆ ที่พบบ่อยๆ จากมากไปน้อย – แล้วปกติที่ไปจัดการกับ Data ที่ทำผ่าน SQL มันมีแบบไหนบ้าง ?…

[MSSQL] มาปรับปรุง Query การตรวจสอบเรื่อง Lock ให้ดีขึ้น

จาก Blog ตอนที่แล้ว ผมได้เขียนไปเกี่ยวกับ [MSSQL] ตรวจสอบ Table ว่าถูก Lock หรือใช้งานโดย Application หรือไม่ ? จาก Query เดิม เรารู้แค่ว่า Table ไหน Lock เท่านั้น คราวนี้มาลองเพิ่มข้อมูลที่จำเป็น เพื่อให้ Dev หรือ DBA มาวิเคราะห์กันได้ง่ายขึ้นครีบ โดยข้อมูลที่มเพิ่มใน Query ได้แก่ Let’ s Go – ลองมาปรับ Query กัน จากตัว Query เดิม เราพบว่าข้อมูลหลายๆส่วน ในตัว…