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
49
0
Share
Алексей Капустяненко "Почему же мой запрос на Entity Framework 6 тормозит? Часть 9000""
DotNetRu
August 28, 2019
More Decks by DotNetRu
See All by DotNetRu
Кирилл Лихтарович «Версионирование и кодогенерация в REST API»
dotnetru
0
280
Дмитрий Бабушкин «Мержилка .sln: быстро и надёжно, без UI и юнит-тестов»
dotnetru
0
200
Артём Микулич «Как интегрироваться с (не-)надёжным third-party API при помощи Polly»
dotnetru
0
190
Иван Патудин «gRPC и его реализация в .NET Core»
dotnetru
0
590
Дмитрий Павлов «Greenplum: Быстро, параллельно, консистентно»
dotnetru
0
350
Филипп Бочаров «Распределенная трассировка Jaeger в .NET»
dotnetru
0
380
Андрей Сергеев "Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок."
dotnetru
0
170
Павел Московой "Работа с HTTP в платформе .NET, собственный движок для работы с HTTP, использующий функциональный подход на основе типа Result для обработки HTTP-ответа вместо исключений."
dotnetru
0
160
Сергей Огородников "Практика построения сервисов на основе ViennaNET"
dotnetru
0
170
Other Decks in Programming
See All in Programming
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
160
[RubyKaigi 2026] Require Hooks
palkan
1
320
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
390
GoogleCloudとterraform完全に理解した
terisuke
1
200
AIを導入する前にやるべきこと
negima
2
360
Agent Skills を社内で育てる仕組み作り
jackchuka
1
2k
AI時代だからこそ「Bloc」を採用する価値があるのかもしれない
takuroabe
0
180
t *testing.T は どこからやってくるの?
otakakot
1
940
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.9k
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
150
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
150
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
510
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
360
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
360
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
210
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
170
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
180
Abbi's Birthday
coloredviolet
2
7.6k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
190
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Optimizing for Happiness
mojombo
378
71k
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