How to Read an Execution Plan: Databases for Developers: Performance #1

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024
  • НаукаНаука

Комментарии • 61

  • @therasammaldaniel5800
    @therasammaldaniel5800 4 года назад +18

    You're the best SQL teacher we have ever seen. The way you explain with examples is easy for a layman too to understand. Thank you very much for everything you offered to us so far. You should be global reach.

    • @TheMagicofSQL
      @TheMagicofSQL  4 года назад +1

      You're too kind :) Glad I could help

  • @Thedirasa
    @Thedirasa 3 года назад +1

    He is making this video from his media room. Appreciate your contribution to the world.

  • @Symmetryful
    @Symmetryful 2 года назад

    I just wanted you to know that you’re a natural teacher. And that is really rare!

  • @macpaz
    @macpaz 2 года назад +2

    by far the best video on query performance on youtube. thank you!

  • @kopaczp
    @kopaczp 2 года назад +1

    Perfect! Very easy and joyful explanation of (usually) database subjects! Thanks!

  • @mustaphachatbi5952
    @mustaphachatbi5952 4 года назад +2

    found your channel recently , did not watch your videos yet but seems interesting and just wanted to encourage you and thank you (y)

  • @lancemartin6
    @lancemartin6 3 года назад +1

    In the first 8 seconds of your video, I decided to sub. Nice job bro.

    • @TheMagicofSQL
      @TheMagicofSQL  3 года назад

      Awesome, glad you find these useful!

  • @mostafayahia9647
    @mostafayahia9647 4 года назад +1

    Big fan of your work from Egypt.. Thank so much for your effort

    • @TheMagicofSQL
      @TheMagicofSQL  4 года назад +1

      Thanks Mostafa! Stay tuned for more videos over the coming weeks :)

  • @sanketmandlik
    @sanketmandlik 4 года назад

    Working on PLSQL since 3 yrs. This is much needed skill. Eagerly waiting for next video. Also I didn't understand that subquery execution part.

    • @TheMagicofSQL
      @TheMagicofSQL  4 года назад

      What is it that you don't understand about subqueries?

    • @sanketmandlik
      @sanketmandlik 4 года назад

      Scalar subquery. I didn't see that query earlier. Now I watched it again it crisp clear. Pardon me.
      I will open my laptop and get hands dirty with autotrace.
      Looking forward to great learnings
      Good day ☺️

    • @TheMagicofSQL
      @TheMagicofSQL  4 года назад

      Cool :)

  • @francisantony12
    @francisantony12 Месяц назад

    This helped me a lot. Thank you for this video

  • @MeerAthil
    @MeerAthil 4 года назад

    Good explanation, easy to understand. Please make videos on oracle locks and how to fix it

    • @TheMagicofSQL
      @TheMagicofSQL  4 года назад

      Thanks!
      What specifically do you want to know about locks?
      I've got a video discussing issues with update and deadlocks ruclips.net/video/Flvj29UkKPo/видео.html
      What else would you like to know?

    • @MeerAthil
      @MeerAthil 4 года назад

      @@TheMagicofSQL Thanks for your reply. I'll watch the video. If any doubt I'll comment. 👍

  • @nileshsahastrabuddhe1182
    @nileshsahastrabuddhe1182 4 года назад +1

    Thanks sir 🙏🙏🙏 really good explanation

  • @jinan.es.
    @jinan.es. 4 года назад +1

    You're amazing... I mean you really are amazing!

    • @TheMagicofSQL
      @TheMagicofSQL  4 года назад +1

      Thanks, glad you found this useful

  • @nhatquang3807
    @nhatquang3807 3 года назад +1

    can this be applied for Sql server too? anw, thanks for very comprehensive video.

    • @TheMagicofSQL
      @TheMagicofSQL  3 года назад +3

      The principles are the same for all relational databases, though some of the terminology is different

  • @payalmadhavi7162
    @payalmadhavi7162 3 года назад

    Gr8 job!expecting more vedios on db security.

  • @Kivencito
    @Kivencito Год назад

    I loved the video! thank you SO much! :)

  • @albertogonzalez5114
    @albertogonzalez5114 4 года назад +1

    thanks!

  • @jorgebedoyarpo
    @jorgebedoyarpo 3 года назад

    Thank you very much.......your videos are very useful to me.... I want to ask yo something... I am interested in watching your videos about performance, especially about execution plans....I see that you have some videos about that theme.... In what order do you suggest I see them?

    • @TheMagicofSQL
      @TheMagicofSQL  3 года назад

      Easiest is to follow the Databases for Developers: Performance playlist
      If you want something more in-depth, I've built a free course around these videos which includes example scripts and quizzes. Join this at:
      devgym.oracle.com/pls/apex/dg/class/databases-for-developers-performance.html

  • @masterprattu
    @masterprattu 4 года назад

    Thanks for the amazing videos m8

  • @sirknumbskull3418
    @sirknumbskull3418 3 года назад

    Your autotrace looks simple. My is full if index and access prediction. Is there a way to make it more simple?

    • @TheMagicofSQL
      @TheMagicofSQL  3 года назад +1

      You can change what appears in the output by going to Tools -> Preferences -> Autotrace. There you'll find a wealth of properties you can enable/disable

  • @rohitpuranikratlami
    @rohitpuranikratlami 2 года назад +1

    Hello Sir,
    I have one doubt please guide me:
    In the video at 6:25, number of rows from cuddly toys it's showing 5 in LAST_OUTPUT_ROWS column ,don't it should be 3. Later then 9 rows from pen make that to 7.Got confused here so I think there is some logic which I am missing so wanted to know whats the logic to arrive to those numbers.

    • @TheMagicofSQL
      @TheMagicofSQL  2 года назад +1

      LAST_OUTPUT_ROWS is how many rows this operation returns.
      The query fetched three rows from COLOURS
      It then fetched five rows from CUDDLY_TOYS and joined these to COLOURS
      Only three rows from CUDDLY_TOYS matched a row in COLOURS - two were discarded. Which is why the HASH JOIN directly above COLOURS has three LAST_OUTPUT_ROWS
      Does this help explain it?

    • @sharvarirg984
      @sharvarirg984 2 года назад +1

      @@TheMagicofSQL Those 3 rows will be matched with 9 rows in PEN,only 7 matched,So LAST_OUTPUT_ROWS has 7. Then those 7 will be matched with 24 rows in brick.
      How did 56 came as LAST_OUTPUT_ROWS?
      Can you put table contents in description?
      Which join will be performed (INNER JOIN)?
      select * from four_table_join? What is four_table_join? (I have seen select * from single_table. I have seen select * from A inner join B on A.x=B.y; But have not seen select * from four_table_join )Sorry to expect more basic thing from you.
      Please help.

    • @TheMagicofSQL
      @TheMagicofSQL  2 года назад +2

      FOUR_TABLE_JOIN is a view that contains all the joins.
      Some of those 7 rows from the hash join matched the same rows in BRICKS. For example, rows 1 & 2 from the join both match BRICKS rows 1 & 2, giving 4 in total
      This video is taken from my free SQL performance tuning class - to understand this further I suggest you take it
      devgym.oracle.com/pls/apex/dg/class/databases-for-developers-performance.html

    • @rohitpuranikratlami
      @rohitpuranikratlami 2 года назад

      @@TheMagicofSQL Thanks a lot It's much clear to me know 🙂

    • @tiglymigly2846
      @tiglymigly2846 2 года назад

      Agree with Rohit, the provided example of four_table_join is not that clear and maybe for some, even can be found confusing.
      Probably it is because the picture you providing (3:49), about that we have 3-colors, 3-toys, 11-bricks ...etc. and saying that we try to join all of them by color, is not what you later on showing in the details of four_table_join execution plan (6:29). four_table_join and it's data is a black box for a viewer, and thus it is hard for a beginner to comprehend how previously 7 resulted rows, hashjoined with 24 rows of bricks became 56, or 3 rows joined with 9 became 7...

  • @prashanthr130482
    @prashanthr130482 3 года назад

    hi , May I know how to find best join order and index for a huge query with a huge explain plan..

    • @TheMagicofSQL
      @TheMagicofSQL  3 года назад +1

      In general it's best to access the table that returns the fewest rows first. Indexes are effective when they locate few rows in the table.
      I discuss these topics further in my free course, Databases for Developers: Performance
      Sign up at devgym.oracle.com/pls/apex/dg/class/databases-for-developers-performance.html

  • @personalchaoyu8732
    @personalchaoyu8732 3 года назад

    So first question first, what are behind that tinny door ?

  • @kizitoebelechukwu8387
    @kizitoebelechukwu8387 3 года назад

    can you do a video for teradata explain plain

    • @TheMagicofSQL
      @TheMagicofSQL  3 года назад

      I work for Oracle, so I won't be covering other databases in-depth

  • @tiagorsacxs1
    @tiagorsacxs1 3 года назад +1

    You're the best !!!!

  • @caetanogodinat1989
    @caetanogodinat1989 11 месяцев назад

    nice

  • @juno7893
    @juno7893 4 года назад +1

    👏🏻👏🏻👏🏻

  • @sameerp510
    @sameerp510 3 года назад

    John den fbr pya na

  • @nviknesh8112
    @nviknesh8112 Год назад

    Toshiba and not an Imac.. Great

  • @danielskiba6705
    @danielskiba6705 3 года назад

    The nodding zipper is flashing and is distracting :'(

  • @m.a.6999
    @m.a.6999 3 года назад

    for algorithm

  • @solifugo
    @solifugo 4 года назад +1

    :clapping: , :clapping: , :clapping:

  • @dothanhlong1847
    @dothanhlong1847 6 месяцев назад

    .