Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Dapper ile Buffered ve Unbuffered Okuma: Büyük Result Set'leri Akıtmak
Dapper'da buffered ve unbuffered okumanın farkını ölçüyoruz: unbuffered sonucun her enumerate'te sorguyu yeniden çalıştırdığını, bir milyon row'da 191 MB'a karşı sıfıra yakın belleği, QueryUnbufferedAsync ile IAsyncEnumerable stream'ini, WithCancellation ile iptali ve dispose edilmiş connection tuzağını gerçek çıktılarla görüyoruz.
Dapper ve SQL Server: TVP, ANSI String'ler, {=literal} ve Parameter Sniffing
Doğru sonuç veren ama index'i baştan sona tarayan sorgular: nvarchar parameter'ların varchar kolonlarda yarattığı implicit conversion, Dapper'ın 4000 karakter kuralı, IN listelerinin plan çoğaltması, table-valued parameter'lar, {=literal} ile filtered index ve parameter sniffing — hepsi gerçek logical reads ölçümleriyle.
Dapper Performansı: Query Cache, GetRowParser ve SqlBulkCopy, COPY ile Bulk Alternatifleri
Dapper'ın query cache'i neyi saklar ve neden testere dişi çizer, CommandFlags.NoCache ne zaman gerekir, GetRowParser ile satır başına tip seçmek ve Dapper'da olmayan bulk işlemler için SQLite'ta transaction, SQL Server'da SqlBulkCopy, PostgreSQL'de COPY — hepsi gerçek ölçümlerle, sonunda BenchmarkDotNet.