Оптимизация SQL-запросов. Без воды. ТОП-10 ошибок.

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

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

  • @EvgenySeliverstov
    @EvgenySeliverstov 12 дней назад

    Спасибо! Очень интересно, и доступно!

  • @pepelac128
    @pepelac128 10 месяцев назад +4

    Смотрел про спину, а тут еще про sql - тоже глянемс 😂

    • @kostantinsilko5865
      @kostantinsilko5865  9 месяцев назад +3

      молодец друг! еще хочу про ремонт хаты запились ) чтобы всех порадовать )

    • @kostantinsilko5865
      @kostantinsilko5865  9 месяцев назад +3

      и больных и здоровых )

  • @kostyan1983
    @kostyan1983 2 месяца назад +2

    Спасибо, очень познавательно! Но не совсем понял одно - в первом примере вы говорите что SELECT INTO это плохо, а во всех остальных примерах именно эту конструкцию и используете.

    • @kostantinsilko5865
      @kostantinsilko5865  Месяц назад +1

      Это чтобы быстро показать все. Лучше материализовывать большие таблицы! Удачи!!!!

  • @AleksandrZakharov-z4f
    @AleksandrZakharov-z4f 11 месяцев назад +1

    Классно, спасибо за разбор :)

  • @TolegenX
    @TolegenX Месяц назад +1

    спасибо

  • @dizaynerak
    @dizaynerak Месяц назад +1

    Разве в пятой ошибке не будет сделана оптимизация планировщика под капотом?
    в десятом варианте не будет ли эквивалентом вашему варианту?
    select ...
    from table_function
    inner join empl
    on empl = table_function and table_function .title = 'лейтенант'

    • @kostantinsilko5865
      @kostantinsilko5865  Месяц назад +1

      Вполне, друг! Писал по опыту. Пробуйте свое всегда! Удачи!!

  • @beybitakparov5608
    @beybitakparov5608 8 месяцев назад +1

    Не совсем понял Ошибку 4. Там при помещении данных во временную таблицу мы же в select должны опять таки прописать name. Кстати у вас в примере её нет.

    • @kostantinsilko5865
      @kostantinsilko5865  7 месяцев назад

      да забыл. спасибо за внимательность. ну суть я передал верно ) спасибо за внимательность друг!

  • @vladdanilov75701
    @vladdanilov75701 8 месяцев назад +1

    Не совсем понял про ошибку 1. приведены два способа и первый является ошибочным, а второй верным. Но! В обоих случаях таблица, по Вашим словам, блокируется. Так почему надо использовать "insert into"?

    • @kostantinsilko5865
      @kostantinsilko5865  7 месяцев назад

      привет. если запрос большой - то есть после первой выборки идет ссылка на эту выборку - то блокировка продолжается пока второй запрос не завершиться.

    • @NotIce684
      @NotIce684 4 месяца назад

      @@kostantinsilko5865 И какая же блокировка идет?

  • @Евгений-о3п8м
    @Евгений-о3п8м 5 месяцев назад +1

    А что если в 4 примере, через какое-то время, в таблице появятся данные свыше 40 символов? Может лучше в переменной посчитать максимальную длину поля в символах, а потом сгенерить SQL с временной таблицей, куда подставить это значение? И если можно подробнее немного про into #temp. Почему лучше изначально создать временную отдельно, а потом использовать. (я сам так делаю, но чтобы был понятен набор полей в таблице.

    • @kostantinsilko5865
      @kostantinsilko5865  2 месяца назад +1

      спасибо!!!! вполне !!! удачи!!!!

  • @stary_boggg
    @stary_boggg 2 месяца назад +1

    Про 6 ошибку связанную с сложными индексами не совсем понял
    Я как понимаю нам необходимо просто учитывать кол-во символов для ключа в составном индексе?
    Или я не совсем понимаю как вообще составные индексы работают

    • @kostantinsilko5865
      @kostantinsilko5865  Месяц назад +1

      Да. все верно!!! Удачи!!! Пробуйте свое - я писал по опыту и может быть что-то не совсем четко передал. спасибо!!!

  • @leilailolo4736
    @leilailolo4736 5 месяцев назад +2

    я что-то не пойму, в первом примере говорится что select into лучше не использовать, а в последнем говорится, что наоборот, что лучше использовать

    • @kostantinsilko5865
      @kostantinsilko5865  2 месяца назад +1

      попробуйте сами. может ошибся... спасибо!!!