# Manage SQL Database Logs

Database Logs คือ ฟีเจอร์สำหรับการนำ logs ที่เกิดขึ้นใน SQL Database มาแสดงผลที่ Database Instance Detail เพื่อให้สามารถตรวจสอบการใช้งาน SQL Database ได้ภายใน NCS

ปัจจุบันรองรับการแสดงผล logs 2 ประเภท ของ SQL Database ดังนี้

* General Log
  * แสดง log เมื่อมีการ Query
  * แสดง log เมื่อมีการ Audit อื่น ๆ เช่น Create/Delete Database User, Create/Delete Database Schema เป็นต้น
* Slow Query Log แสดงการ Query ที่ใช้เวลานานกว่า 1 วินาที

## Prerequisite

* มี Database Instance ใน Project ([ขั้นตอนการสร้าง SQL Database Instance](https://docs-epc.gitbook.io/ncs-documents/database-as-a-service/sql-database/create-sql-database-instance))

### **สามารถดู Logs ได้ที่ tab: Logs ที่หน้า Database Instance Detail**

ส่วนประกอบต่าง ๆ ใน tab: Logs มีดังนี้

### 1. status ของ logs และ toggle เพื่อเปลี่ยน status

* logs มี status เป็น Disabled (toggle มี state เป็น off)

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2F5FmRT3GfBPmEFtOTqr6B%2Fimage.png?alt=media&#x26;token=cabbab9d-ae3f-443c-986e-5c872375a25e" alt=""><figcaption><p>Logs มีสถานะเป็น Disabled</p></figcaption></figure>

* logs มี status เป็น Enabled (toggle มี state เป็น on)

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FAElL5g4bDxD1RFWK8bou%2Fimage.png?alt=media&#x26;token=f2fd8c91-9ce7-491b-90b1-06908d400bae" alt=""><figcaption><p>Logs มีสถานะเป็น Enabled</p></figcaption></figure>

{% hint style="info" %}
status เริ่มต้นหลังสั่งสร้าง Database Instance สำเร็จ เป็น Disabled หากต้องการเริ่มใช้งานจะต้องสั่ง [Enable Logs](https://docs-epc.gitbook.io/ncs-documents/database-as-a-service/sql-database/manage-sql-database-logs/enable-logs) ก่อน ถึงจะสามารถใช้งานได้
{% endhint %}

### 2. ตารางการแสดงผล Logs

แต่ละ column แสดงข้อมูลของ Logs แต่ละประเภท ดังนี้

* General Log
  * Time: เวลาที่ Logs เกิดขึ้น
  * Duration: ระยะเวลาของการ Query (หน่วย ms)
  * Message: รายละเอียดของ Logs

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FcmZlPnMKBsP3aLx59hax%2Fimage.png?alt=media&#x26;token=cdc401df-ee59-4e60-ab01-8999b1829a98" alt=""><figcaption><p>ตัวอย่าง General Log</p></figcaption></figure>

* Slow Query Log
  * Time: เวลาที่ Logs เกิดขึ้น
  * Duration: ระยะเวลาของการ Query (หน่วย s)
  * User Information: ข้อมูลของ Database User ที่ทำให้เกิด Slow Query Log
  * Message: รายละเอียดของ Logs

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2Fx1bm1I5bRzppxmT7q2x9%2Fimage.png?alt=media&#x26;token=b98a3c39-eb3a-4bb0-9f05-20dd3b843cff" alt=""><figcaption><p>ตัวอย่าง Slow Query Log</p></figcaption></figure>

### 3. Pending Size

แสดง Size ของไฟล์ Logs ที่เกิดขึ้น แต่ยังไม่นำแสดงผลที่ NCS

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FVCIjZ7HdaDZBsFHlss1d%2Fimage.png?alt=media&#x26;token=ee078588-5909-4897-8432-af205cd70884" alt=""><figcaption><p>ตัวอย่างค่า Pending Size</p></figcaption></figure>

{% hint style="info" %}
Logs ที่จะนำมาแสดงผลได้ หรือถูกนับอยู่ใน Pending Size จะเป็น Logs ที่เกิดในช่วงที่ status เป็น Enabled เท่านั้น
{% endhint %}

## คำสั่งที่ใช้จัดการ Database Logs มีดังต่อไปนี้

* [Enable Logs](https://docs-epc.gitbook.io/ncs-documents/database-as-a-service/sql-database/manage-sql-database-logs/enable-logs)
* [Disable Logs](https://docs-epc.gitbook.io/ncs-documents/database-as-a-service/sql-database/manage-sql-database-logs/disable-logs)
* [Refresh Logs](https://docs-epc.gitbook.io/ncs-documents/database-as-a-service/sql-database/manage-sql-database-logs/refresh-logs)
* [Load More Logs](https://docs-epc.gitbook.io/ncs-documents/database-as-a-service/sql-database/manage-sql-database-logs/load-more-logs)
