.NET EF/EF Coreベースのパフォーマンスチューニング、 より安定的に&より強力に!
より強力な.NET開発、 コアはクエリにあります!
「EF Coreで生成されるすべてのクエリは良い形式ではありません。」
.NET EFまたはEF Core(または同様のORM環境)を使用したアプリケーションによって自動的に生成されるクエリまたはクエリの処理方法が、SQL Serverの観点から不適切な関係でデータベースまたはクエリのパフォーマンスに影響を与えることは 少なくありません。データの変更とトランザクション処理ではより敏感です。さらに、クエリの追跡、修正などの管理が困難なため、DBオペレータが不快感を訴えるのが一般的です。
.NET Entity Framework CoreベースのDBプログラミングパフォーマンスのチューニング方法 このレッスンでは、.NET開発者にとって優れたプログラミングツールであるEF Coreを、よりパフォーマンスの高いクエリ、より信頼性の高い処理方法で実装できる ように、現在のパフォーマンス問題を理解し、その解決策を共有することに加えて、最新バージョン(V7)の強化された機能も紹介します。
こんな方へ おすすめです。
.NET開発者
EF Core開発者 またはユーザー
EFまたはEFコア 環境で運営される システム管理者
EF CoreのDBパフォーマンス 興味のあるユーザー
💬「.NET開発初心者でEF Coreは初めてなのに受講してもいいですか?」
.NETとEF Coreの経験があれば、内容を理解するのに簡単です。ただし、EF Coreが初めてのユーザーのために役立つような学習資料 も一緒に紹介しました。選手学習資料で参照してあらかじめ学習しておくと役に立ちます。また、サンプルプロジェクトはコンソールアプリケーションで構成されており、比較的簡単にアクセスできます。
💬「EF Coreのバージョンによっても違いがあるでしょうか?」
資料とデモはEF5から最近のEF7まで をカバーし、新バージョンの改善された機能と違いも紹介するので、区別して見ることができます。重要な機能については導入バージョンを一緒に記述したので判断に役立つでしょう。
一段階成長した自分を 会うことができます。
EF Coreでパフォーマンスが向上した適切なクエリ を生成するようにプログラムできます。
EF Coreでは、Insert/Update/Deleteとトランザクション 、ロック処理 をより安定して実装 できます。
パフォーマンスの問題が予想される問合せについて、DB担当者および関連部門、実務者などと協議し、問題を回避 できます.
SQL Serverクエリ追跡
集合演算と重複処理
💡実務開発に不可欠なクエリパフォーマンス問題解決ノウハウ .NET EF Coreの実装方法またはLambda / LINQ式の形式によって自動的に生成されるクエリの種類が異なり、これは クエリのパフォーマンスまたはDBのパフォーマンスに影響 します。このトレーニングでは、EF Coreの実装による自動生成クエリの内容とパフォーマンス上の問題を調べ、それらを解決する方法を 学ぶことができます。また、データ変更(DML)操作やトランザクション処理の問題によって実務で発生する重要な問題も理解できます。
特に、SQL Serverを専門的に長年コンサルティングし、講義してきた知識共有者が各テーマごとに実務で共通して現れる状況 を例として使用するため、実務活用に直接的に役立つように構成しました。
詳細カリキュラム✅ 1) コース紹介
Intro 入門者のための事前学習資料 コース紹介 Demo用SalesSimple DBの紹介 Visual Studio Demoプロジェクトの紹介 Visual Studio 構成のデモと LINQ 式 (入門) DBパフォーマンスチューニングの重要な要素 2) Code-First パフォーマンスに関する考慮事項
Database プロパティのチューニング データ型と長さ 複合キーまたはインデックスの指定 外部(参照)キー指定時のインデックス生成 3) クエリロギングとパフォーマンスモニタリング
クエリパフォーマンスの監視と分析用ツール Simple Logging SQL Serverクエリ追跡 Dotnet-counters BenchmarkDotNet データアクセス手順の概要 - クエリ応答時間(T)消費項目 4) DB Connection
接続文字列 (Connection String) 重要な項目 DbContextOptionsBuilder DbContextPool DB Connection OpenとCloseの時点を理解する MARS(Multiple Active ResultSets)接続 5)データ照会 - パート1
はじめに 同期対。非同期処理 一時的な対。パラメータクエリ ToQueryString() 非追跡クエリ 必要な列のみ SELECT (Projection) Benchmark - データルックアップ方式によるパフォーマンス IQueryable vs. IEnumerable Where(), Find(), First() vs. FirstOrDefault(), SingleOrDefault() FirstOrDefault()/SingleOrDefault() とサブクエリの問題 SingleOrDefault() および SQL LIKE 実装例 EF.Functions と SQL IN 条件、STRING_AGG() 関数を使用する 6)データ照会 - パート2
CROSS/INNER/OUTER JOIN APPLYの実装 .Include(), .ThenInclude() と Split Queries と EF Internal Buffering Lazy Loading vs. Eager Loadingと不要な冗長クエリ 集合演算(交差集合/合集合/差集合)および重複(distinct)処理 7)データ照会 - パート3
索引を使用するための前提条件SARG 非SARGタイプによる理解 8)高度なクエリなど
Paging クエリ 動的検索条件(別名万能照会)クエリ Compile Query 非同期クエリを停止する .Tag()でクエリをコメントアウトする 9) SQL直接使用
SQL直接使用サポート関数の分類 Adhoc or Parameterization クエリ テーブル値関数(TVF)の呼び出し スカラー型 (Non-Entity) クエリ呼び出し Entityベースのストアドプロシージャの呼び出し 照会用ストアード・プロシージャーの呼び出し 複数結果セット戻りストアドプロシージャの呼び出し 10)DML操作(INSERT / UPDATE / DELETE)、EF 6 vs。 EF7
単一 or Batch INSERT 一括データ変更とバッチ処理 EF Core 7の拡張 SaveChanges() 単一 or Batch UPDATE 単一 or Batch DELETE 一括更新用の ExecuteUpdate() or ExecuteDelete() UPDATE or DELETEステートメントを直接使用する 11) トランザクションとロック
DBパフォーマンスを考慮したトランザクション処理 トランザクション、分離レベル、Commit/Rollback/SavePoint Read Committed 分離レベルとロックをブロック Repeatable Read 分離レベル 休止トランザクションの問題 ケース – 「スリープトランザクション」パフォーマンスの問題 照会(読み取り)専用照会でブロックを回避する(NOLOCK or RCS) 12) 分散トランザクション(TransactionScope)
TransactionScopeクラスのパフォーマンス問題、アクション、管理 13) 付録
スカラー値ユーザー定義関数 (UDFs) 呼び出し EF Core 楽観的並行処理のサポート DbCommandInterceptor 継承 – クエリにヒントを追加する アプリケーションコードを変更せずにクエリヒントを設定する Q&A 💬 Q. 非専攻者も聞ける講義ですか?
.NETとSQLの基礎があれば聞くことができます、少し不足しても受講中に必要な基礎を並行学習すれば良いでしょう。
Q. 講義を聞く前に準備すべきことはありますか?
もし.NET EF Core入門者であれば、コースの前部で紹介する事前学習用資料を見て、従ってみてください。デモ用DB、EF Coreサンプルプロジェクトを含む他の資料もあらかじめダウンロードしておいてください。デモDBの構成と内容はトレーニングで説明します。また、DBとして使用するためのSQL ServerやSSMSなどの管理ツールも必要ですので、あらかじめインストールしておいてください。
Q. 受講前に備えなければならない環境はありますか?
Visual Studio(Community Edition以降)とSQL Serverが必要です。可能であれば、最新バージョンをお勧めします。コースの前半で.NET入門者向けのVisual Studioのダウンロードと構成についても簡単に紹介とデモを紹介します
この講義の知識共有者 紹介します。 キム・ジョンソンSQL
履歴
㈱シークオロ(www.sqlroad.com)代表コンサルタント/取締役(2005年から) SQL Serverコンサルティング、技術支援、講義、ソリューション開発 SQLBigEyes(SQL Serverパフォーマンスモニタリングソリューション、www.sqlbigeyes.com)の開発 SQLBigEyes(SQL Serverパフォーマンスモニタリングソリューション、www.sqlbigeyes.com)の開発 Microsoft Data Platform MVP 2002年から(現在2022年基準)21年間受賞、2008年MVP功労賞受賞 資格と認証
講義活動(1999年から)
釜山情報産業振興院 、スキルサポート教育センター 、ランニングウェイコリア教育センター、サムスンマルチキャンパスなどSQL Server自己開発プロセスの進行(クエリチューニング、DBチューニング、大容量データコアテクノロジの理解など) 外部活動
SQL Server MVP Deep Dives Vol 2 (Manning Pubs) 共著者に参加キム・ジョンソンのSQL Serverコンサルティングストーリー シーズン12年間進行中SQL Unpluggedセミナー5年間進行 SQL PASS Korea Chapter Leader Microsoft Ignite、BITEC、Tech Camp、MVP Camp、TechEd、MSDNなどのSpeakerに参加 一緒に見れば良い講義