🌗 C# 字串如何悄無聲息地摧毀 SQL Server 中的 Dapper 索引效能
➤ 避免隱式轉換:如何透過正確設定參數型別找回消失的查詢效能
https://consultwithgriff.com/dapper-nvarchar-implicit-conversion-performance-trap
在 .NET 開發中,使用 Dapper 查詢資料庫時,常因忽略 C# 字串與資料庫欄位類型間的微小差異,導致嚴重的效能問題。當 C# 字串參數預設被 Dapper 對應為 `nvarchar`,而資料庫欄位為 `varchar` 時,SQL Server 會被迫執行隱式轉換(CONVERT_IMPLICIT),這不僅會使索引失效,還會引發大規模的資料表掃描(Index Scan),造成 CPU 飆升。本文深入剖析此現象的成因,並提供明確的解決方案,透過正確設定參數類型(DbType.AnsiString)與長度,能讓查詢效能從毫秒級大幅提升至微秒級,徹底解決隱藏的效能殺手。
+ 這篇文章真是救
#.NET #Dapper #SQL Server #效能優化 #資料庫調校
How C# Strings Silently Kill Your SQL Server Indexes in Dapper

If you're using Dapper with anonymous objects to query varchar columns, you're probably sending nvarchar(4000) parameters — causing CONVERT_IMPLICIT on every row and defeating your indexes. Here's the fix.