강의

멘토링

커뮤니티

BEST
Programming

/

Back-end

JPA (ORM) 開発者向け 高性能SQL (High-Performance SQL)

リレーショナルデータベースシステムを最大限に活用しましょう!

難易度 中級以上

受講期間 無制限

  • Vlad Mihalcea
SQL
SQL
performance-tuning
performance-tuning
sql-query
sql-query
DBMS/RDBMS
DBMS/RDBMS
SQL
SQL
performance-tuning
performance-tuning
sql-query
sql-query
DBMS/RDBMS
DBMS/RDBMS

学習した受講者のレビュー

学習した受講者のレビュー

4.9

5.0

모깅

34% 受講後に作成

非常に詳しく説明してくださったおかげで、トップレベルの開発者がどのように考え、開発するのかを学ぶことができました。残りの講義も必ずしっかり理解したいと思います!

5.0

hahahl

9% 受講後に作成

思考の流れを学べる方法が大変 도움이 됩니다. 英語で聞いて復習は時間を節約するために2倍速の韓国語で聞きますが、 전혀 어색함이 없네요。

5.0

화를참자

8% 受講後に作成

ブラドさんの講義があることも知っていましたが、英語ができないため躊躇してやめていました。ブラドさんがいつ韓国語を学んだのかはわかりませんが、韓国語で知識を共有していただきありがとうございます。講義スライドとても良いですね。ブラドさんが伝えたい部分をすぐに把握することができました。残りもよく学習してみます。

受講後に得られること

  • HibernateおよびJPA分野の世界的な専門家が教える、SQLパフォーマンスチューニングと最適化のノウハウを学びます。

  • バックエンドアプリケーションとデータベース間の効率的な相互作用を考慮したSQLの作成方法を習得します。

  • ORM環境でパフォーマンスを最大化するために、JOIN、サブクエリ、CTE、ウィンドウ関数など、さまざまなSQL戦略のうちどれを選択すべきかを判断する基準を提示します。

  • Oracle、SQL Server、MySQL、PostgreSQLなど代表的なRDBMSにおける性能改善クエリ戦略を比較し、各データベースでうまく機能する、または機能しない状況を明確に示します。

  • Upsert、Mergeのような高度なクエリ技法を、多様なRDBMS環境でどのように活用するか、実務事例を中心に学ぶことができます。

  • トランザクション分離レベルの問題、ロッキング戦略、JSONデータ処理、高度なインデックス戦略など、最新のSQLトピックを取り上げ、アプリケーションのパフォーマンスを最大限に高めることができる能力を養います。

Vladさん - バンドバナー(修正)

グローバル専門家に学ぶ
高性能SQLチューニング戦略

今書いているSQL、本当に最適化されていますか?

DBのパフォーマンスは、コードの最適化ではなく、「クエリ設計」で判明します。

クエリの本質を理解する瞬間、データベースが異なります。」

多くの開発者がSQLを作成し、ロジックの実装に慣れていますが、実際のデータベースのパフォーマンスに影響を与えるのはどのようにクエリを書いたのでしょうか。

結合の順序、サブクエリの位置、インデックスがどのように利用されるかに応じて、同じ結果を返すクエリも数十倍のパフォーマンスの違いを生み出します。
ただし、実行計画を読み取らずにORMが生成したSQLをそのまま書き込んだり、使い慣れたパターンだけを繰り返す場合、ボトルネックの実体は常に「深く隠されたまま」運営に負担をかけます。

すべてのアプリケーション開発者がDBAレベルの深いSQL理解を必要とするわけではありませんが、アプリケーションを開発するときに決して見逃すべきではない重要なSQLパフォーマンス技術があります。

多くの開発者がORMだけをよく知ったり、逆にSQLだけをよく知っていることが多いのですが、これら2つを有機的に組み合わせて理解して活用することは多くありません。
このレッスンでは、ORMとSQLを別々の技術ではなく互いに相乗効果を与えるためのツールとして見ていきます。

SQLは単純なデータ検索言語ではなく、データベースとパフォーマンスの意思決定のツールです。
クエリの本質を理解した後、パフォーマンスの向上はもはや感ではなく、設計の領域になります。

性能中心に設計する
SQLの考え方

「高性能SQL」講義を受講すると

機能のリストではなく、戦略的構造を設計する実用SQL

JOIN、サブクエリ、CTE、およびウィンドウ関数はそれ自体よりどのように組み合わせ、いつ選択するかが実践の核心です

クエリのパフォーマンスを「直接取得する」学習方法

単に文法を習得するのではなく、実際のクエリを実行し、応答速度を比較してみてボトルネックが発生する点、改善される構造をライン単位で探して体感できるように設計した講義です

トランザクションからJSONまで、高度なSQLで実務レベルアップ

ウィンドウ関数、トランザクション分離レベル、楽観的/悲観的ロック、JSON処理まで - 実践から頻繁に遭遇しますが、正しく習得するのが難しい高度なトピックを体系的にカバーしています。
性能・同時性・データ設計まで合わせる実戦型SQL実力を備えるようになります。

学習内容

さまざまなJOIN方式とパフォーマンス最適化戦略

INNER、OUTER、NATURAL、LATERAL JOINなど、SQLのさまざまな結合方法を比較し、状況に応じた選択基準とパフォーマンスの違いを分析します。

サブクエリと派生テーブルを利用したクエリ構造化

JOINとサブクエリの長所と短所を比較し、EXISTS、IN、ANY/ALLなど、さまざまなサブクエリ式の内部動作原理を理解します。

再帰クエリと階層型データ処理方式

Recursive CTEを活用して、ツリー構造や組織図など、階層的なデータを効果的に処理する方法を学びます。再帰クエリの実行方法とパフォーマンスに関する考慮事項をまとめ、実際のビジネスロジックを実装するために必要なSQL技術を習得します。

ウィンドウ関数で複雑な分析クエリを構成する

ROW_NUMBER、RANK、DENSE_RANK、LAG/LEADなどのウィンドウ関数を活用して、集計、ソート、ランクの取得など、複雑な分析ロジックをSQLで実装します。 WindowsフレームとPARTITION BYの内部動作を理解し、パフォーマンスを低下させることなくデータを集計する高度な技術を実践します。

実務でよく使われるSQL活用技法

UpsertとMergeの構文を活用して挿入と更新を同時に処理する方法を習得し、Pivo​​t/Unpivotを介してデータの形を柔軟に変形する手法を学習します。また、SQLの実行順序を正確に理解し、さまざまなページネーション方式の動作原理を習得し、クエリフローの理解度を高めます。

トランザクションとJSON処理までの高度なSQL

ACID特性とトランザクション分離レベルに基づいた並行性制御技術を習得し、悲観的/楽観的ロック戦略を比較します。 JSONデータ型をSQLで処理する方法も一緒に扱い、現代的なデータモデルに対応できる拡張されたSQL能力を備えています。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • ORMは使うけど、性能改善への欲求がある方

  • SQLチューニングはDBAの方が担当しており、SQLのパフォーマンス改善経験を切望している方

  • SQLは書けるものの、性能改善の方法や戦略の選択基準が不足していると感じる方

  • 実務で直面する複雑なクエリの問題を解決するセンスを磨きたい方

  • JOIN、CTE、トランザクション、JSONなど、高度なSQLのトピックまで体系的に学びたい開発者

前提知識、
必要でしょうか?

  • JAVA、Spring Framework の基本的な使い方

  • 基本的なSQL作成能力

  • リレーショナルデータベースの使用経験

こんにちは
です。

1,254

受講生

74

受講レビュー

4.5

講座評価

2

講座

私の名前はVlad Mihalceaです。Java Championであり、Amazonで最も売れているJava関連書籍の一つとなったHigh-Performance Java Persistenceの著者でもあります。

私は現在、素晴らしいHypersistence Optimizerを開発しており、空いた時間にはさまざまなオープンソースプロジェクト(Hypersistence UtilsFlexyPoolなど)の開発や、StackOverflowでの回答活動を行っています。

私はJavaチャンピオンであり、Hibernate ORMプロジェクトの主要なコントリビューターです。アプリケーションの構成とマッピングをスキャンし、データアクセス層の速度を向上させるために必要な変更を提案するツール、Hypersistence Optimizerを開発しました。

StackOverflowでHibernate、Java、JPAタグに関連する数千の質問に回答し、ゴールドバッジを獲得しました。

興味深い発見をすると、個人ブログで共有することを好みます。彼はオープンソースソフトウェアを信頼しており、すべての開発者が何らかの形で貢献すべきだと考えています。

適切なツールが見つからなければ、Hypersistence UtilsFlexyPoolのような新しいオープンソースプロジェクトを立ち上げることもあります。

カリキュラム

全体

79件 ∙ (7時間 37分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

31件

4.9

31件の受講レビュー

  • tjsahr9191님의 프로필 이미지
    tjsahr9191

    受講レビュー 30

    平均評価 5.0

    5

    34% 受講後に作成

    非常に詳しく説明してくださったおかげで、トップレベルの開発者がどのように考え、開発するのかを学ぶことができました。残りの講義も必ずしっかり理解したいと思います!

    • vladmihalcea
      知識共有者

      レビューありがとうございます。コースがお役に立てて嬉しいです。

  • hahahl님의 프로필 이미지
    hahahl

    受講レビュー 56

    平均評価 5.0

    5

    9% 受講後に作成

    思考の流れを学べる方法が大変 도움이 됩니다. 英語で聞いて復習は時間を節約するために2倍速の韓国語で聞きますが、 전혀 어색함이 없네요。

    • vladmihalcea
      知識共有者

      気に入っていただけて嬉しいです。私のコースは英語で収録されたのですが、Inflearnプラットフォームが韓国語の吹き替えと字幕を提供してくれました。

  • jiggyjiggy님의 프로필 이미지
    jiggyjiggy

    受講レビュー 6

    平均評価 5.0

    5

    8% 受講後に作成

    ブラドさんの講義があることも知っていましたが、英語ができないため躊躇してやめていました。ブラドさんがいつ韓国語を学んだのかはわかりませんが、韓国語で知識を共有していただきありがとうございます。講義スライドとても良いですね。ブラドさんが伝えたい部分をすぐに把握することができました。残りもよく学習してみます。

    • vladmihalcea
      知識共有者

      私の講座にご関心をお寄せいただきありがとうございます。楽しんでいただけて嬉しいです。

  • 20181420196030님의 프로필 이미지
    20181420196030

    受講レビュー 2

    平均評価 5.0

    5

    6% 受講後に作成

    いつもブログで拝見していましたが、今回講座が出たと聞いてすぐに申し込みました!! 良い講座をありがとうございます。韓国語で説明してくださるので、 부담감(負担感)なく聞けています。

    • vladmihalcea
      知識共有者

      この度は、迅速なご登録ありがとうございます。ビデオレッスンをお楽しみください。

  • limeade님의 프로필 이미지
    limeade

    受講レビュー 13

    平均評価 5.0

    5

    37% 受講後に作成

    多様な状況でどのような戦略を適用するのが良いのか、分かりやすく説明してくださいます。 SQLの力量を伸ばすのに大いに役立つと思います。

    • vladmihalcea
      知識共有者

      ありがとうございます。またお楽しみに。

¥27,913

Vlad Mihalceaの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!