Category Database

สรุปงาน Big Data Conference 2016

เมื่อวาน ผมได้ไปหางาน Big Data Conference ไปหา Idea ใหม่ และหาคำตอบให้กับตัวเอง ด้วยว่าเราเรียน ป โท Computer Science ที่จุฬา ดีไหม ? มาเข้าเรื่องกันเลยดีกว่าครับ Section 1: Going Intersteller?: The Truth Behind the Cloud โดยคุณ Rawitat Pulum อะไร คือ big data เราสนใจอะไร ทาง อ มองต่างจาก 3V มาเป็น 4S ย้อนกลับไปในยุคแรกๆ ของ…

[DB2] Stored Procedure ช่วยลบข้อมูลเยอะๆ

IBM DB2

ในงานของเรา อาจจะมีการลบข้อมูลเยอะๆ ไม่ว่าใน DBMS ตัวไหนก็ตามครับ ถ้าเป็น DB2 ถ้าเราลบข้อมูลเยอะๆ อาจจะเจอปัญหา Transaction Log Full ได้ครับ ครั้นจะปิด Log แล้วลบทิ้ง ก็อาจจะมีปัญหาครับ เช่น ตัว HADR ถ้าปิด Log นี้ ไม่ Sync กันนะครับ ผมเลยมี Stored Procedure ที่ช่วยในการลบข้อมูล ดังนี้ครับ เห็น Code และมาดูก่อนว่า มันต้องใส่ Parameter อะไรบ้าง การทำงาน วน Loop…

การจัดการเมื่อต้อง Query กับฐานข้อมูลที่ขนาดใหญ่

บางครั้งเรามี Query ที่ Join Table เยอะๆ และมีผลลัพธ์มหาศาลประมาณหลายแสนรายการครับ เราอาจจะมีการปรับจูน DB เช่น ทำ Index หรือทำ Query Cache เป็นต้น แต่ในมุมของ Dev เราสามารถปรับโปรแกรมได้เหมือนกัน โดยปรับ Query จากเดิมที่ Join กับหลายๆ Table มา Query ตรงๆที่ละ Table แล้วนำข้อมูลมา Process ใน App แทนครับ

[DB2] Query ตรวจสอบการ Set Automatic Storage ของ Table Space

IBM DB2

เมื่อวานได้ลองขึ้น DB สุดท้ายแล้ว พอทดสอบ Run App มันแจ้ง SQL0289N Error นี้ครับ สาเหตุของ SQL0289N DB2 มันจัดสรรพื้นที่ให้ไม่ได้ แต่การที่เราจะแก้อะไร ควรจะดู Config เก่าก่อน Query Check Table Space Automatic Storage สำหรับ Query ที่เอาไว้ตรวจสอบ Automatic Storage ของแต่ละ Table Space มีการกำหนด (YES หรือ NO) สามารถดูได้จาก SYSPROC.MON_GET_TABLESPACE เขียน Query…

[DB2] ลองใช้ Execution Plan เพื่อดูว่า Query ที่เขียนนั้นแย่ หรือไม่

IBM DB2

บทความแรกของปี 2016 เลย (จริงๆ Plan ว่าจะเขียนนานแล้ว แต่ติดงานประจำที่ Change บ่อยมากๆ) วันนี้เลยไปเจอ Shell Script ของ AIX ตั้งนึง ที่ทำหน้าดึงข้อมูลมาใส่ใน Temp Table และส่งออกเป็น Text File ไประบบอื่นผ่าน FTP แต่ปัญหา คือ ว่ามันช้ามากกกกกกกกกกกกก รันเกือบ 20 นาทียังไม่ออกเลย จาก Query ตัวอย่าง เราจะพบว่า มัน Self Join เยอะมากก ซึ่งใน DBMS ถ้าตัวเจ๋งๆ…

[DB2] Set DB2CODEPAGE

CODEPAGE คือ อะไร ? ทำไมภาษาไทย อันเดียวถึงมีหลากหลาย CODEPAGE ? CODEPAGE มีในระดับไหนบ้าง ? มีหลายระดับเลย ได้แก่ DB2 ดู CODEPAGE ได้อย่างไร คำสั่งที่ใช้ในการ SET CODEPAGE เช่น Windows- 874 สำหรับ ERROR CODE ที่ดูแล้วเป็นเรื่อง CODEPAGE มี ดังนี้ SQL0332N  Character conversion from the source code page “874” to the…

[DB2] เปิดใช้งาน Hierarchical Queries

IBM DB2

Hierarchical queries อันนี้จริงๆเป็น Feature ลับของทาง Oracle ครับ โดยนำมาช่วยให้สามารถ Query ข้อมูลยาก และซับซ้อนได้ง่ายขึ้นครับ เช่น มีข้อมูล Company อยากรู้ว่า Company รายการนี้ มีบริษัทลูกกี่ตัว เป็นต้นครับ (อันนี้เดี๋ยวของไปเขียน Blog ยกอีกตอนครับ หุหุ) สำหรับการเปิดใช้ Feature Hierarchical queries สามารถใช้คำสั่งง่ายๆ ดังนี้ ข้อควรระวัง: การเปิดใช้ Hierarchical queries นั้นช่วยให้สามารถ Query ข้อมูลแบบลำดับขั้นได้แล้ว แต่ Performance ของ DB…

[SQL] การเขียน Query ให้สามารถรองรับ Config ได้

เดี๋ยวขออธิบายเนื้องานคร่าวๆ ก่อนนะครับ ตอนนี้ผมทำตัว ฺBOTDMS DataSet สำหรับ Export ARS ไปส่งให้ทีมบัญชี เพื่อส่งไปให้ Bank ชาติอีกทีนึครับ แล้วที่นี้มันมีข้อกำหนดที่ว่า เราไม่รู้ว่า ตัว FX แต่ละ Type ยังไม่รู้ว่าต้องส่ง หรือ ไม่ส่ง แต่ FX แต่ละสัญญาต้อง Map เป็นค่า BOT Code อะไรด้วย จาก Requirement ที่ไม่แน่นอนแบบนี้ ตาม Requirement ข้างต้น ผม ทำ Table Mapping ไว้…

[DB2] หา Table / Column ตาม SQL Error Message

IBM DB2

พอดีเจอมาหลายครั้งแต่ แต่ก็ยังไม่ได้เขียนสักที ในระหว่างเราพัฒนาโปรแกรมเชื่อมต่อกับฐานข้อมูล DB2 บ่อยครั้งมักมี Error Message ของตัว SQL เช่น SQL0407N แล้วทีนี้ เราจะรู้ได้อย่างไรว่ามัน Error ที Table ไหน เพื่อทีจะได้หาสาเหตุได้อย่างรวดเร็วครับ SQL Error Message โดยมีได้มี Error Message ดังนี้ ERROR [23502] [IBM][DB2/NT64] SQL0407N Assignment of a NULL value to a NOT NULL column “TBSPACEID=2,…