大家中秋節快樂,這篇文章要來跟大家分享,如果我們下 SQL 語句是用 Adhoc 或是 Prepared 的方式,當遇到因參數嗅探(Parameter Sniffing)導致使用到錯誤執行計劃的問題時,可以嘗試「加入註解」來解決問題。
同時也有1部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,การใช้ sqlite3 package เพื่อดึงข้อมูลจากฐานข้อมูล พร้มอกับเทคนิคการผ่านพารามิเตอร์ไปให้ชุดคำสั่ง SELECT การใช้ row_factory เพื่อให้สามารถอ้างถึงคอลัม...
「sql parameter」的推薦目錄:
- 關於sql parameter 在 Facebook 的最佳貼文
- 關於sql parameter 在 BorntoDev Facebook 的最佳解答
- 關於sql parameter 在 軟體廚房 Facebook 的精選貼文
- 關於sql parameter 在 prasertcbs Youtube 的精選貼文
- 關於sql parameter 在 Parameterize an SQL IN clause - Stack Overflow 的評價
- 關於sql parameter 在 SQLParameter名稱為啥不會對應 的評價
- 關於sql parameter 在 Optional parameters in sql server stored procedures Part 68 的評價
- 關於sql parameter 在 Pass Parameter into SQL - invoke-Sqlcmd vs. invoke-DbaQuery 的評價
sql parameter 在 BorntoDev Facebook 的最佳解答
🔥 และในวันนี้ แอดจะพาเพื่อน ๆ มาทำความรู้จักกับอีกหนึ่งคำสั่งเจ๋ง ๆ ใน SQL นั่นก็คือเจ้า EXPLAIN นั่นเองจ้าาา ~~
.
👉 เจ้านี่มันคืออะไร มีรายละเอียดและวิธีการใช้งานยังไง ถ้าพร้อมแล้วมาอ่านกันเลยยย !!
.
✨ EXPLAIN - เป็นคำสั่งที่ใช้บอกรายละเอียดในการ Query ข้อมูล เพื่อใช้วัดประสิทธิภาพในการ Query ข้อมูลนั่นเอง
.
👨💻 Syntax
EXPLAIN (QUERY Statement) ; /* ONLY TAKES COMMAND AS PARAMETER */
.
เจ้า EXPLAIN สามารถใช้นำหน้าคำสั่ง SELECT, UPDATE, INSERT และ DELETE ได้
.
📑 วิธีการใช้งาน
🔸 Query ปกติ
SELECT * FROM demo_table WHERE demo_column = 'Demo Value';
.
🔸 Query โดยใช้ EXPLAIN
EXPLAIN SELECT * FROM demo_table WHERE demo_column = 'Demo Value';
.
จะได้ผลลัพธ์ ดังนี้
id: 1
select_type: SIMPLE
table: demo_table
partitions: NULL
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: const
rows: 1
filtered: 100.00
Extra: NULL
.
🔸 id - id ของ Query EXPLAIN
🔸 select_type - แสดงความซับซ้อนของ Query ผลลัพธ์ด้านบนจะอยู่ในระดับ SIMPLE
🔸 table - แสดงชื่อของตาราง
🔸 partitions - แสดง Partitions ของตารางที่ใช้ใน Query
🔸 type - ระบุประเภทของการ Join
🔸 possible_keys - แสดง Key ที่ใช้
🔸 key - แสดงความยาวของ Key ที่ใช้
🔸 ref - การอ้างอิงที่ใช้ใน Query เมื่อทำการ Comparing Columns
🔸 rows - แสดงจำนวนแถว
🔸 filtered - แสดงเปอร์เซ็นต์ของแถวตามเงื่อนไขที่ระบุ
🔸 Extra - ข้อมูลเพิ่มเติมของ Query
.
🌟 ประโยชน์
- ใช้เพื่อแสดงข้อมูลเกี่ยวกับการ Query
- มีประโยชน์มากในการออกแบบ Schema และ Index
- ใช้ตรวจสอบคำสั่ง Query ว่ามีประสิทธิภาพหรือไม่ เช่น วัดความเร็วในการ Query, ตรวจสอบการแบ่ง - Partition ของตาราง เป็นต้น
- ช่วยเพิ่มประสิทธิภาพในการ Query ข้อมูลใน Database
.
💥 Source : https://arctype.hashnode.dev/mysql-understanding-explain , https://www.geeksforgeeks.org/explain-in-sql/
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
sql parameter 在 軟體廚房 Facebook 的精選貼文
最近萬年議題又被拿出來討論了,「該把程式碼寫在 Stored Procedure,還是寫在 Application 裡面?」
⠀
以下是個人的看法以及選擇,僅供參考。
⠀
我個人的背景是這樣的,都是以開發 Web 應用程式為主,資料庫的使用經驗都在 SQL Server,其他的資料庫領域我不了解,在這樣的背景之下我個人傾向不使用 Stored Procedure 的,原因如下:
⠀
1. 對 DB 的操作已經是在應用程式生命週期的末端,這時候關注的應該是「效能」,如何運用最少的資源(CPU、Memory、Network IO、Disk IO、Money...)最快的速度拿到想要取得的資料,如果把程式碼都寫在 Stored Procedure,為了效能這件事,就會開始在商業邏輯中混入一些 Temp Table、額外定義 Table Type、因效能而使用的特殊語法...等,隨著時間流逝這個 Stored Procedure 就慢慢變成了哥吉拉。
⠀
2. 由於 SQL Server 的改進,Stored Procedure precompiled 的優點早已消失。
(https://www.codeproject.com/Articles/414272/Stored-Procedures-DO-NOT-increase-performance)
⠀
3. 被 Parameter Sniffing 搞得很煩。
⠀
4. 身為那條龍,我為何要將原始碼放在兩個地方?
⠀
雖然我不想使用 Stored Procedure 但不表示可以忽視查詢效能這件事,基本對 Index 的了解、各種 JOIN 差異、查詢計劃的解讀、...等,會影響查詢效能的要略懂,也順便跟還在跟哥吉拉奮戰的朋友說聲辛苦了。
sql parameter 在 prasertcbs Youtube 的精選貼文
การใช้ sqlite3 package เพื่อดึงข้อมูลจากฐานข้อมูล พร้มอกับเทคนิคการผ่านพารามิเตอร์ไปให้ชุดคำสั่ง SELECT
การใช้ row_factory เพื่อให้สามารถอ้างถึงคอลัมน์ในตารางด้วยชื่อคอลัมน์ แทนที่จะใช้ index number
=== ดาวน์โหลดไฟล์ตัวอย่างได้ที่ hhttps://goo.gl/4dsL4e
=== ดาวน์โหลดไฟล์ฐานข้อมูล SQLite ได้ที่ https://goo.gl/IMlkOM
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ https://www.youtube.com/subscription_center?add_user=prasertcbs
► สอน Python 3 การติดต่อกับฐานข้อมูล https://www.youtube.com/watch?v=2n2SLFET-GU&list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
► สอน Python https://www.youtube.com/playlist?list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
► สอน Python OOP https://www.youtube.com/playlist?list=PLoTScYm9O0GEIZzlTKPUiOqkewkWmwadW
► สอน Python GUI https://www.youtube.com/playlist?list=PLoTScYm9O0GFB1Y3cCmb9aPD5xRB1T11y
► สอน Microsoft SQL Server https://www.youtube.com/playlist?list=PLoTScYm9O0GH8gYuxpp-jqu5Blc7KbQVn
► สอน MySQL https://www.youtube.com/playlist?list=PLoTScYm9O0GFmJDsZipFCrY6L-0RrBYLT
► สอน PostgreSQL https://www.youtube.com/playlist?list=PLoTScYm9O0GGi_NqmIu43B-PsxA0wtnyH
► สอน SQLite https://www.youtube.com/playlist?list=PLoTScYm9O0GHjYJA4pfG38M5BcrWKf5s2
► การเชื่อมต่อกับฐานข้อมูล (SQL Server, MySQL, PostgreSQL, SQLite) ด้วย Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEdZtHwU3t9k3dBAlxYoq59
#prasertcbs_SQL #prasertcbs #prasertcbs_python
sql parameter 在 SQLParameter名稱為啥不會對應 的推薦與評價
緣起. 承接上篇,在撰寫呼叫Database Mail 的Stored Procedure(預存程序)時,發現在使用Parameter上有些小地方需要注意;以前使用沒發現,因為 ... ... <看更多>
sql parameter 在 Parameterize an SQL IN clause - Stack Overflow 的推薦與評價
... <看更多>
相關內容