Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Алексей Капустяненко "Почему же мой запрос на E...
Search
DotNetRu
August 28, 2019
Programming
0
45
Алексей Капустяненко "Почему же мой запрос на Entity Framework 6 тормозит? Часть 9000""
DotNetRu
August 28, 2019
Tweet
Share
More Decks by DotNetRu
See All by DotNetRu
Кирилл Лихтарович «Версионирование и кодогенерация в REST API»
dotnetru
0
250
Дмитрий Бабушкин «Мержилка .sln: быстро и надёжно, без UI и юнит-тестов»
dotnetru
0
180
Артём Микулич «Как интегрироваться с (не-)надёжным third-party API при помощи Polly»
dotnetru
0
160
Иван Патудин «gRPC и его реализация в .NET Core»
dotnetru
0
560
Дмитрий Павлов «Greenplum: Быстро, параллельно, консистентно»
dotnetru
0
320
Филипп Бочаров «Распределенная трассировка Jaeger в .NET»
dotnetru
0
340
Андрей Сергеев "Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок."
dotnetru
0
150
Павел Московой "Работа с HTTP в платформе .NET, собственный движок для работы с HTTP, использующий функциональный подход на основе типа Result для обработки HTTP-ответа вместо исключений."
dotnetru
0
140
Сергей Огородников "Практика построения сервисов на основе ViennaNET"
dotnetru
0
160
Other Decks in Programming
See All in Programming
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
150
バイブコーディング × 設計思考
nogu66
0
120
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
200
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
1k
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
13
3.2k
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
290
Vibe coding コードレビュー
kinopeee
0
460
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
490
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
380
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
200
令和最新版手のひらコンピュータ
koba789
14
7.9k
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
120
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.8k
RailsConf 2023
tenderlove
30
1.2k
Practical Orchestrator
shlominoach
190
11k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
BBQ
matthewcrist
89
9.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Rails Girls Zürich Keynote
gr2m
95
14k
Producing Creativity
orderedlist
PRO
347
40k
A designer walks into a library…
pauljervisheath
207
24k
Transcript
"Почему же мой запрос на Entity Framework 6 тормозит?" Часть
9000 Алексей Капустяненко
Стек на проекте • ASP.NET Web API • EntityFramework 6
• AutoMapper • MS SQL + в дальнейшем Postgres 2
С чего все началось 3 50 строк C# 3000+ строк
SQL
Live Demo 1 4
Суть проблемы • Запрос большой и страшный, но выполняется он
быстро • Значит, EF делает “что-то” помимо запроса, довольно продолжительное по времени 5
Начало расследования • Переписать запрос • AsNoTracking() • Догружать связанные
сущности отдельными запросами • Compiled Queries • Перейти на EF Core 6
След найден • Performance Considerations (Entity Framework) • Performance considerations
for EF 4, 5, and 6 7
Performance Considerations (Entity Framework) 8 https://docs.microsoft.com/ru-ru/dotnet/framework/data/adonet/ef/performance-considerations
Этапы выполнения запросов 9 Загрузка метаданных Открытие подключения базы данных
Создание представлений Подготовка запроса Выполнение запроса Загрузка и проверка типов Отслеживание Подготовка материализатора
Performance considerations for EF 4, 5, and 6 10 https://docs.microsoft.com/ru-ru/ef/ef6/fundamentals/performance/perf-whitepaper
Performance considerations for EF 4, 5, and 6 11 https://docs.microsoft.com/ru-ru/ef/ef6/fundamentals/performance/perf-whitepaper
Что из этого кешируется 12 Загрузка метаданных Открытие подключения базы
данных Создание представлений Подготовка запроса Выполнение запроса Загрузка и проверка типов Отслеживание Подготовка материализатора
Подводные камни Entity Framework и производительность 13 https://habr.com/ru/post/269901/
Contains 14 Live Demo 2
Any (All) 15 Live Demo 3
Константы 16 Live Demo 4
Результат 17 Live Demo 5
Заключение • + Техника довольно действенная • - Страдает код
• За абстракции приходится платить отказом от абстракций 18
Спасибо за внимание!!! 19
20 Гитхаб с демо: https://github.com/alexeykap/Ef6Part 9000PresentationMaterials Мой telegram: https://t.me/KapAleksey