Category Database

[MSSQL] VSCode MSSQL Extension on Ubuntu

หลังจากลองเล่นตัว MSSQL บน Ubuntu ไปแล้ว คำถามถัดมาที่คิดได้ ถ้ามันอยู่ OS อย่าง Linux หรือ Mac มันจะ Query ยังไงนะ คงไม่ลุยเดี่ยวผ่าน Terminal แน่ๆ ถ้าเจอ Query แบบ 1 หน้า A4 มีหวังตายๆ  หลังจากลองค้นข้อมูลสักพักพบว่า VSCode สามารถทำได้นะ และมีทางเลือกอื่นๆอยู่นะ เดวอ่านสรุปด้านล่างเลย สรุปกันก่อน หาก query MSSQL บน Ubuntu เปิด Terminal ใช้ sqlcmd ลุยโลด ใช้…

[MSSQL] Install MS SQL Server 2016 on Ubuntu

หลังจากที่ Microsoft ได้ปล่อยตัว Microsoft SQL Server – Linux Edition กันแล้ว วันนี้ได้เวลามาลองลงกันครับ ดูกันว่า MS SQL 2016 จะลงง่าย หรือ ยากกว่าตัว DB2 ที่ได้ทดสอบไปในคร้ังที่แล้วครับ เตรียมพร้อมก่อนลุย RAM 3.25 GB – ถ้าทำใน VM Set เผื่อเป็น 4 GB ไปเลยย ถ้าพื้นที่ไม่พอเวลา Install เจอมันด่า แบบนี้ Internet ลุยกันเลยยย Import ตัว…

[DB2] Install DB2 11.1 on Ubuntu 16.04

พอดีอยากลองศึกษา DB2 กับตัว Docker แต่ความรู้พื้นฐานของ Linux ไม่ค่อยมีเลย ใช้แต่ GUI มาตลอด (Ubuntu GUI สวยนะ) ผมเลยลองมาศึกษา Linux ปกติก่อนและ เอาให้เชี่ยวระดับแล้วค่อยข้ามไป Docker มาเข้าเรื่องดีกว่า สำหรับการลง DB2 11.1 Ubuntu โดยใช้ตัว Command Line สิ่งที่ต้องเตรียม Ubuntu ลงให้เรียบร้อยเลย ใช้ VM หรือ เครื่องจริงก็ได้ (ของผมใช้ VM นะ) ตัวติดตั้ง DB2 ของ Linux สามารถ…

เมื่อ Column Index ใช้กับ MS SQL Server ไม่ได้ !!!

หลังจากที Software Product กับตัว DB2 มานาน คราวนี้มีโอกาสได้ย้ายบ้าน จริงไม่เชิงย้ายหรอกครับ แค่เอา Product ตัวเดิม จากที่มันใช้ได้กับ DB2 ไปใช้กับ MS SQL Server ให้ได้ครับ พอให้น้องที่ทำงานมาลองทำ POC ดู อ้าว Error Table มันมี Column ที่ชื่อว่า Index DB2 – ยอมได้ MS SQL Server – ไม่ยอมมมมมม เป็น Reserve Word แล้วทางแก้หละ…

[DB2] อย่าใช้ db2stop, db2start แบบผิดๆ

IBM DB2

พอดีลองไปศึกษาข้อมูลดู ผมพบว่า ผมใช้ 2 คำสั่งนี้ผิดมาตลอด db2start คือ เปิด instance db2stop คือ ปิด instance กลับมาดูกันก่อนหลาย database อยู่ใน instance เดียวกันได้ ถ้าใช้คำสั่ง db2start หรือ db2stop แสดงว่า Database ที่อยู่ใน instance นั้น โดนผลกระทบด้วยครับ แล้วถ้าไม่ใช้ db2start หรือ db2stop แล้วจะใช้คำสั่งอะไรแทนหละ ? db2start เปลี่ยนมาใช้คำสั่ง activate db แทน คำสั่ง activate db แทน…

[DB2] มาดักดูว่าใครทำ DB ค้าง

ช่วงนี้ DB ที่บริษัทกับที่ Production ชอบค้างอยู่บ่อยๆครับ สำหรับในบริษัทได้ลองเขียน Query เพื่อที่ตรวจสอบว่าใคร Lock Database ซึ่งอาจะเป็นการเปิด Transaction แล้วลืม Commit ก็ได้ครับ สำหรับการทดสอบของผม ผมได้มี Query ชุดนึงที่มีหน้าทีควานหาว่า มีอะไรผิดแปลกกับ Database ครับ โดยผมมีรูปแบบการ Test ดังนี้ VM ที่ลง DB2 ไว้ (ถ้าว่างๆจะย้ายลง Docker และ) Dump ข้อมูลใส่ใน Table Activeuser เครื่อง VM นี่แหละ Connect…

[DB2] db2support เครื่องมือสำหรับเก็บข้อมูล เพื่อวิเคราะห์ปัญหาครับ

จริง Blog นี้ดองมานานหลายเดือนเลย สำหรับวันนี้ได้เวลาเคลียร์ HDD เลยไปเจอรูปที่เตรียมไว้ทำ Blog เลยตัดสินใจมาเขียนให้จบดีกว่าครับ โดยวันนี้เรื่องของ db2support  แล้วตัว db2support  คือ อะไร หลายคนอ่านชื่อแล้วอาจจะคิดว่าพิมพ์คำสั่งไปปุบ มีทีมงานจาก DB2 วิ่งเข้ามาดูที่ DB Server ของเรา แต่จริงๆไม่ใช่นะครับ มันเป็นเครื่องมือที่เก็บข้อมูลต่างๆ เพื่อนำมาวิเคราะห์ปัญหาครับ db2support  ใช้งานอย่างไร แค่พิมพ์คำสั่งครับ สำหรับรายละเอียดดูได้จากที่นี้ครับ โดยใน Blog นี้ผมใช้คำสั่งดังนี้ Note: บน Linux/Unix จะมี Flag -C = Compress และ -c connect…

[SQL] เมื่อ JOIN ผสมกับ CASE WHEN

วันนี้ระหว่างทำ DS_FTA ลองอ่าน ฺBOT Manual และก็เริ่มลงมือ Query ดึงข้อมูลเลยครับ พอมีข้อมูลแล้วมีกำลังใจเขียน Code ต่อครับ ไม่งั้นมืดมน เพราะ User เองก็ไม่รู้ว่าต้องส่งอะไรให้ BOT แต่พอเขียน Query ไปได้สัก 80% ช่วงประมาณ 4 โมงเย็น อยู่ๆ มี Idea ทำไมเราไม่ลองใช้ CASE WHEN ในการเขียน JOIN Table หละ ถ้ามันทำได้นี่ มันทำให้เราพลิกแพลงได้เยอะมากครับ ขั้นแรก มาลองหาข้อมูลกันก่อนว่ามีชาวบ้านเค้าทำไหม ? ปรากฏว่ามีด้วยแหละ Can I…

[DB] มาดูพวก Operator JOIN ทั้งหลายใน Execution Plan ดีกว่า

IBM DB2

หลังจากมี Blog เกี่ยวกับ Execution Plan ไป 2 ตอนแล้ว [DB2] ลองใช้ Execution Plan เพื่อดูว่า Query ที่เขียนนั้นแย่ หรือไม่ [DB2] แค่เปลี่ยน Query ชีวิตก็ดีขึ้นแล้ว JOIN vs Sub Query ถ้าลองสังเกตุดีๆ ตอนที่มันสร้าง Flow ขึ้นมา มันมีกล่องแทนการกระทำต่างๆ เช่น FETCH, TBSCAN เป็นต้น ซึ่งถ้าลองย้อนกลับไปในตอนเรียนวิชา Database มันมีหัวข้อนึง ชื่อ Query Optimization ทำอย่างไรให้ Relational…