© 2015 Profinit. All rights reserved. Entity Framework: Optimalizace a záludnosti Tomáš Vichta28.11.2011.

Slides:



Advertisements
Podobné prezentace
SoftPC SQL Prezentace nového SQL modulu Mzdy a personalistika
Advertisements

Nabízené služby společnosti  Poskytování služby Excel24 ( outsourcingový způsob řešení úkolů a problémů s tabulkovým procesorem ) ; Ing. Roman Ševčík.
Stránka 1, © Vema, a. s.. Stránka 2, © Vema, a. s. Podnikové aplikace  Integrovaný podnikový systém (Integrated Business System):  komplex aplikací.
Základy databázových systémů
Business intelligence
Řízení vztahu se zákazníky integrované do ERP systému
Generální ředitelství cel Projekt ECR brána případová studie
 Vyhledání míst v programech vhodných pro optimalizaci  Sleduje se četnost volání a trvání jednotlivých částí programu JetBrains dotTrace Profiler.
Zpracování komplexních událostí a Apama Michal Džmuráň
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Úvod do databází Databáze.
LCS International, a.s..
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Úvod do ESY Edita Marečková. Představení Exact Synergy Enterprise = ESY propojení jednotlivých oblastí podnikových IS „balík chytrých podnikových řešení“
Intelligent Technologies, s.r.o. Optimalizace CPM Everest.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Datové schránky ve velké společnosti SharePoint partenrská konference Microsoft Pavel Salava Mainstream technologies,
Vypracoval: Ondřej Dvorský Třída: VIII.A
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Databázové systémy Architektury DBS.
LiveContent Univerzální Formulářové Řešení Michal Petrtýl, Marek Beneš.
Informační systémy TPS,MIS, SIS.
B. Miniberger, BIVŠ Praha 2009
© Creditreform-Group Pracovní snídaně: Škola řízení pohledávek Hotel Jalta, Praha 1,
Business Inteligence a její nástroje ve veřejné správě Petr Zeman, Key Account Manager – Public Sector Adastra Corporation.
Databázové systémy II Přednáška V Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Aplikační role Vít Ochozka. K čemu nám slouží Omezit přístup k databázi AKORD jen prostřednictvím konkrétní aplikace Jiné aplikace – MS excel, MS access,
Algotech Telefon: Fax: Web: Adresa:Zirkon Office Center, Sokolovská 366/
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
Databázové systémy I Cvičení č. 10 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Teleworking v Asseco CR Renata Leflerová Ředitel LZ Praha
MV ČR 1 Nové podmínky pro krajské projekty Ing. Jaroslav Svoboda MV ČR.
Efektivní vývoj webů v ASP.NET 4.0 Tomáš Herceg Microsoft MVP Microsoft Student Partner
VARIANTY ŘEŠENÍ PRO DATOVÉ SCHRÁNKY Petr Janda
INTERNET VE STÁTNÍ SPRÁVĚ A SAMOSPRÁVĚ 2008 © Copyright IBM Corporation 2008 Správa obsahu v podání IBM 7. – 8. dubna 2008 ibm.com/cz/public Daniel Beneš.
Přístup k řešení bezpečnosti IT Nemochovský František ISSS Hradec Králové, dubna 2005.
Webové služby pro komunikaci s informačním systémem eQuip Martin Širajch.
Informační systémy Tomáš Maděra. Historie společnosti LCS International, a.s. založeno 1990 česká firma z aložení dceřiné společnosti na Slovensku.
Miroslav Skokan IT Security Consultant
Milan Cvrkal Dynamics ERP Insider Product Specialist Czech Republic Microsoft.
Delphi a databáze MS SQL Server.
1 E - S V Ě T S E T O Č Í S T Á L E R Y C H L E J I. S T A Č Í T E M U ? Fenix II –IS na platformě.NET Michal Varga.
Databázové aplikace v Delphi
Protálová řešení Příklady reálných nasazení Tomáš Kutěj System Engineer Microsoft.
Zákon roku 2014 Tomáš Babáček Ambruz & Dark Deloitte Legal Nejlepší (a nejhorší) legislativní počin pro podnikatelské prostředí v ČR.
1 E - S V Ě T S E T O Č Í S T Á L E R Y C H L E J I. S T A Č Í T E M U ? Fenix II - IS nové generace Michal Varga.
Logistický proces ve firmě Petr Hobža – Strážnické brambůrky SAP Business One Pavel Rumplík Obchodní ředitel.
© 2015 Profinit. All rights reserved. Entity Framework v enterprise aplikacích Tomáš Vichta
© 2016 InterSystems Corporation. All rights reserved. Integrace OAuth 2.0 a OpenID Connect.
Představení společnosti na MFF UK
Entity Framework Core - vo co de?
INTEGRACE řešení základních registrů
Budování Integrovaného informačního systému Národního památkového ústavu Petr Volfík, NPÚ ÚP
Ing. Athanasios Podaras, Ph.D 2016
Facility management jako součást efektivní správy společnosti
Facility management jako součást efektivní správy společnosti
Identity management v UIS
Optimalizace SQL dotazů
AdHoc s.r.o., Ivan Petrův, Managing Director
Počítačová cvičení z předmětu Datové sklady
KPV/PIS Websol s.r.o. Jaroslav Plzák Lukáš Choulík Tomáš Kraus.
Nabízené služby společnosti
Nabízené služby společnosti
Desktopové aplikace na .NET Core
Transkript prezentace:

© 2015 Profinit. All rights reserved. Entity Framework: Optimalizace a záludnosti Tomáš Vichta

© 2015 Profinit. All rights reserved. 2 Představení Zajímavé projekty –Platební brána PaySec –Poplatky a reporting pro obchody s cennými papíry –Personalizace elektronických cestovních pasů –Integrační platforma pro účetní systém –Párování bankovních výpisů –Generování platebních příkazů Tomáš Vichta Nezávislý konzultant, spolupracovník Profinit s.r.o. Specializace –Technická analýza a design –Vývoj.NET, MS SQL, Oracle

© 2015 Profinit. All rights reserved. 3 Entity Framework: Optimalizace a záludnosti o Zpracování dotazu o Futures o Hromadné zpracování o Paralelní zpracování

© 2015 Profinit. All rights reserved. 4 Zpracování dotazu o První metoda, která nevrací IQueryable, vygeneruje dotaz do DB –Např. ToArray(), ToList() o Where(Func predicate) –Filtrovací podmínku provede až klient (.NET) –Tzn. vede typicky na select celé tabulky o Je potřeba použít Expression > –EF musí umět serializovat do SQL –Pokud neumí, exception až v runtime

© 2015 Profinit. All rights reserved. 5 Zpracování dotazu

© 2015 Profinit. All rights reserved. 6 Futures o nuget balíček EntityFramework.ExtendedEntityFramework.Extended o Pošle více EF dotazů do DB najednou, jedním SQL dotazem o Úspora času na roundtripu –síťová komunikace –interní zpracování v.NET komponentech (user code, internal EF code) –interní zpracování v DB serveru o Má smysl řešit –při velkých požadavcích na výkon a očekávanému velkému zatížení aplikace –pokud lze zřetězit více (nezávislých) dotazů za sebou –a nebo místo toho kód zabalit např. do stored procedure, která toho může uvnitř udělat více, a také může vrátit více resultsetů zpět do EF (podporuje např. MS SQL)

© 2015 Profinit. All rights reserved. 7 Hromadné zpracování UPDATE, DELETE o Potřeba řešit při insert/update/delete řádově stovek a více entit najednou o EF obecně není dělaný na hromadné operace o Možnosti –Vypnout DbContext.Configuration. AutoDetectChangesEnabled a ProxyCreationEnabled, ValidateOnSaveEnabled V EF6 málo významný vliv na výkon Nefunguje ChangeTracking, do DB jde také sada samostatných per-entity příkazů –Dávkové UPDATE/DELETE operace pomocí EntityFramework.ExtendedEntityFramework.Extended Obalí EF dotaz UPDATE/DELETE klauzulí Méně efektivní, než ručně napsaný UPDATE/DELETE, ale mnohem výkonnější, než samostatné příkazy pro jednotlivé entity Nevýhoda – jde mimo ChangeTracking –Ručně psaný UPDATE, DELETE v.NET kódu Nebo uložená procedura Nejrychlejší Opět přicházíme o ChangeTracking

© 2015 Profinit. All rights reserved. 8 Hromadné zpracování BULK INSERT o SQL BULK INSERT o Řádově rychlejší, než klasický INSERT o Při špatném použití riziko insertu nekonzistentních dat! o V.NET třída System.Data.SqlClient.SqlBulkCopy –Použití přímo této třídy by bylo nejefektivnější o EF wrapper - např. nuget EntityFramework.BulkInsertEntityFramework.BulkInsert –Jde o extrémní zneužití EF, ale funguje to… o Nezapomínat na paměťové nároky

© 2015 Profinit. All rights reserved. 9 Paralelní zpracování o EF context není thread safe o Nelze paralelizovat na stejné DB session (DbContextu) –.NET lockováním DB dotazů si moc nepomůžete – DB operace je obvykle to, co trvá nejdéle. o Pozor na deadlocky, resource contention, atd. o Nejjednodušší - paralelizovat co nejméně o Nezapomínat - ASP.NET web – thread per request, tzn. implicitně paralelní prostředí! Obdobně desktop aplikace. o Obvykle – samostatný DbContext pro každou paralelní větev (thread, task)

© 2015 Profinit. All rights reserved. Diskuze

© 2015 Profinit. All rights reserved. Díky za pozornost 1

© 2015 Profinit. All rights reserved. Profinit, s.r.o., Tychonova 2, Praha 6, , Společnost PROFINIT je členem nadnárodní skupiny New Frontier Group, která je leadrem v oblasti digitální transformace organizací a firem ve střední a východní Evropě. S více než 2000 zaměstnanci v 17 zemích patří mezi deset největších poskytovatelů ICT služeb v celém CEE regionu a řadí se ke špičce v oblasti vývoje software na zakázku, data managementu, datových skladů a business intelligence. PROFINIT má řadu významných zákazníků z finančního a telekomunikačního sektoru, utilit a státní správy. Společnost se primárně zaměřuje na konzultační služby v oblasti digitální transformace, technologické služby a outsourcing. Podle údajů IDC (2012) patří PROFINIT mezi 5 největších firem v oblasti vývoje software na zakázku v České Republice a je držitelem řady dalších ocenění. Shaping future, delivering results!