Ускорение и оптимизация систем на 1С:Предприятие 8.3
Подготовка на 1С:Эксперт по технологическим вопросам
Коллеги, мы приняли решение вернуться к модели, которую использовали с 2010 года – проведение курсов в потоках.
Прием новых участников на данный курс приостановлен до открытия нового потока. Анонс будет опубликован в новостях сайта, по срокам пока ориентировать не готовы.
Что реально круто – обеспечить работу 1C на 100-200-500 рабочих мест .
С прямым кодом, быстрыми запросами, распределением нагрузки, преферансом и секретаршами…
В терминах 1С – это 1С:Экcперт по технологическим вопросам…
Самая высшая ступень в иерархии 1С для программиста / разработчика / внедренца.
Специалисты редкие – и дорогие.
Все остальные – в лучшем случае Специалисты / Специалисты-Консультанты.
В общем, оно того стоит…
И вот этому мы обучили уже около 4 200 человек…
Можно остаться читать форумы и надеяться на какую-нибудь прибавку к зарплате в 2019 году…
А можно взяться – и, наконец, изучить эти вещи уже за ближайший месяц-два…
В конце концов – кто, кроме нас самих, отвечает за то, что с нами будет в следующем году?
Что мы предлагаем изучить (содержание курса)
Глава 1. APDEXВ процессе оптимизации необходимо регулярно отслеживать скорость работы системы, как системы в целом, так и отдельных операций.
Оптимизация без регулярных замеров – это работа вслепую.
- рассмотрим способы автоматического замера времени различных операций
- узнаем, как отслеживать и оценивать производительность системы
- рассмотрим, как узнавать о проблемах со скоростью, не опрашивая пользователей
- Методика APDEX
- Внедрение подсистемы в конфигурацию
- Настройка ключевых операций
- Замер времени на клиенте. Замер времени на сервере
- Возможные ошибки при встраивании замера
- Обработка «Оценка производительности»
- Использование подсистемы в типовых конфигурациях
- Недостатки подсистемы. Ошибки
- Недостатки подсистемы. Исправление ошибок
- Регистрация в сервисе. Установка. Настройка
- Автоматический замер времени проведения документов
- Замер произвольной операции
- Регистрация текста запроса
- Замер времени открытия формы
- Просмотр данных APDEX
- Динамика APDEX и отчеты сервиса
- Отправка данных в сервис по почте
- Недостатки сервиса APDEX
- Автоматический расчет целевого времени от обратного
В данной главе мы рассмотрим настройку параметров сервера СУБД (на примере MS SQL Server) для повышения производительности системы.
Видеоуроки:- Перенос журнала транзакций на другой диск
- Перенос базы TempDB на другой диск
- Параметр «Max degree of parallelism»
- Настройка авторасширения
- Настройка Shared Memory
Выполнение регламентных операций является обязательным условием для быстрой работы системы.
В данной главе мы рассмотрим, какие регламентные задания необходимо выполнять на СУБД и на 1С, как и с какой периодичностью это нужно делать.
Кроме того, будет рассмотрен процесс настройки уведомлений о выполнении регламентных операций.
Видеоуроки:- Основные регламентные операции
- Настройка регламентной операции обновления статистики
- Настройка регламентной операции дефрагментации/реиндексации
- Перенос плана обслуживания
- Оповещения по e-mail
- Возможные проблемы при настройке оповещений
- Установка границы рассчитанных итогов в режиме 1С:Предприятие
- Установка границы рассчитанных итогов с помощью встроенного языка
- Пересчет итогов
- Тестирование и исправление
В процессе эксплуатации системы необходимо регулярно следить за тем, насколько сильно загружено оборудование.
В данной главе мы разберем, как можно отслеживать загруженность оборудования для ОС Windows и для Linux и как оценивать собранные данные.
Рассмотрим также, на что обращать внимание при анализе и как сделать сбор данных о загруженности оборудования автоматическим даже в случае перезагрузки сервера.
Видеоуроки:- Мониторинг производительности оборудования
- Добавление счетчиков вручную
- Добавление счетчиков шаблоном
- Добавление счетчиков bat файлом
- Настройка группы сборщиков данных
- Настройка автозапуска после перезагрузки
- Просмотр и анализ графиков загруженности оборудования
- Пример анализа
- Просмотр дисковой активности
- Сравнение производительности разных дисков
- Сравнение производительности 1С в разных условиях
- Рекомендации по оборудованию
В данной главе мы узнаем, как понять, почему система работает медленно.
Разберем как платные, так и бесплатные инструменты анализа производительности.
Подробно рассмотрим настройку и использование данных инструментов и на примерах разберем, как проявляют себя различные типы проблем производительности.
После изучения данной главы Вы научитесь точно определять причины, которые приводят к замедлению.
Видеоуроки:- Принципы расследования проблем производительности
- Включение отладки на сервере
- Замер производительности
- Подготовка к настройке ЦУП
- Настройка прав для каталогов
- Настройка разрешений для СУБД
- Мастер настройки ЦУП
- Шаги «Центральный сервер», «COM-Соединитель», «Кластер», «Информационная база»
- Шаги «Типы показателей», «Показатели 1С:Предприятия», «Показатели ОС»
- Шаг «Технологический журнал»
- Шаг «Трассировки»
- Шаг «Сервер COM-Соединитель»
- Шаг «Сервер ЦУП (Трассировки)»
- Сценарий «Мониторинг»
- Сценарий «Просмотр»
- Создание собственных сценариев
- Сценарий «Регламентный мониторинг»
- Оперативные показатели
- Аналитические показатели
- Сбор и анализ оперативных показателей
- Проверка работоспособности ЦУП
- Формирование логов при отключенном ЦУП
- Сервис анализа неоптимальных запросов
- Сбор и анализ данных с помощью сервиса
- Сервис анализа ожиданий на блокировках
- Сервис анализа событий технологического журнала
- Подключение сервисов через тонкий клиент
- Ошибка SHOWPLAN permission denied
Неоптимальные запросы являются наиболее частой причиной медленной работы системы.
В данной главе мы узнаем основные причины медленной работы запроса, научимся читать и понимать планы запросов, будем учится определять, почему запрос работает медленно, и как это исправить.
Также мы узнаем, как с помощью различных инструментов найти медленные запросы, отранжировать их по степени влияния на производительность и узнать, из какого места в конфигурации они вызываются.
Видеоуроки:- Хранение объектов метаданных и временных таблиц
- Свойство «Индексировать»
- Индексировать с дополнительным упорядочиванием
- Создание индекса для первого измерения
- Свойство «Ведущее»
- Создание индексов через Management Studio
- Просмотр плана запроса в SQL Profiler
- Просмотр плана запроса в консоли запросов
- Операторы Table Scan
- Операторы Clustered Index Scan
- Операторы Index Scan
- Операторы Constant Scan
- Операторы Index Seek
- Операторы Clustered Index Seek
- Оператор Sort
- Оператор Compute Scalar
- Операторы соединения Nested Loops
- Операторы соединения Merge Join
- Операторы соединения Hash Join
- Логические и физические операторы
- Логический оператор Semi Join
- Отображение плана запроса
- Порядок выполнения операторов
- Стоимость операторов и плана запроса
- Основные свойства операторов
- Чтение графического плана запроса и текстового плана
- Чтение плана запроса с разыменованием полей
- Чтение плана с соединением нескольких таблиц
- Чтение плана с составным типом
- Чтение плана с TOP и Nested Loops
- Предварительная оптимизация запроса
- Признаки неоптимального плана Nested Loops
- Признаки неоптимального плана Scan
- Признаки неоптимального плана Seek… Where
- Признаки неоптимального плана Hash Aggregate
- Признаки неоптимального плана Key Lookup
- Признаки неоптимального плана Table Spool
- Порядок анализа плана запроса
- Невыполнение регламентных операций
- Соединение с подзапросами
- Использование временных таблиц, индексация временных таблиц
- Соединение с виртуальными таблицами
- Подзапрос в условии соединения
- Подзапросы в условиях и вложенные подзапросы
- Несоответствие индексов и условий. Регистр накопления
- Условия, не позволяющие использовать индекс. ИЛИ
- Условия, не позволяющие использовать индекс. Вычисление
- Условия, не позволяющие использовать индекс. НЕ В
- Условия, не позволяющие использовать индекс. Функции
- Условия, не позволяющие использовать индекс. Вхождение полей в разные списки
- Условия, не позволяющие использовать индекс. Вхождение в список с большим числом элементов
- Непокрывающие индексы
- Покрывающий индекс с доп. упорядочиванием
- Селективность
- Определение недостающих индексов
- Сортировка по полю, которое не входит в индекс
- Выбрать первые и сортировка
- Когда сортировка не влияет на производительность
- Внутреннее устройство полей составного типа
- Неявное образование полей составного типа
- Обращение к реквизитам поля составного типа
- Смешивание простых и ссылочных типов
- Минимум и максимум от полей составного типа
- Составной тип и RLS
- Определяемые типы
- Фильтрация виртуальных таблиц
- Запрос в цикле. НайтиПо.
- Запрос в цикле. Обращение к реквизитам
- Запрос в цикле. Вывод ссылки на экран
- Запрос в цикле. Коррелированные запросы
- Запрос в цикле. Намеренное использование
- Большой объем выборки данных
- Обращение к полю через несколько точек
- Получение ссылки от поля ссылочного типа
- Объединить и Объединить все
- Запросы с RLS
- Универсальные запросы
- Особенности работы с виртуальной таблицей остатков
- Особенности работы с виртуальной таблицей среза
- Особенности выполнения пакетных запросов
- Особенности объектного чтения данных
- Анализ больших запросов
- Анализ запросов СКД
- Методы запроса Выполнить
- Методы запроса Выбрать
- Методы запроса Выгрузить
- Как выполнить запрос «как в первый раз»
- Хранение временных таблиц
- Сжатие базы TempDB
- Кто сейчас выполняет долгий запрос
- Что не влияет на производительность запроса
- Рекомендации по написанию запросов
- Анализ с помощью сервиса. Запросы без контекста
- Анализ с помощью сервиса. Запросы с контекстом
- Анализ с помощью ЦУП. Настройка и сбор данных. Анализ
- Анализ с помощью SQL Profiler
- Сохранение трассировки в таблицу
- Шаблоны SQL Profiler
- Сопоставление плана и текста запроса в SQL Profiler
- Сохранение трассировки в файл
- Ошибка Trace skipped records
- Различные события SQL Profiler
- Анализ запроса с помощью технологического журнала
- Анализ неоптимального запроса. Примеры 1 – 5
В многопользовательской системе часто возникают излишние ожидания на блокировках, что снижает параллельность работы пользователей.
В данной главе Вы узнаете, что такое блокировки, зачем они нужны и как работают.
Вы научитесь отличать избыточные блокировки от необходимых, узнаете основные причины избыточных блокировок и способы их устранения.
Видеоуроки:- Обработка исключений в транзакциях. Примеры 1 – 6
- Пессимистическая объектная блокировка
- Оптимистическая объектная блокировка
- Объектные блокировки и защита данных в СУБД
- Пример установки X блокировки
- Пример установки S блокировки
- Пример установки U блокировки
- Какие объекты блокируются
- Read uncommitted
- Read committed
- Read committed snapshot
- Repeatable read
- Serializable
- Режимы блокировок в 1С
- Управляемые блокировки
- Пример неявной управляемой блокировки
- Пример явной управляемой блокировки
- Автоматический режим блокировок
- Неоптимальная работа запроса. Пример
- Методические ошибки: Константы
- Методические ошибки: Последовательность
- Методические ошибки: Регистр накопления запись задним числом
- Методические ошибки: Регистр накопления разделение итогов
- Методические ошибки: Регистр бухгалтерии
- Механизм разделения итогов. Особенности использования
- Разделение итогов в автоматическом режиме
- Старая методика контроля остатков
- Новая методика контроля остатков
- БлокироватьДляИзменения и 8.2
- БлокироватьДляИзменения и 8.3
- Дополнение по свойству «БлокироватьДляИзменения»
- Новая методика и партионный учет
- Режим удаления «Не удалять автоматически»
- Режим удаления «Удалять автоматически»
- Режим удаления «Удалять автоматически при отмене проведения»
- Оптимизация при перепроведении
- Выгрузка изменений по плану обмена
- Изменение большого числа данных в транзакции
- Эскалация блокировок СУБД
- Событие Lock:Escalation
- Эскалация блокировок 1С
- ЦУП. Сбор данных для анализа
- ЦУП. Анализ блокировок. Примеры 1 и 2.
- ЦУП. Анализ блокировок. Проверка оптимизации
- ЦУП. Анализ блокировок СУБД. Воспроизведение
- ЦУП. Анализ блокировок СУБД. Расследование
- ЦУП. Анализ блокировок. Пример 3
- Сервис. Сбор и выгрузка данных
- Сервис. Анализ управляемых блокировок
- Сервис. Анализ блокировок СУБД
- Сервис. Анализ ожиданий. Примеры 1, 2
- Анализ блокировок с помощью консоли кластера
- Анализ блокировок с помощью монитора активности
- Анализ блокировок. Sys.dm_tran_locks
- Обработка отображения текущих блокировок MS SQL
- Выводы по выполнению анализа блокировок
В данной главе мы разберем основные типы взаимных блокировок, как и почему они появляются.
Рассмотрим на примерах, как их можно зафиксировать, проанализировать и устранить.
Видеоуроки:- Повышение режима блокировки ресурса. Примеры 1 – 3
- Повышение режима блокировки ресурса. Решение
- Захват ресурсов в разном порядке. Воспроизведение
- Захват ресурсов в разном порядке. Решение
- БлокироватьДляИзменения
- Взаимоблокировка из-за запроса со сканированием
- Взаимоблокировка из-за распараллеливания
- Взаимоблокировка из-за эскалации
- Распределенная взаимоблокировка. Схема
- Распределенная взаимоблокировка. Пример
- Сервис анализа взаимоблокировок. Установка и настройка
- Сервис анализа взаимоблокировок. Воспроизведение и выгрузка
- Повышение режима блокировки ресурса. Пример 3
- ЦУП. Воспроизведение и сбор данных о взаимоблокировках
- ЦУП. Анализ взаимоблокировок
- Анализ взаимоблокировок на блокировках 1С
- Сервис. Ошибки при анализе
- Пример взаимоблокировки из-за разделителя
- Пример взаимоблокировки из-за сканирования
- Пример взаимоблокировки из-за разного порядка захвата ресурсов
Иногда встречаются операции, которые нельзя ускорить оптимизацией запроса или устранением излишних блокировок.
В данной главе мы рассмотрим несколько таких операций и способы их ускорения, в том числе с помощью распараллеливания.
Видеоуроки:- Алгоритм многопоточной обработки данных
- Анализ результатов обработки в несколько потоков
- Способы ускорения записи в регистры
- Ускорение записи в регистры
- Динамические списки. Опция «Динамическое считывание» включена
- Динамические списки. Опция «Динамическое считывание» отключена
- Динамическое считывание данных при неуказанной основной таблице
- Общие рекомендации по работе с динамическими списками
В данной главе мы рассмотрим процесс подготовки и проведения нагрузочного тестирования.
Мы узнаем, как написать тест и провести тестирование с помощью конфигурации Тест–Центр и как можно работать с автоматизированным тестированием.
Также мы рассмотрим вопросы выбора оборудования на основе результатов теста.
Видеоуроки:- Методика нагрузочного тестирования
- Объединение конфигурации с Тест-Центр
- Пример простого теста. Создание обработки
- Пример простого теста. Создание сценария
- Пример простого теста. Запуск сценария
- Встраивание замеров
- Отладка виртуальных пользователей
- Автоматизированное тестирование. Создание сценария вручную
- Автоматизированное тестирование. Упрощение сценария
- Запись действий пользователя
- Создание сценария по записанным действиям
- Выполнение записанного сценария
- Сценарий с двумя клиентами тестирования
В этой главе мы узнаем о том, как устроен кластер серверов 1С и как его настроить для повышения производительности и стабильности работы системы.
Рассматриваются настройки как для версии 8.3, так и для 8.2.
Видеоуроки:- Кластер серверов
- Версия 8.2. Настройки кластера. Порт
- Версия 8.2. Настройки кластера. Защищенное соединение
- Версия 8.2. Настройки кластера. Интервал перезапуска
- Версия 8.2. Настройки кластера. Ограничение по памяти
- Версия 8.2. Настройки кластера. Выключенные процессы
- Версия 8.2. Рабочий сервер создание и настройка
- Версия 8.2. Создание рабочего процесса
- Версия 8.2. Распределение нагрузки по процессам
- Версия 8.2. Распределение нагрузки по серверам
- Версия 8.2. Перенос сервисов
- Версия 8.2. Отказоустойчивость rphost
- Версия 8.2. Отказоустойчивость rmngr
- Версия 8.2. Отказоустойчивость ragent
- Версия 8.2. Использовать как резервный
- Версия 8.2. Отказоустойчивость рабочего сервера. Схема
- Версия 8.2. Отказоустойчивость рабочего сервера. Пример
- Версия 8.2. Отказоустойчивость центрального сервера. Схема
- Версия 8.2. Отказоустойчивость рабочего сервера. Пример
- Версия 8.2. Резервирование кластеров. Схема
- Версия 8.2. Резервирование кластеров. Пример
- Версия 8.2. Резервирование кластеров. Особенности
- Версия 8.2. Рабочий сервер в роли резервного. Схема
- Версия 8.2. Рабочий сервер в роли резервного. Пример
- Версия 8.3. Настройки кластера
- Версия 8.3. Максимальный объем памяти рабочих процессов
- Версия 8.3. Безопасный расход памяти за один вызов
- Версия 8.3. Объем памяти, до которого сервер считается производительным
- Версия 8.3. Регулировка числа рабочих процессов
- Версия 8.3. Менеджер под каждый сервис
- Версия 8.3. Центральный сервер
- Версия 8.3. Требования назначения функциональности
- Версия 8.3. Обслуживание базы на отдельном сервере
- Версия 8.3. Фоновые задания на отдельном сервере
- Версия 8.3. Распределение клиентов по рабочим процессам
- Версия 8.3. Центральные серверы
- Версия 8.3. Центральные серверы и отказоустойчивость
- Версия 8.3. Центральные серверы и отказоустойчивость. Пример
- Версия 8.3. Уровень отказоустойчивости
- Версия 8.3. Отказоустойчивость. Ситуация 1
- Версия 8.3. Отказоустойчивость. Ситуация 1. Пример
- Версия 8.3. Отказоустойчивость. Ситуация 2
- Версия 8.3. Отказоустойчивость. Ситуация 2. Пример
- Версия 8.3. Отказоустойчивость. Ситуация 2. Пример 2
- Версия 8.3. Отказоустойчивость. Ситуация 3
- Версия 8.3. Расчет уровня отказоустойчивости
- Версия 8.3. Влияние отказоустойчивости на производительность
- Версия 8.3. Связь УО и требований назначения функциональности
- Версия 8.3. Минусы механизма отказоустойчивости
- Отличия в механизме лицензирования 8.2 и 8.3
- Рекомендации по общей архитектуре
Технологический журнал является основным источником информации при анализе проблем производительности и стабильности.
В данной главе мы узнаем, как можно тонко настраивать технологический журнал, какие данные он собирает.
Рассмотрим, как можно использовать технологический журнал для решения проблем производительности и какие ошибки чаще всего допускают при использовании технологического журнала.
Видеоуроки:- Описание и назначение технологического журнала
- Включение ТЖ
- Ошибки при настройке ТЖ
- Структура логов
- Свойства событий
- Фильтрация по событиям
- Фильтрация по свойствам
- Условия фильтрации
- Комбинация фильтров
- Запись в разные каталоги
- Получение плана запроса
- Отличия ТЖ 8.2 и 8.3
- Обработка настройки ТЖ
- Влияние на производительность
- Сбор ТЖ на клиенте
- Анализ ожиданий на управляемых блокировках
- Анализ взаимоблокировки на блокировках 1С
Многие специалисты часто сталкиваются не только с проблемами производительности, но и проблемами стабильности работы.
В данной главе мы рассмотрим, как можно расследовать «падения» и «зависания» сервера 1С, а также утечки памяти и другие всевозможные ошибки.
Видеоуроки:- Дампы
- Расследование падений
- Расследование падений с помощью 1С
- ЦКТП
- Расследование зависаний
- Утечки памяти
- Выявление утечек памяти
- Определение базы с утечками памяти
- Расследование утечек с помощью ТЖ
- Расследование утечек памяти. Дампы
- Рабочий процесс занял много памяти. Версия 8.2
- Проблемы стабильности
В данной главе мы узнаем, как сделать собственную стратегию резервного копирования.
Мы рассмотрим различные типы бэкапов, научимся восстанавливать базу на определенный момент времени, узнаем, как автоматизировать процесс создания резервных копий.
Видеоуроки:- Резервное копирование
- Основные настройки резервного копирования
- Создание полного бэкапа интерактивно
- Восстановление из полного бэкапа
- Сжатие бэкапов
- Создание бэкапа с помощью скрипта
- Создание разностного бэкапа
- Восстановление из разностного бэкапа
- Создание второго разностного бэкапа
- Создание бэкапа лога
- Восстановление бэкапа лога
- Создание цепочки журналов транзакций
- Бэкап конечного фрагмента
- Стратегия резервного копирования
- Автоматизация создания бэкапов
В данной главе мы узнаем о том, как проходит экзамен, на что нужно обратить внимание при подготовке и какие источники информации рекомендуется прочитать перед экзаменом.
Также мы рассмотрим примеры задач которые решаются на тренинге 1С:Эксперт.
Видеоуроки:- Неоптимальные запросы при проведении
- Ожидания на блокировках. Сценарий
- Ожидания на блокировках. Воспроизведение
- Ожидания на блокировках. Анализ
- Ожидания на блокировках. Проверка оптимизации
- Взаимоблокировки. Сценарий
- Взаимоблокировки. Воспроизведение
- Взаимоблокировки. Анализ и оптимизация
- Взаимоблокировки. Проверка оптимизации
- Дополнительные вопросы и литература для подготовки к экзамену
В данной главе описаны различные скрипты MS SQL Server, которые в некоторых случаях могут быть очень полезны при расследовании проблем производительности.
Полезные скрипты и динамические представления
Глава 17. Работа с PostgreSQLВ данной главе рассматриваются основы работы и настройки СУБД PostgreSQL.
В частности, разберем средства диагностики и получения планов запросов, способы резервного копирования, а также другие нюансы работы с PostgreSQL.
Видеоуроки:- Установка PostgreSQL на Windows
- Создание базы из 1С
- Использование pgbadger
- Как получить план запроса на PostgreSQL
- Копия через выгрузку в SQL
- Восстановление из копии через psql
- Настройка для архивирования
- Подготовка к созданию базовой копии
- Создание базовой копии
- Восстановление из копии
В этой главе рассматриваются основы работы с Linux, основные команды и работа с регулярными выражениями.
Кроме того, данная глава включает в себя примеры анализа логов с помощью различных команд.