การใช้ tools profiler สำหรับจับ process การทำงานของ sql

Mr.Rukpong
Arcadia Software Development
3 min readJan 5, 2019

เมื่อพูดถึงระบบฐานข้อมูล (Database) แล้ว โปรแกรม Microsoft SQL Server Management Studio สามารถช่วยให้ใช้งาน Database ได้ง่ายขึ้นมาก

จากตัวอย่าง จะเห็น Process ที่เกี่ยวข้องกับการ Query ได้ คือคำสั่ง Select เพื่อหา data ใน Database

แต่ถ้ามี Process อื่นๆ ที่เกี่ยวข้องกับ SQL Server ล่ะ เราจะรู้ได้ยังไง?

  • Profiler สามารถช่วยจับการ Process ได้ครับ

เริ่มต้นการใช้งานกันเลย จะเริ่มอธิบายเป็นขั้นตอนอย่างละเอียด และชี้ให้เห็นการทำงานของ Tools ไปทีละขั้นตอนเลยครับ

  1. กดปุ่ม Start ที่มุมล่างขวา หรือกดปุ่ม Window ที่คีบอร์ด และค้นหาคำว่า profiler (ถ้าเคยติดตั้ง SQL Server จะมี Tools ตัวนี้ติดมาด้วยครับ)

2. เลือก SQL Server Profiler ตาม version SQL Server ที่ติดตั้งไว้ จะได้หน้าต่าง Tools ดังนี้

3. กดเมนู File > New Trace… เพื่อสร้าง Trace Process

4. เลือก SQL Server ที่ต้องการ Trace

5. จะขึ้นหน้าต่าง Trace Properties สามารถตั้งชื่อ Trace ได้

6. เมื่อเลือก Tab Events Selection สามารถเลือก Trace Events เฉพาะบางส่วนได้ (ในที่นี้เราจะเลือกทั้งหมดตามค่า Default เลยครับ)

7. เมื่อกดปุ่ม Run จะมีเริ่ม Process ขึ้นมา จะเห็น Event ว่า Trace start แล้ว

8. เรามาลองใช้งานดู โดยการทดลองสั่ง คำสั่ง Select เพื่อ Query ข้อมูล โดยใช้ Microsoft SQL Server Management Studio

9. เมื่อมาดูที่หน้า Profiler จะเห็น Process ที่เกี่ยวข้องกับ SQL จากคำสั่ง Select ที่เราสั่งไป ดังนี้

ทีนี้ เราจะมาทดลองยกกรณีตัวอย่างที่มีการ Process database ผ่าน Visual Studio C# นะครับ

  1. กดปุ่มล้าง Process เพื่อเคลียร์หน้าจอ

2. รันโปรแกรมผ่าน dbContext (Linq ใน C# ที่ทำงานต่อกับ Database)

3. เมื่อรันโปรแกรมแล้ว กลับมาดู Process ใน Profiler จะเห็น Process ที่เกี่ยวข้องกับ SQL จากโค้ดในส่วน Linq (Profiler จะเห็นคำสั่งที่ถูกแปลงจาก Linq มาเป็นคำสั่งใน SQL ครับ)

Tools Profiler ช่วยให้เรา Trace Process ได้ง่าย เมื่อมีการเรียก Process เกี่ยวข้องกับ SQL โดยผ่านโปรแกรมอื่นๆ

  • จะช่วยให้เราดูคำสั่งที่ถูกแปลงไปเป็นคำสั่งใน SQL ได้
  • ช่วย Trace ปัญหาที่เกิดขึ้นเมื่อทำการ Excute code Linq ไม่ผ่านได้

--

--