«1С:Профессионал» по технологическим вопросам (Раздел 5)

Производительность

Вопрос 5.1
Как получить точное время выполнения операции в однопользовательском режиме в веб клиенте?

1. С помощью секундомера.
2. Внести соответствующие изменения в код конфигурации, используя подсистему Оценка производительности, входящую в состав Библиотеки стандартных подсистем.
3. С помощью замера производительности отладчиком.
4. С помощью вызовов функции ТекущаяДата().
5. С помощью журнала регистрации.
6. Реально выполнимы 1, 3, 5.

Вопрос 5.2
Как получить замер производительности с серверной частью?

1. Настроить файл logcfg.xml с событием debug.
2. Внести в реестр Windows (regedit) ключ «-debug» в строку запуска службы агента 1С:Предприятия.
3. Запустить информационную базу с параметром «-debug».
4. Добавить файл debug.xml в каталог /bin.
5. В конфигураторе в меню Сервис – Параметры поставить флажок напротив пункта «Выполнять замеры с серверной частью».

В клиент-серверном варианте, чтобы в замер попал серверный код, необходимо, чтобы сервер был запущен в режиме отладки с ключом -debug.

Источники:
«Настольная книга 1С:Эксперта по технологическим вопросам» (ред.2), стр.147

Вопрос 5.3
Как получить время выполнения операций пользователями в многопользовательском режиме?

1. Внести соответствующие изменения в код конфигурации, используя подсистему Оценка производительности, входящую в состав Библиотеки стандартных подсистем.
2. С помощью секундомера.
3. С помощью вызовов функции ТекущаяДата() и организации хранения результатов.
4. С помощью вызовов функции ТекущаяДата() без хранения результатов.
5. С помощью журнала регистрации.
6. Реально выполнимы 1, 3, 5.

Вопрос 5.4
Технологический журнал для 32-разрядной системы Windows при включении на сервере:

1. ничем не отличается от журнала для 64-разрядной системы.
2. будет содержать журналы не только серверных, но и всех клиентских процессов системы.
3. будет содержать журналы не только серверных, но и клиентских процессов, запущенных с этого сервера.

Нет разницы.

Вопрос 5.5
Дисперсия случайной величины это:

1. оценка среднего квадрата отклонений ее значений от математического ожидания.
2. математическое ожидание квадрата соответствующей центрированной величины.
3. математическое ожидание модуля соответствующей центрированной величины.

Дисперсией случайной величины называется математическое ожидание квадрата ее отклонения от соответствующей центрированной величины, т.е. математическое ожидание квадрата центрированной случайной величины.

Ссылки:
«Теория вероятностей и математическая статистика. Основы, прикладные аспекты с примерами и задачами в среде Mathcad» — Ивановский Р.И., БХВ-Петербург, 2008 (стр. 77)

Вопрос 5.6
Что нужно получить для проверки основных подозреваемых в медленном выполнении операции?

1. Время выполнения по секундомеру и план запроса.
2. Замер на отладчике под нагрузкой.
3. Сумму Duration всех запросов операции к базе в однопользовательском режиме и замер на отладчике в однопользовательском режиме, желательно на рабочей базе, при невозможности — на копии.
4. Проверить, как эта же операция выполняется в типовой конфигурации.
5. Через технологический журнал собрать события DBMSSQL.

Плохая работа запроса для СУБД MS SQL проверяется так: включив профайлер SQL Server, выполняем ключевую операцию еще раз и собираем длительности всех  запросов, выполнявшихся во время его работы (показатель duration). Если сумма duration близка ко времени выполнения всей операции, можно однозначно делать вывод, что потери времени происходят в СУБД.

Источники:
«Настольная книга 1С:Эксперта по технологическим вопросам» (ред.2), стр.23

Вопрос 5.7
Стандартное отклонение (в математической статистике) это:

1. оценка среднеквадратического отклонения случайной величины x относительно её математического ожидания на основе несмещённой оценки её дисперсии.
2. то же, что среднеквадратическое отклонение случайной величины x.
3. показатель рассеивания значений случайной величины относительно её математического ожидания. Маленькое значение стандартного отклонения показывает большой разброс значений в представленном множестве со средней величиной множества; большое значение, соответственно, показывает, что значения в множестве сгруппированы вокруг среднего значения.

Вопрос 5.8
Требуется найти код на встроенном языке, в результате выполнения которого был выполнен определенный запрос к серверу СУБД. Т.е. нужно найти место в конфигурации, где выполнен запрос. Как именно это сделать (и возможно ли это)? Текст запроса нам известен из трассировки MS SQL Profiler.

1. С помощью журнала регистрации. При выполнении запроса в журнале регистрации будет событие с уровнем Информировать(). Аналогичные события пишутся при изменении объектов.
2. Достаточно трассировки MS SQL Profiler, т.к. один из параметров этого запроса и будет стек на встроенном языке.
3. С помощью замера производительности конфигуратором (сервер в режиме debug) можно получить точную информацию о строке кода, из которой был выполнен запрос.
4. Получить стек на встроенном языке, зная только текст запроса, невозможно. Информации недостаточно.
5. Необходимо настроить технологический журнал с фильтрами, включающими уникальные части текста запроса, затем дождаться следующего выполнения запроса. При следующем выполнении стек запроса будет в технологическом журнале.

Вопрос 5.9
Какие классы событий нужно собирать с помощью MS SQL Profiler только для получения ответа на вопрос: «Каково общее время выполнения запросов к серверу СУБД MS SQL Server от одного выполнения некоторой операции?»

1. Достаточно только одного класса событий TSQL \ SQL:BatchCompleted
2. Stored Procedures \ RPC:Started, TSQL \ SQL:BatchStarted, Performance:Performance statistics
3. Stored Procedures \ RPC:Completed, TSQL \ SQL:BatchCompleted
4. Performance:Showplan Statistics Profile

Вопрос 5.10
По какому критерию (каким критериям) в трассировке MS SQL Profiler можно выяснить, какие именно запросы могут выполняться наиболее неоптимально (могут иметь наиболее неоптимальные планы запросов)?

1. TimeoutWarning
2. Duration и CPU
3. Reads и Duration
4. Duration и RowCounts
5. Reads, RowCounts и Duration

Вопрос 5.11
Центрированной случайной величиной, соответствующей случайной величине Х, называется:

1. отклонение случайной величины Х от ее математического ожидания.
2. отклонение случайной величины Х от ее моды.
3. отклонение случайной величины Х от ее медианы.

Центрированной случайной величиной называется разность между случайной величиной и ее математическим ожиданием.

Ссылки:
«Теория вероятностей и математическая статистика. Основы, прикладные аспекты с примерами и задачами в среде Mathcad» — Ивановский Р.И., БХВ-Петербург, 2008 (стр. 77)

Вопрос 5.12
Математическое ожидание случайной величины это:

1. среднее арифметическое наблюденных значений случайной величины.
2. сумма произведений всех возможных значений случайной величины на вероятности этих значений.
3. наиболее вероятное значение случайной величины (значение, в котором плотность вероятности максимальна).
4. такое значение случайной величины, при котором равновероятно, окажется ли случайная величина больше или меньше этого значения.
5. верны все ответы.

Математическим ожиданием случайной величины называется сумма произведений всех возможных значений случайной величины на вероятности этих значений.

Ссылки:
«Теория вероятностей и математическая статистика. Основы, прикладные аспекты с примерами и задачами в среде Mathcad» — Ивановский Р.И., БХВ-Петербург, 2008 (стр. 71)

Вопрос 5.13
Оценка математического ожидания случайной величины — это:

1. среднее арифметическое значение случайной величины.
2. сумма произведений всех возможных значений случайной величины на вероятности этих значений.
3. наиболее вероятное значение случайной величины (значение, в котором плотность вероятности максимальна).
4. такое значение случайной величины, при котором равновероятно, окажется ли случайная величина больше или меньше этого значения.
5. верны все ответы.

Вопрос 5.14
Мода случайной величины это:

1. среднее арифметическое наблюденных значений случайной величины.
2. сумма произведений всех возможных значений случайной величины на вероятности этих значений.
3. наиболее вероятное значение случайной величины (значение, в котором плотность вероятности максимальна).
4. такое значение случайной величины, при котором равновероятно, окажется ли случайная величина больше или меньше этого значения.
5. верны все ответы.

Модой дискретной случайно величины называется наиболее вероятное значение случайной величины. Мода непрерывной случайно величины равна тому ее значению (или нескольким ее значениям) , которое соответствует максимуму (нескольким максимумам) плотности вероятности.

Ссылки:
«Теория вероятностей и математическая статистика. Основы, прикладные аспекты с примерами и задачами в среде Mathcad» — Ивановский Р.И., БХВ-Петербург, 2008 (стр. 75)

Вопрос 5.15
Замер производительности конфигуратором показывает:

1. работу кода (клиентскую и серверную) конфигурации
2. работу кода (клиентскую и серверную) конфигурации и платформенные вызовы
3. только работу клиентской части кода

Время, которое работал код платформы на языке 1С, который относится к данной ключевой операции, можно увидеть, нажав Ctlr + A в замере конфигуратором.
Время работы платформенных вызовов = время выполнения операции (по секундомеру)время выполнения кода платформы на языке 1С.

Источники:
«Настольная книга 1С:Эксперта по технологическим вопросам» (ред.2), стр.23
ИТС: Оценка производительности и оптимизация многопользовательской системы. Общий подход.

Вопрос 5.16
Медиана случайной величины это:

1. среднее арифметическое наблюденных значений случайной величины.
2. сумма произведений всех возможных значений случайной величины на вероятности этих значений.
3. наиболее вероятное значение случайной величины (значение, в котором плотность вероятности максимальна).
4. такое значение случайной величины, при котором равновероятно, окажется ли случайная величина больше или меньше этого значения.
5. верны все ответы.

Вопрос 5.17
Наличие нескольких пиков на гистограмме распределения времени выполнения ключевой операции

1. указывает на некорректно встроенные счетчики замеров производительности
2. совершенно нормально
3. указывает на то, что с одним счетчиком выполняется несколько типов операций, длительность которых существенно различается
4. должно пропасть с увеличением мощности выборки
5. Верные ответы 1 и 3
6. Верные ответы 2 и 4

Вопрос 5.18
В чем заключается практическое преимущество использования медианы вместо среднего арифметического для оценки математического ожидания выборки:

1. Оба показателя всегда дают практически идентичный результат, однако медиану сложнее вычислить. Поэтому никаких преимуществ нет.
2. Медиана дает более точную оценку при нормальном распределении выборки, однако она очень чувствительна к случайным «выбросам» замеров с большим абсолютным значением. Поэтому на практике ее не используют.
3. Медиана более устойчива к случайным «выбросам» замеров с большим абсолютным значением.
4. Медиана легко вычисляется при использовании СКД с помощью функции «ВычислитьМедиануВыборки()», однако дает очень грубую, приближенную оценку.
5. Медиана не может быть использована для этой цели, т.к. оценивает не математическое ожидание, а степень отклонения от него.
6. Верны варианты 3 и 4

Вопрос 5.19
В чем измеряется стандартное отклонение?

1. В тех же единицах, что и случайная величина.
2. В единицах квадрата случайной величины.
3. В единицах, обратных единицам случайной величины.
4. Оно не имеет размерности.

Среднеквадратическое отклонение измеряется в единицах измерения самой случайной величины.

Ссылки:
Wikipedia: Среднеквадратическое отклонение

Вопрос 5.20
На что надо смотреть в результатах замера на отладчике при анализе проблем производительности?

1. Сколько раз выполнялись строки кода, входящие в топ по времени выполнения.
2. Есть ли строки кода, выполнение которых заняло существенную часть от общего времени.
3. Каково соотношение клиентской и серверной части кода.
4. На глубину стека вызова.
5. Верны ответы 1 и 2.
6. Верны ответы 1 и 3.

Первое, на что надо смотреть, сколько раз выполнялись строки кода, входящие в топ  по времени выполнения. Если эти строки содержат запросы к базе через объектную  модель или на языке запросов и эти строки выполнялись много раз, то эти участки кода надо иметь в виду как приоритетные для исправления: запрос в цикле – это способ программирования, который всегда дает проигрыш во времени выполнения кода.

Второе, на что надо смотреть, есть ли строки кода, выполнение которых заняло существенную часть от общего времени. Это позволяет оценить шансы в борьбе за повышение производительности. Если такие строки есть, то шансы можно оценивать как очень хорошие. Если же таких строк нет и, например, на первом месте находится строка, выполнение которой занимает 3–5 % от общего времени, то понятно, что уменьшение времени выполнения этой строки даже до нуля даст прирост в те же самые 3–5 %. Поскольку речь может идти о том, чтобы ускорить выполнение операций в разы, шансы на это будут совершенно призрачны.

Источники:
«Настольная книга 1С:Эксперта по технологическим вопросам» (ред.2), стр.23

Вопрос 5.21
Куда именно помещаются данные при выполнении ПоместитьВоВременноеХранилище?

1. Во временную базу данных tempdb при следующем обращении к базе
2. В базу данных, с которой происходит работа, при следующем обращении к базе
3. В хранилище сеансовых данных с другими параметрами сеанса
4. Данные помещаются в рабочий каталог данных пользователя

При вызове методов: ПоместитьВоВременноеХранилище, ПоместитьФайл, НачатьПомещениеФайла, значения указанные в параметрах, записываются в сеансовые данные.

Источники:
ИТС: Анализ причин роста сеансовых данных

Вопрос 5.22
Оптимизатор СУБД строит план запроса на основе

1. Только текста запроса
2. Текста запроса, имеющихся индексов, статистики
3. Текста запроса и имеющихся индексов, статистика не учитывается
4. Текста запроса, имеющихся индексов, статистики и возможных результатов вложенных подзапросов в запросе

В тексте запроса содержится информация, какие данные, из каких таблиц и по каким условиям требуется получить. Но каким образом выполнять запрос, «решает» сама СУБД. Для этого на основании текста запроса, имеющихся индексов таблиц и статистики оптимизатор СУБД строит план запроса – набор физических операторов, которые необходимо выполнить для получения запрошенных данных. Посмотреть, какой план запроса используется, можно через технологический журнал или средствами самой СУБД.

Источники:
ИТС: Оптимизация запросов

Вопрос 5.23
Следует ли использовать вложенные подзапросы?

1. Нет, но их возможно использовать только для повышения читаемости текста запроса
2. Да, т.к. в этом случае запросы будут работать более оптимально
3. Использовать можно, но следует избегать соединения с вложенными подзапросами
4. Не следует использовать вложенные подзапросы только в случае, если вложенные подзапросы возвращают много строк в результирующей выборке.

При написании запросов не следует использовать соединения с вложенными запросами. Следует соединять друг с другом только объекты метаданных или временные таблицы. Если запрос использует соединения с вложенными запросами, то его следует переписать с использованием временных таблиц (не важно с какой стороны соединения находится вложенный запрос).

Источники:
ИТС: Запросы, выполняющие соединение с вложенными запросами или виртуальными таблицами

Вопрос 5.24
О чем говорит timeout warning в скомпилированном плане запроса?

1. О возникновении timeout на СУБД при попытке установки блокировки
2. О превышении лимита времени, затраченного СУБД на выполнение запроса по скомпилированному плану
3. О том, что оптимизатору не хватило времени на поиск наилучшего плана запроса
4. О возможном длительном исполнении запроса или возможного timeout при его выполнении ввиду высокой интенсивности работы с таблицами на СУБД, которые участвуют в запросе

Для того чтобы узнать, какой план выполнения запроса выбран оптимизатором СУБД, можно воспользоваться консолью запросов, технологическим журналом или средствами СУБД. Как правило, запрос – сложный и будет плохо выполняться, если в скомпилированном плане выполнения запроса есть timeout warning, который означает, что оптимизатору СУБД не хватило времени на поиск наилучшего плана запроса.

Источник:
ИТС: Общие требования по разработке оптимальных запросов

Вопрос 5.25
Каким образом выяснить, что используется эффективный план запроса?

1. Выполнить запрос несколько раз и замерить время выполнения запроса
2. Посмотреть на план запроса
3. Достаточно проанализировать текст запроса на наличие типовых неоптимальностей
4. Выполнить запрос в одной транзакции, встать в конце транзакции под отладкой, затем выполнить этот же запрос в другой транзакции. Если избыточного ожидания не возникает, то план оптимальный

Вопрос 5.26
Для того, чтобы убедиться, что индекс может быть задействован в конкретной операции, необходимо

1. проверить, что поля, используемые в операции, находятся в составе полей индекса с начала и без пропусков
2. убедиться средствами СУБД, что индекс существует
3. проверить, что поля в операции находятся точно в том же порядке, что и в индексе, при этом наличие пропусков не существенно
4. убедиться, что имеется статистика по конкретному индексу

Вопрос 5.27
Следует ли использовать низкоселективные поля в индексе?

1. Да, следует, т.к. низкоселективное поле позволит быстро выбрать нужные записи из небольшого множества значений
2. Их следует использовать ближе к началу индекса, т.к. они позволяют на ранних этапах «откинуть» неподходящие варианты
3. Их следует использовать ближе к концу индекса, т.к. не позволяют эффективно отбирать по этим полям
4. Не следует создавать индексы по низкоселективным полям

Вопрос 5.28
Решается задача оптимизации динамического списка. Ожидается работа на стабильных и высокоскоростных каналах связи. Возможен значительный объем выборки данных. Имеются соединения с виртуальными таблицами. Выберите правильное решение:

1. Следует отключить динамическое считывание данных, т.к. это минимизирует число клиент-серверных вызовов
2. Осуществлять вывод данных не в динамический список, а в таблицу или дерево значений, т.к. появляется возможность использования временных таблиц вместо виртуальных.
3. Проставить индексы для всех полей, выводимых в динамический список.
4. Упростить запрос, изменив архитектуру хранения данных

Комментарии

Нет комментарией к “«1С:Профессионал» по технологическим вопросам (Раздел 5)”

Оставьте комментарий

Top