Category Database

[MSSQL] ตรวจสอบ Table ว่าถูก Lock หรือใช้งานโดย Application หรือไม่ ?

Microsoft SQL Server

ช่วงนี้น่าจะเป็การเขียน Blog ที่ดองๆไว้ให้เสร็จนะครับ (อันนี้ดองมาตั้งแต่ปี 2014 มาใส่ภาพประกอบตอน 2017 555) วันนี้สุดท้ายของเดือนแล้ว มาดูกันสำหรับตัว MS SQL Server เราตรวจสอบได้อย่างไรว่า Table ถูก Lock ไว้นะครับ โดยเจ้าตัว MS SQL Server สามารถตรวจสอบได้ว่า Tabel ไหนถูก Lock โดยดูจาก Query ชุดนี้ครับ ตัวอย่าง ผมทดสอบ โดยทำให้ Table Company ถูก Lock ด้วยคำสั่ง SQL ดังนี้ ทดสอบ…

[MSSQL] แก้ปัญหา Database Log File โตไม่หยุด

Microsoft SQL Server

หลายๆพอใช้ Database ไป ผ่านไปนานเข้า ระบบฟ้องว่า Disk เต็ม พอเข้าไปดูอ้าวไฟล์ Log (.ldf) มันโตกว่าไฟล์ Database (.mdf) เสียอีก คราวนี้มาลองดูสาเหตุกัน สาเหตุที่ Database Log File โตไม่หยุด พอรู้สาเหตุแล้ว มาดูวิธีแก้บ้าง – ปรับเปลี่ยนเลือก Recovery Mode ที่ใช้ครับ ลองพิจารณา Recovery Model จาก Blog ผม หรือจะถาม Google ก็ได้ครับ เมื่อได้ Recovery Model ที่ใช่แล้ว มาดูวิธีขั้นตอนการปรับแก้ครับ -…

The Clean SQL

ถ้าจะถามภาษาที่นิยมที่สุด มาเป็นเวลาอย่างยาวนานแล้ว มันมีภาษานึงครับที่ยอดฮิตตั้งแต่อดีตจนถึงปัจจุบัน และในอนาคตอีกหลาย 10 ปีครับ ภาษานั้นก็คือ ภาษา SQL ครับ สำหรับตัว SQL หรือ Structured Query Language มีไว้ เพื่อจัดการกับข้อมูลเป็นหลักครับ แม้ว่าตัว SQL ช่วยให้เราจัดการชีวิตได้ง่ายขึ้นแล้ว อยากได้ข้อมูลเขียน ได้ข้อมูลมาแล้วครับ ถ้าในยุคแรกๆนี้เขียน Relational Algebra เพื่อมาหาข้อมูลกันเลย แต่ตัว SQL มันมีปัญหาในตัวเองครับ SQL ที่ไม่ดีเป็นยังไง ใช้ SQL มัน Clean ได้นะ มาลองดูกัน 1. Naming ตั้งชื่อให้มันสื่อ…

[MSSQL] VSCode MSSQL Extension on Ubuntu

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

[MSSQL] Install MS SQL Server 2016 on Ubuntu

Microsoft SQL Server

หลังจากที่ Microsoft ได้ปล่อยตัว Microsoft SQL Server – Linux Edition กันแล้ว วันนี้ได้เวลามาลองลงกันครับ ดูกันว่า MS SQL 2016 จะลงง่าย หรือ ยากกว่าตัว DB2 ที่ได้ทดสอบไปในคร้ังที่แล้วครับ เตรียมพร้อมก่อนลุย ลุยกันเลยยย บางครั้งมีหน้าจอแบบนี้เด้งขึ้นมาถาม ให้กด Yes ครับ Run คำสั่ง เพื่อ Config MS SQL Server ดังนี้ ตรวจสอบ Reference

[DB2] Install DB2 11.1 on Ubuntu 16.04

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

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

Microsoft SQL Server

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

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

IBM DB2

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

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

ช่วงนี้ DB ที่บริษัทกับที่ Production ชอบค้างอยู่บ่อยๆครับ สำหรับในบริษัทได้ลองเขียน Query เพื่อที่ตรวจสอบว่าใคร Lock Database ซึ่งอาจะเป็นการเปิด Transaction แล้วลืม Commit ก็ได้ครับ สำหรับการทดสอบของผม ผมได้มี Query ชุดนึงที่มีหน้าทีควานหาว่า มีอะไรผิดแปลกกับ Database ครับ โดยผมมีรูปแบบการ Test ดังนี้ ใช้ SYSIBMADM.LOCKS_HELD สิ หากสังเกตุดีๆ Query ตัว SYSIBMADM.LOCKS_HELD หรือ LC ผมเอาหมดเลย เพราะบางตัวผมก็ไม่รู้ครับ และหากนำไปใช้งานจริง อย่างลืมเปิดสิทธิการ Execute ให้กับ “SYSPROC.MON_GET_CONNECTION” ไม่งั้นจะเอามันด่าแนวๆนี้ครับ…

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

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