Это видео недоступно.
Сожалеем об этом.
Сергей Михалев - Оптимизация SQL-запросов, часть 1
- Добавить в
- Мой плейлист
- Посмотреть позже
- Поделиться
Поделиться
HTML-код
Размер видео:
- Опубликовано: 17 авг 2024
Комментарии • 36
Следующие
Автовоспроизведение
Сергей Михалев - Оптимизация SQL-запросов, часть 2СodeFreezeVideo
Просмотров 12 тыс.
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Postgres Professional)HighLoad Channel
Просмотров 61 тыс.
Андрей Сальников - Индексы в PostgreSQL. Как понять, что создаватьJPoint, Joker и JUG ru
Просмотров 47 тыс.
I Ate At Every Gordon Ramsay Restaurant On The Vegas StripSafiya Nygaard
Просмотров 1,5 млн
OFFLINETV PLAYS TRUTH OR DRINKOfflineTV
Просмотров 1,8 млн
Disguised Truck Stealth CampingSteve Wallis
Просмотров 660 тыс.
Philadelphia Eagles vs. New England Patriots | 2024 Preseason Week 2 Game HighlightsNFL
Просмотров 1,1 млн
Индексы и все, все, все (Часть 2)russianVC
Просмотров 8 тыс.
Ловушка российской недвижимости. Льготы отменили, продажи падают, а цены растут! В чем подвохАлексей Аникин
Просмотров 3 тыс.
САМЫЕ ПРИБЫЛЬНЫЕ АКЦИИ: ЧТО ПОКУПАТЬ ПРЯМО СЕЙЧАС? Мнение GIF и Олега КузьмичеваGlobal Invest Fund
Просмотров 1 тыс.
Кэширование Планов Выполнения Запросов в SQL ServerrussianVC
Просмотров 4,6 тыс.
SQL Server. Оптимизация и Анализ производительностиSQLCom ru
Просмотров 7 тыс.
Индексы в MSSQL: принципы работы и способы оптимизацииAlexander Byndyu
Просмотров 18 тыс.
Вся правда о нормализации баз данныхSpecialistTV
Просмотров 82 тыс.
Как читать план запроса в SQL ServerCHash
Просмотров 45 тыс.
❌Ему повезло больше всех #storyКэри Найс
Просмотров 220 тыс.
Gli occhiali da sole non mi hanno coperto! 😎Senza Limiti
Просмотров 7 млн
Get 10 Mega Boxes OR 60 Starr Drops!!Brawl Stars
Просмотров 14 млн
Валерий Ширяев о событиях в Курской области и их последствиях / Редакция. ИнтервьюРедакция
Просмотров 2,9 млн
@RoomFactoryy КОРОЧЕ ГОВОРЯ, ЗАКАЗАЛИ ВСЕ МЕНЮ ИЗ KFC / 100.000 КАЛОИЙ ЗА 24 ЧАСАКОРОЧЕ ГОВОРЯ.
Просмотров 101 тыс.
Harley Quinn's revenge plan!!!#Harley Quinn #jokerHarley Quinn with the Joker
Просмотров 7 млн
Running With Bigger And Bigger FeastablesMrBeast
Просмотров 80 млн
VALENCIA CF 1 - 2 FC BARCELONA | RESUMEN LALIGA EA SPORTSLALIGA EA SPORTS
Просмотров 1,7 млн
Отличное выступление. Спасибо!
Сикл ))) спасибо, поржал)
Сергей, спасибо большое за обучение. Очень доходчиво подаете информацию. Получил много полезного.
Но не акцентируйте, пожалуйста, внимание на том, что parameter sniffing это плохо.
Наоборот необходимо использовать запросы без явного указания значений фильтрации. Это в большинстве случаев ускорит отработку запросов, т.к. в плане уже будет готов результат и не нужно каждый раз компилить.
Использовать изменённый запрос нужно лишь тогда, когда действительно в этом есть большая необходимость, кода СУБД действительно промахивается.
Спасибо, согласен, что PS может быть в 90% случаев полезен, особенно для простых запросов. Но мы же обсуждали оптимизацию, о которой даже Кнут говорил, что преждевременная оптимизация - корень всех зол. Поэтому да, для простых запросов об этом забодиться не стоит, но вот для тех 10%, которые представляют интерес с точки зрения оптимизации забывать нельзя. Поэтому PS - это не хорошо и не плохо, это поведение, которое иногда ведет к очень загадочным последствиям. :)
Спасибо, Сергей, взял на заметку трюк с OUTER APPLY!
Спасибо за замечание. Действительно сталкивался я с этим параметром. Но реально никогда его не менял. Просто потому, что протестировать действительный эффект на работающем продакшене и просчитать последствия практически невозможно. Так воздействие ведеться сразу на все запросы. И это возможно будет работать быстрее в тестировании, но обычно на продакшене машиша мощнее и не ясно, как это может сказаться там.
Сергей, Вы говорите что оптимизатор использует хороший план, но не лучший. Т.к. никому не нужно, чтобы план был самым лучшим и запрос выполнялся очень быстро, но при этом сам план строился 10 секунд. Вот у меня такой вопрос, можно ли ради эксперимента настроить оптимизатор так, чтобы он увеличил время на выбор оптимального плана?
Про параллелизм: есть параметр cost threshold for parallelism (подробнее в MSDN, ютуб не дали приложить ссылку). С её помощью можно менять порог "последовательный план недостаточно быстрый". Это необходимо, т.к. фактически, есть системы, в которых параллельные планы реально медленнее последовательных. Многие рекомендуют его повышать, если система скорее всего не требует параллелизма (например, OLTP-системы).
интересная лекция. спасибо.
Услышал интересные вещи из первой части, но так и не понял, зачем мы так упорно пытаемся приджойниться к остальным таблицам и при этом избежать реального к ним обращения, вместо того, чтобы вообще не указывать их при получении COUNT. Пример примером но в реальной работе никогда не возникнет ситуации, когда нужно будет избегать обращения к таблицам, который сам же в запрос и приписал
Речь идёт про count.
Сергей, зачем нужно в ваших примерах указывать оптимизатору, что во втором потоке может быть максимум одна строка через outer apply, group by, кластерное вью, если в итоге данные из второго потока просто не используются и поэтому план становится лучше. Такого же результата можно добиться просто убрав второй поток из запроса. Зачем Вы проводите все эти манипуляции? Какой в них смысл?
Ситуация в этом конкретном примере была в том, что одна и та же функция использовалась в разных контекстах: когда вытаскивались поля и когда считался count(*). А самый главный вывод - он в самом конце, вы должны точно понимать, что вы хотите объяснить оптимизатору и какие у вас для этого есть инструменты.
как хорошо запомнить синтаксис?
Пожалуйст подскажите ссылку на документацию (для разговора с начальством) в подтверждении ваших слов
о важности наличия foreign key для оптимизации запроса
вы говорите:
"хотя если бы он знал, что эта запись всегда одна, он бы выбросил этот кластеред индекс seek и просто ограничился бы по одному пробегу по табличке диагнозов"
К начальству нельзя с документацией, к нему нужно с результатами ваших performance test-ов. Нужно понимать, что FK помогают при селектах. Но они так же требуют усилий для поддержания. Поэтому для баз данных в которых преобладают insert/update/delete - их часто не используют специально.
IT шники сйчас выглядят более спортивно. Похоже, компании очень заботятся о ценных кадрах, дают много плюшек
развитие умерло 5-7 лет назад? Куда не посмотри, все видосы древние как мама не горюй, что по запросам, что по настройке серверов
А что поменялось глобально?
технологии sql server не особо менялись, движок один
"ответственного нам врача"
"определённой нам больницы"
"более меньшие части"
не совсем понял про 4 пункт добавление комментариев - при добавлении комментария sql думает что это уже другой запрос?
Именно, он считает хеш запроса используя только текст запроса. Если вы даже одну букву поменяете с маленькой на большую он будет думать, что это другой запрос.
@@user-wc8ii2rr3v, я вот не понял как менять этот комментарий на каждом следующем вызове :/
@@user-ny2ys8dy7w я тож не понял
зачем коверкать говоря сиквел? s это ЭС, а не СИ. Удобнее и короче не стало, в чем смысл
Первоначально язык назывался SEQUEL, погуглите.
это "дот-нэт" разработчик, чего удивляться то?
44:53 - "по одным колонкам"
актуально ли это для PostgreSQL?
В PostgreSQL совсем другой оптимизатор, общие мысли возможно помогут. Но имея небольшой, но все-таки опыт оптимизации и в PostgreSQL - там все по-другому и рычаги влияния на оптимизатор тоже.
А для какой СУБД это вообще актуально?..
"nested looD" на 30-м слайде :)
спасибо за видео, но вот иностранные словечки вставлять это режет слух, а где пресловутое импорт замещение