Неоптимальный план запросов

13.05.18

База данных - HighLoad оптимизация

Шпаргалка к экзамену "Эксперт по технологическим вопросам".

-На прошлой неделе учил дочку запоминать цвета радуги: Каждый Охотник Желает Знать, Где Сидит Фазан. Это очень надежный способ. Сам его использую уже около сорока лет. Применим его для подготовки к экзамену по технологическим вопросам. Ниже шпаргалка к популярному вопросу: «Расскажите о признаках неоптимальности в плане запросов». Конечно, мы знаем эти признаки, но быстро назвать их все в условиях стресса может не получиться. Итак, примерный перечень:

  • Table spool, Lazy spool, предупреждения в операторах сортировки о нехватке памяти свидетельствует об использовании подкачки с жесткого диска. Постараемся избегать использование самого медленного устройства в компьютере. Ассоциация: Файл подкачки.
  • Key (RID) lookup  - указывает на поиск по ключу, за ним обычно следует Nested loops. Таким образом данные собираются из разных мест. Как правило, эту пару операторов можно улучшить, используя покрывающий индекс. Ассоциация: поиск по ключу.
  • Filter сравнить количество строк на входе/выходе оператора. Если выход меньше на порядок - неоптимальность. Почему бы не отобрать данные раньше? Ассоциация: Поменять фильтр.
  • Nested loops – неоптимален, если выполняется много раз (с большим количеством строк). Более привлекательным являются операторы соединения таблиц Merge Join и Hash Join. Лучшее – враг хорошего. Ассоциация: соединение таблиц в цикле
  • Table (clustered index) scan, Index seek с предикатом where по низкоселективному условию. Способ доступа scan блокирует всю таблицу (индекс), если запрос применяет блокировку. Условие where нужно проверять на эффективность. Ассоциация: пробежать все страницы данных.

В результате получим ассоциативное стихотворение:

На экзамен чтоб добраться

Нужно сильно постараться

Пресс до кубиков качать,

Ключ от яхты потерять,

Фильтр в машине поменять,

Мотоцикл догонять,

По ступенькам пробежать.

Если Вы представите себя качком на яхте, машина, мотоцикл и как поднимаетесь по лестнице к экзамену – то вспомните все признаки неоптимального плана ))

Дисклаймер: шпаргалка не заменит полноценной подготовки, по ней нельзя изучать операторы плана запросов.

Буду благодарен за положительные отзывы, за конструктивную критику – благодарен вдвойне.

Я знаю, что я ничего не знаю.

Шпаргалка экзамен эксперт по технологическим вопросам.

См. также

Подготовка к аттестации Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Обучающая программа 1С Online представляет собой интерактивное изучение языка запросов с самого начала: - 50 практических заданий с различным уровнем сложности; - Методические материалы по практике написания запросов; - Описание назначения таблиц и индексов 1С Предприятие 8; - Методика решения реальных задач запросом 1С; - Автоматическая система проверки решений с указанием ошибок; - Инструкции по решению задач с разъяснениями; - Техническая поддержка пользователей. Тренажер запросов подходит для начинающих и действующих разработчиков 1С

1800 руб.

11.02.2014    76987    95    15    

189

Подготовка к аттестации Программист Стажер Платформа 1С v8.3 Россия Бесплатно (free)

Готовилась три месяца, сдала с первого раза. Делюсь опытом, лайфхаками и ресурсами, по которым учила материал.

14.03.2024    18103    PROSTO-1C    47    

90

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

2 стартмани

15.02.2024    12418    241    ZAOSTG    80    

115

Подготовка к аттестации Программист Бесплатно (free)

Мой опыт подготовки и сдачи к экзамену 1С: Эксперт по технологическим вопросам за 3 месяца. Часть 1.

29.01.2024    20248    shuhratsj    103    

213

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    14010    doom2good    49    

71

HighLoad оптимизация Системный администратор Программист Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    13531    ivanov660    6    

81

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    7158    a.doroshkevich    22    

74
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. harvester_sorrow 24 21.04.18 17:15 Сейчас в теме
Коллеге перешлю,как раз экзамен во вторник у него)
7. пользователь 22.04.18 00:43
Сообщение было скрыто модератором.
...
8. пользователь 23.04.18 04:28
Сообщение было скрыто модератором.
...
9. vasilev2015 2722 23.04.18 08:53 Сейчас в теме
(1) расскажите, если пригодится ))
2. user962133 21.04.18 17:33 Сейчас в теме
Ух ты, как раз во время, спасибо!
3. МихаилМ 21.04.18 18:02 Сейчас в теме
1с8 не поддерживает покрывающие индексы. и морозов и бурмистров избегают разговоры про нештатные оптимизации
4. vasilev2015 2722 21.04.18 18:35 Сейчас в теме
(3) Покрывающим (для данного запроса), называется индекс в котором есть все необходимые поля для этого запроса. Источник: http://www.gilev.ru/index/

Покрывающие индексы могут повысить производительность запросов, так как данные, необходимые для удовлетворения требований запроса, присутствуют в самом индексе. Источник https://msdn.microsoft.com/ru-ru/library/jj835095(v=sql.120).aspx

Кластерный индекс таблицы содержит все поля таблицы и является покрывающим для любого запроса.

Вы наверное, имели ввиду одно, но написали другое ?
5. МихаилМ 21.04.18 21:46 Сейчас в теме
(4) да . терминология запутана. я говорил о индексах с включенными

полями. а просто некластерные индексы с дополнительными ключевыми полями создаст излишнюю нагрузку при записи. сомнительная оптимизация.
6. vasilev2015 2722 21.04.18 22:19 Сейчас в теме
10. Andrefan 25.04.18 10:14 Сейчас в теме
Отличный подход, спасибо.
Просим другие шпаргалки с ассоциациями (или без них) !!!!
13. vasilev2015 2722 25.04.18 10:24 Сейчас в теме
(10) сам тоже собираюсь на экзамен ))
11. Andrefan 25.04.18 10:21 Сейчас в теме
Информация с ИТС тоже крайне полезна, спасибо. Подскажите, вы просто глазами это всё находили или делали какие-то фильтры?
12. vasilev2015 2722 25.04.18 10:23 Сейчас в теме
(11) это даже не ИТС, это файл из каталога установки. Открыл в Word, искал интересующие меня слова: транзакция, блокировка, экскалация...
14. Yashazz 4790 17.03.21 12:35 Сейчас в теме
Просто, доходчиво и прекрасно. Вот это я понимаю, достойный уровень подачи материала, притом, что всё лаконично донельзя. Браво.
Оставьте свое сообщение