Database Inspector: คืออะไร วิธีทำงานกับ SQLite และดีบัก Room

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-05-07 เวลาอ่าน: 8 นาที

Database Inspector ใน Android Studio เป็นเครื่องมือในตัวสำหรับดูและดีบักฐานข้อมูล SQLite ของแอปพลิเคชันมือถือแบบเรียลไทม์ ตามเอกสารทางการของ Android Developers (2025) เครื่องมือนี้ช่วยให้ดำเนินการคิวรี SQL กับฐานข้อมูลที่ทำงานอยู่ ดูโครงสร้างตาราง และแก้ไขระเบียนโดยไม่ต้องหยุดแอปพลิเคชัน เครื่องมือรองรับ Room, SQLiteOpenHelper และฐานข้อมูลในแอปใดๆ ก็ได้ โดยตรวจจับโดยอัตโนมัติเมื่อเริ่มการสร้างโปรไฟล์

ประเด็นสำคัญ

  • Database Inspector เป็นส่วนประกอบของ Android Studio สำหรับดูฐานข้อมูล SQLite ของแอปพลิเคชันแบบเรียลไทม์พร้อมความสามารถในการดำเนินการคิวรี
  • การรองรับ Room — การทำงานร่วมกับ Room อย่างสมบูรณ์ รวมถึงการดูคิวรี DAO และติดตามการเปลี่ยนแปลงในฐานข้อมูล
  • การแก้ไขข้อมูล — การเปลี่ยนค่าเซลล์ตารางโดยตรงจากอินเทอร์เฟซของผู้ตรวจสอบพร้อมสะท้อนทันทีในแอปพลิเคชัน
  • การดำเนินการ SQL — ความสามารถในการเขียนและดำเนินการคิวรี SQL ตามต้องการ รวมถึง JOIN, GROUP BY และคิวรีย่อย
  • การส่งออกฐานข้อมูล — บันทึกดัมพ์ฐานข้อมูลลงในคอมพิวเตอร์เพื่อวิเคราะห์หรือแชร์กับเพื่อนร่วมงาน

Database Inspector คืออะไร?

Database Inspector เป็นเครื่องมือของ Android Studio สำหรับตรวจสอบและดีบักฐานข้อมูลภายในเครื่องในแอปพลิเคชันมือถือ ช่วยให้ดูฐานข้อมูล SQLite ทั้งหมดที่สร้างโดยแอปพลิเคชัน รวมถึงฐานข้อมูล Room, SQLiteOpenHelper และไลบรารีของบุคคลที่สาม เครื่องมือนี้พร้อมใช้งานตั้งแต่ Android Studio 4.1 และสามารถเปิดใช้ผ่าน Android Profiler หรือจากเมนู View โดยตรง

วัตถุประสงค์และความสามารถ

วัตถุประสงค์หลักของ Database Inspector คือ การแสดงภาพข้อมูลระหว่างการพัฒนา แทนที่จะส่งออกเนื้อหาฐานข้อมูลไปยังล็อกหรือเขียนหน้าจอแยกต่างหากสำหรับดูข้อมูล นักพัฒนาสามารถเปิด Database Inspector และดูตารางทั้งหมด โครงสร้างและเนื้อหาได้ทันที เครื่องมือรองรับทั้งฐานข้อมูล SQLite แบบเชิงสัมพันธ์และ Room ที่มีการโยกย้ายอัตโนมัติ

เมื่อใดควรใช้ Database Inspector

เครื่องมือนี้จำเป็นในสถานการณ์ที่คุณต้องการ ตรวจสอบความถูกต้องของการจัดเก็บข้อมูล หลังจากดำเนินการ: การลงทะเบียนผู้ใช้ การซิงโครไนซ์กับเซิร์ฟเวอร์ การแคชรายการ แทนที่จะเขียน UI ทดสอบ ดัมพ์ฐานข้อมูลจะถูกดูผ่าน Database Inspector เครื่องมือยังใช้อย่างแข็งขันในการดีบักการโยกย้าย Room — คุณสามารถดูโครงสร้างตารางจริงหลังจากการอัปเดตโครงสร้างแต่ละครั้ง

Database Inspector ทำงานอย่างไร

Database Inspector เชื่อมต่อกับกระบวนการ ของแอปพลิเคชัน Android ผ่าน Android Profiler Service ตรวจจับการเชื่อมต่อ SQLite ที่เปิดอยู่ทั้งหมดในแอปพลิเคชันและแสดงในแผงด้านข้าง จำเป็นต้องมีบิลด์ Debug ของแอปพลิเคชันด้วย API Level 26 (Android 8.0) ขึ้นไป

สถาปัตยกรรมและกลไกการทำงาน

เมื่อเปิดใช้ Database Inspector จะสร้าง อุโมงค์ ADB ระหว่างแอปพลิเคชันบนอุปกรณ์และ IDE บนคอมพิวเตอร์ ไฟล์ฐานข้อมูล SQLite WAL (Write-Ahead Logging) จะถูกสตรีมผ่านอุโมงค์นี้เพื่อแสดงเนื้อหา คำสั่ง SQL จะถูกส่งไปยัง SQLite Engine ของแอปพลิเคชันโดยตรงผ่านการรองรับ Database Inspector ใน Room และ SQLiteDatabase เครื่องมือตรวจจับโดยอัตโนมัติเมื่อแอปพลิเคชันเปิดฐานข้อมูลและเพิ่มไปยังรายการที่ตรวจสอบ

ข้อกำหนดด้านสภาพแวดล้อม

เพื่อให้ Database Inspector ทำงานได้อย่างถูกต้อง คุณต้องมี: Android Studio 4.1+ อุปกรณ์หรืออีมูเลเตอร์ที่มี API Level 26+ และบิลด์ Debug ของแอปพลิเคชัน สำหรับ Room จำเป็นต้องมีไลบรารี room-runtime เวอร์ชัน 2.2+ เพิ่มเติม หากฐานข้อมูลถูกสร้างด้วยโหมด WAL ซึ่งเป็นมาตรฐานสำหรับ Room 2.2+ เครื่องมือสามารถอ่านข้อมูลได้โดยไม่บล็อกแอปพลิเคชันหลัก

kotlin
// ตัวอย่างฐานข้อมูล Room ที่รองรับโดย Database Inspector
@Database(
    entities = [User::class, Order::class],
    version = 2,
    autoMigrations = [AutoMigration(from = 1, to = 2)]
)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
    abstract fun orderDao(): OrderDao
}

คุณสมบัติหลักของ Database Inspector

Database Inspector มี ชุดฟังก์ชันที่สมบูรณ์ สำหรับการทำงานกับข้อมูลภายในเครื่อง ตั้งแต่การดูโครงสร้างตารางไปจนถึงการดำเนินการคิวรี SQL ที่ซับซ้อนและการแก้ไขระเบียน

การดูตารางและโครงสร้าง

แผงด้านซ้ายแสดง ฐานข้อมูลและตาราง ทั้งหมด เมื่อเลือกตาราง เนื้อหาจะแสดงในตารางที่มีคอลัมน์: ฟิลด์ระเบียนทั้งหมดแสดงเป็นคอลัมน์ แต่ละแถวคือระเบียนแยกต่างหาก โครงสร้างตาราง (ชื่อ ประเภท ข้อจำกัด) จะแสดงที่ด้านบน สำหรับคีย์ต่างประเทศ จะแสดงความสัมพันธ์ระหว่างตาราง

ประเภทข้อมูลประเภท SQLiteประเภท Roomตัวอย่าง
จำนวนเต็มINTEGERInt, Long42
สตริงTEXTString"John"
จำนวนทศนิยมREALDouble, Float3.14
ข้อมูลไบนารีBLOBByteArray[0x00, 0x01]
วันที่/เวลาINTEGER (Unix epoch)Long, Date1720000000

การดำเนินการคิวรี SQL

แท็บ Query ช่วยให้คุณดำเนินการคำสั่ง SQL ตามต้องการโดยตรงกับฐานข้อมูลที่เลือก รองรับ SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN และตัวดำเนินการ SQLite อื่นๆ ผลลัพธ์จะแสดงในรูปแบบตารางด้านใต้ตัวแก้ไขคิวรี ประวัติคิวรีจะถูกเก็บรักษาไว้ระหว่างเซสชัน

การแก้ไขระเบียน

เซลล์ตารางสามารถ แก้ไขได้โดยตรง — เพียงคลิกที่ค่าและป้อนค่าใหม่ การเปลี่ยนแปลงจะถูกนำไปใช้กับแอปพลิเคชันที่ทำงานทันที ซึ่งมีประโยชน์อย่างยิ่งสำหรับการทดสอบกรณีขอบ: การตั้งค่า null ในฟิลด์บังคับ การแทนที่ ID ด้วยค่าที่ไม่มีอยู่ การตรวจสอบการจัดการสตริงยาว การเปลี่ยนแปลงทั้งหมดจะถูกคอมมิตแบบเรียลไทม์

การดีบัก Room ด้วย Database Inspector

Database Inspector มี การทำงานร่วมกับ Room อย่างลึกซึ้ง ทำให้จำเป็นเมื่อพัฒนาแอปพลิเคชันด้วยไลบรารีนี้ นอกเหนือจากฟังก์ชันมาตรฐานแล้ว ผู้ตรวจสอบยังมีความสามารถเฉพาะของ Room

การดูคิวรี DAO

สำหรับฐานข้อมูล Room Database Inspector จะแสดง คิวรี SQL ที่สร้างขึ้น สำหรับแต่ละเมธอด DAO ช่วยให้คุณตรวจสอบว่า Room สร้าง SQL ที่ถูกต้อง โดยเฉพาะอย่างยิ่งสำหรับคิวรีที่ซับซ้อนด้วย JOIN, @Relation และ @Transaction หาก Room ดำเนินการคิวรีที่ไม่มีประสิทธิภาพ (เช่น คิวรี N+1 แทน JOIN เดียว) จะเห็นได้ทันทีในล็อกคิวรีของ Database Inspector

การดีบักการโยกย้าย

เมื่ออัปเดตโครงสร้าง Room ด้วย AutoMigration หรือการโยกย้ายด้วยตนเอง Database Inspector แสดงโครงสร้างตารางจริง หลังการโยกย้าย เพียงเปิดผู้ตรวจสอบหลังจากเปิดแอปพลิเคชันและตรวจสอบว่าคอลัมน์ ดัชนี และคีย์ต่างประเทศทั้งหมดถูกสร้างอย่างถูกต้อง หากการโยกย้ายล้มเหลวด้วยข้อผิดพลาด ฐานข้อมูลจะไม่เปิด — เครื่องมือจะแสดงเวอร์ชันล่าสุดที่พร้อมใช้งาน

การตรวจสอบ Relations และ Embedded

Room อนุญาตให้รวมข้อมูลจากหลายตารางผ่าน @Relation และ @Embedded Database Inspector ช่วยตรวจสอบความถูกต้องของความสัมพันธ์ด้วยภาพโดยแสดงข้อมูลตารางที่เกี่ยวข้องเคียงข้างกัน สำหรับคีย์ต่างประเทศแต่ละรายการ คุณสามารถนำทางไปยังตารางที่เกี่ยวข้องได้ด้วยคลิกเดียว

kotlin
// Entity ที่มี Relation สำหรับตรวจสอบผ่าน Database Inspector
@Entity(tableName = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String
)

data class UserWithOrders(
    @Embedded val user: User,
    @Relation(parentColumn = "id", entityColumn = "user_id")
    val orders: List<Order>
)

สถานการณ์การใช้งานจริงของ Database Inspector

Database Inspector แก้ งานพัฒนาเฉพาะ ที่เกิดขึ้นเมื่อทำงานกับการจัดเก็บข้อมูลภายในเครื่อง มาดูกรณีการใช้งานทั่วไปที่สุดของเครื่องมือในการทำงานประจำวัน

การตรวจสอบการแคชข้อมูล

บ่อยครั้งที่แอปพลิเคชันแคชการตอบสนอง API ในฐานข้อมูลภายในเครื่อง Database Inspector ช่วยให้คุณ ตรวจสอบความถูกต้องของการแคช: หลังจากการซิงโครไนซ์ คุณสามารถเห็นระเบียนจริงในตารางแคช หากข้อมูลไม่ปรากฏ — ปัญหาอยู่ที่โค้ดบันทึก หากมีรายการซ้ำ — ปัญหาอยู่ที่ตรรกะ upsert

การดีบักข้อผิดพลาดการแทรกข้อมูล

เมื่อเมธอด DAO ไม่บันทึกข้อมูลแต่ไม่แสดงข้อยกเว้น Database Inspector แสดงสถานะจริงของตาราง สาเหตุทั่วไป: ความขัดแย้งของ Primary Key (การตั้งค่า OnConflictStrategy) ประเภทข้อมูลไม่ถูกต้องในคอลัมน์ การละเมิดข้อจำกัด NOT NULL หรือการละเมิด Foreign Key ผู้ตรวจสอบช่วยให้คุณเห็นชุดการเปลี่ยนแปลงของฐานข้อมูลก่อนและหลังการดำเนินการ การเปรียบเทียบภาพรวมข้อมูลก่อนและหลังการเรียก DAO เป็นหนึ่งในวิธีที่มีประสิทธิภาพที่สุดในการดีบักข้อผิดพลาดด้านธุรกรรมและตรวจสอบความถูกต้องของตรรกะทางธุรกิจของแอปพลิเคชันระหว่างการดำเนินการเขียนที่ซับซ้อน

การปรับโครงสร้างฐานข้อมูล

เมื่อเปลี่ยนโครงสร้างตาราง — การเพิ่มคอลัมน์ การเปลี่ยนชื่อฟิลด์ การแบ่งตาราง — Database Inspector ช่วยตรวจสอบผลลัพธ์การโยกย้าย เพียงเปิดแอปพลิเคชันด้วยเวอร์ชันฐานข้อมูลใหม่และตรวจสอบว่าข้อมูลทั้งหมดถูกถ่ายโอนไปยังโครงสร้างใหม่อย่างถูกต้อง หากข้อมูลหายไปหลังการโยกย้าย คุณสามารถกู้คืนจากดัมพ์ที่บันทึกไว้ก่อนการปรับโครงสร้าง สถานการณ์นี้เกี่ยวข้องโดยเฉพาะเมื่อโยกย้ายจาก SQLiteOpenHelper ไปยัง Room หรือเมื่อเปลี่ยนโครงสร้างของตารางที่มีอยู่ในเวอร์ชันใหม่ของแอปพลิเคชัน

การตรวจสอบประสิทธิภาพคิวรี

Database Inspector ยังสามารถใช้สำหรับ การประเมินประสิทธิภาพคิวรี SQL โดยการดำเนินการ SELECT ผ่านแท็บ Query และวัดเวลาในการตอบสนอง คุณสามารถระบุคิวรีที่ขาดดัชนี Room จะบันทึกคิวรีช้าใน Logcat โดยอัตโนมัติด้วยแท็ก SLOW SQL และ Database Inspector ช่วยให้คุณดำเนินการ EXPLAIN QUERY PLAN ทันทีเพื่อวิเคราะห์แผนการดำเนินการ

คำถามที่พบบ่อย

ทำไม Database Inspector ถึงไม่เห็นฐานข้อมูลของฉัน?

ตรวจสอบให้แน่ใจว่าแอปพลิเคชันกำลังทำงานใน โหมด Debug และ API Level ของอุปกรณ์คือ 26 ขึ้นไป หากฐานข้อมูลถูกสร้างในกระบวนการแยกต่างหากหรือใช้ SQLCipher (การเข้ารหัส) Database Inspector อาจตรวจไม่พบ สำหรับ SQLCipher ให้ใช้ฐานข้อมูลดีบักเสริมโดยไม่มีการเข้ารหัส

สามารถแก้ไขข้อมูลผ่าน Database Inspector ได้หรือไม่?

ได้ การแก้ไขข้อมูล สามารถทำได้โดยตรงในเซลล์ตาราง การดับเบิลคลิกที่ค่าช่วยให้คุณเปลี่ยนได้ การเปลี่ยนแปลงจะถูกนำไปใช้กับฐานข้อมูลของแอปพลิเคชันที่ทำงานทันที หากต้องการเพิ่มระเบียนใหม่ ให้ใช้คิวรี SQL INSERT ผ่านแท็บ Query

Database Inspector รองรับฐานข้อมูล Realm หรือไม่?

ไม่ Database Inspector ไม่รองรับ Realm เนื่องจาก Realm ไม่ใช้ SQLite สำหรับการดีบัก Realm ให้ใช้ Realm Object Server, Realm Studio หรือการบันทึกภายในแอป สำหรับ MongoDB Realm SDK เครื่องมือ Realm Studio พร้อมใช้งานสำหรับ macOS, Windows และ Linux

จะส่งออกฐานข้อมูลจาก Database Inspector ได้อย่างไร?

Database Inspector ช่วยให้คุณ ส่งออกฐานข้อมูลทั้งหมด คลิกขวาที่ชื่อฐานข้อมูลในรายการและเลือก Export Database ไฟล์ .db จะถูกบันทึกลงในคอมพิวเตอร์ของคุณ หากต้องการดู ให้ใช้เบราว์เซอร์ SQLite ใดๆ เช่น DB Browser for SQLite

Database Inspector ส่งผลต่อประสิทธิภาพของแอปพลิเคชันหรือไม่?

ตามข้อมูลของ Google ค่าใช้จ่าย น้อยที่สุด — Database Inspector อ่านไฟล์ WAL ของฐานข้อมูลโดยไม่บล็อกการเขียน การดำเนินการคิวรี SQL ที่กำหนดเองอาจโหลดฐานข้อมูลชั่วคราว แต่สิ่งนี้ควบคุมโดยนักพัฒนา เครื่องมือจะถูกปิดใช้งานโดยอัตโนมัติสำหรับบิลด์โปรดักชัน

สรุป

  • Database Inspector เป็นเครื่องมือในตัวใน Android Studio สำหรับดูและแก้ไขฐานข้อมูล SQLite ของแอปพลิเคชันแบบเรียลไทม์
  • การรองรับ Room รวมถึงการดูคิวรี DAO การดีบักการโยกย้าย และการตรวจสอบ @Relation และ @Embedded
  • การดำเนินการคิวรี SQL ผ่านแท็บ Query พร้อมการรองรับตัวดำเนินการ SQLite ทั้งหมดและการเก็บรักษาประวัติ
  • การแก้ไขแบบเรียลไทม์ ช่วยให้คุณเปลี่ยนค่าเซลล์และเห็นผลลัพธ์ทันทีในแอปพลิเคชันที่ทำงาน
  • การส่งออกฐานข้อมูล เป็นไฟล์ .db สำหรับวิเคราะห์ในเครื่องมือของบุคคลที่สามหรือแชร์กับเพื่อนร่วมงาน
  • ต้องมี Android Studio 4.1+, บิลด์ Debug และ API Level 26+ — ตรวจสอบข้อกำหนดเหล่านี้หากเครื่องมือไม่แสดงฐานข้อมูล
  • ใช้ Database Inspector เป็นประจำ เมื่อพัฒนาฟีเจอร์ที่เกี่ยวข้องกับการจัดเก็บข้อมูลภายในเครื่อง — ช่วยเร่งการดีบักได้อย่างมาก

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม