Курс по Оптимизации 1С — Занятие №8
В рамках этого занятия необходимо изучить следующие материалы.
Модуль 3. Причины медленной работы
- Глава 8. Анализ причин медленной работы и оптимизация системы
- Анализ неоптимальных запросов с помощью сервисов, 1С:ЦУП, SQL Profiler, технологического журнала
- Пример анализа плана запроса
- Задача на поиск неоптимального запроса
Практические задания
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (211):
Комментарии закрыты

Добрый день! Я столкнулся со следующей ситуацией: выбираю данные из виртуальной таблицы РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто, накладывая различные фильтры в её параметры и каждый раз смотрю как меняется план. При этом я свой запрос вижу в следующем виде:
exec sp_executesql N’SELECT TOP 500
T1.ValueDt1_TYPE,
T1.ValueDt1_RTRef,
T1.ValueDt1_RRRef,
T1.ValueDt2_TYPE,
T1.ValueDt2_RTRef,
T1.ValueDt2_RRRef,
T3._Fld2416RRef,
……………
FROM #tt67 T2 WITH(NOLOCK)) T1
LEFT OUTER JOIN _Reference128 T3 WITH(NOLOCK)
ON T1.ValueCt1_TYPE = 0x08 AND T1.ValueCt1_RTRef = @P1 AND T1.ValueCt1_RRRef = T3._IDRRef’,N’@P1 varbinary(4)’,0x00000080
В этом запросе идет обращение к временной таблице #tt67, но я не совсем понимаю как в трассировке найти место в котором формируется эта вт. Делаю поиск(Ctrl+F) по #tt67 и мне находится 8 мест в трассировке где присутствует запрос INSERT INTO #tt67. Как понять в каком именно месте формируется эта временная таблица?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый вечер. С помощью замера производительности были выявлены критичные запросы. Запросы исправлены и в топ не попадают. Теперь в топ выходят такие конструкции как «Таб.НайтиСтроки(…)», «Если НЕ (Эл.Значение[Элемент.Ключ] = Строка[Элемент.Ключ+Префикс]) Тогда», «Для Каждого Из Цикл». Время работы остается не приемлемым. В курсе будут рассматриваться методы решения таких проблем? Если нет, подскажите, пожалуйста, в каком направлении работать?
…
(текст комментария доступен только участникам Мастер-группы)
Все рекомендованные в курсе счетчики в норме. Тест проверки дисков на скорость запущу, спасибо. Я думаю, что дело в количестве выполнений этих операторов.
Оператор Кол. Время (сек.)
Таб.НайтиСтроки(…) | 35 262 | 3 331
Если НЕ (Эл.Значение[Элемент.Ключ] =
Строка[Элемент.Ключ+Префикс]) Тогда | 25 692 702 | 236
Для Каждого Из Цикл | 25 693 408 | 187
Как вы считаете может быть дело в этом? И если да, то правильно я понимаю, что ускорить больше не получится? (оставаясь на прежнем оборудовании)
…
(текст комментария доступен только участникам Мастер-группы)
Прикладываю замер
…
(текст комментария доступен только участникам Мастер-группы)
замер в архиве
…
(текст комментария доступен только участникам Мастер-группы)
https://dl.dropboxusercontent.com/u/49008954/%D0%97%D0%B0%D0%BC%D0%B5%D1%80%20%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8.zip
…
(текст комментария доступен только участникам Мастер-группы)
Да это УПП. Документ «Корректировка стоимости списанных товаров». Документ без оптимизации выполняется 6-7 часов. После оптимизации 3-4 часа, но это все равно много. Для корректировки подается около 4500 строк номенклатуры, складов больше сотни. Программа строит деревья, рассчитывает пути и в итоге получаются такие огромные показатели (35 262 раз). Попробую воспользоваться вашими советами, спасибо.
Распределение затрат по вашей рекомендации данной ранее, я просмотрела, прочитала все что мне попалось на эту тему. Не обнаружила у нас ничего «плохого». Подскажите что в вашем понимании «правильная настройка»? (где читать). Узнавала, что у вас есть курс по УПП, в котором есть 17 глава про производственный учет. В этом курсе рассказывается про «правильную настройку»? К сожалению купить отдельно эту главу мне написали, что нельзя, а жаль.
…
(текст комментария доступен только участникам Мастер-группы)
Нужно добавить индекс в таблицу значений с ключом как у структуры, передаваемой в НайтиСтроки.
Таб.Индексы.Добавить(«ЗдесьКлючИзСтруктуры»)
Спасибо, попробую.
1. Если структура поиска по 1 полю, то выгрузить значения таблицы в соответствие, где ключ = искомое значение, а значение — строка таблицы. Поиск по соответствию идет в разы быстрее поиска по таблице. Если поиск по нескольким колонкам, тогда проиндексировать колонки в таблице.
2. Попробуйте избавиться от цикла, если никак, то функцию цикла разместите в 1 строку. Это нечитабельно при больших кусках кода, но оптимально.
Например Для Каждого Элемент ИЗ Массив Цикл ….. КонецЦикла;//Все в 1 строку
Об этом примере можно почитать на инфостарте, название статьи не помню.
3. Возможно таблица, в которой идет поиск слишком большая и можно ее сократить или для разных входных данных искать в разных таблицах.
4. Если операции с большим весом находятся в цикле, попробовать их достать оттуда и закэшировать (поместить во временные таблицы).
Смотрю графическое представление планов запросов. Для простых запросов все отображается как в видеокурсе (несколько связанных операторов). А для большого сложного запроса profiler показал один оператор (см. картинку). Почему так? Как посмотреть полный план запроса?
…
(текст комментария доступен только участникам Мастер-группы)
При создании трассировки есть флаг «Сохранить в файл». Его нужно установить? Я его установил, указал файл trc. При открытии этого файла вижу ту же картину — графического плана нет, событие «Trace Skipped Records» есть. Как мне посмотреть графический план ? Спасибо.
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте!
В начале апреля я обращалась к Вам с вопросом через Вашу службу поддержки, но на тот момент
я не принимала участие в мастер группе. Вы ответите мне на мой вопрос в текущем потоке?
Вопрос во вложении.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
1. Увидел, что в 14 задании в плане запроса временная таблица «ТаблицаНоменклатуры» называется #tt15 а в файле с запросом sql #tt2398. Это опечатка?
2. Я так понимаю, что в сервисе Гилева «Анализ длительных запросов» — нет возможности посмотреть в плане запроса такие данные, как Список столбцов(Defined Values в профайлере). Или как-то можно? Просто хотелось бы понимать лучше логику оптимизатора при построении запроса, а без выходных данных полной картины нет.
…
(текст комментария доступен только участникам Мастер-группы)
Практическое задание 14.
В описании задачи сказано, о времени выполнения запроса порядка 300 секунд. Какое получилось время выполнения запроса после проведенной оптимизации?
…
(текст комментария доступен только участникам Мастер-группы)
Оптимизация:
1. В одном видео используется класс событий SQL:StmtCompleted, в другом SQL:BatchCompleted. С чем это связано и какие должны быть выбраны события?
2. Есть ли влияние размера таблицы на стоимость запроса?
3. В задании 14 в запросе объединены два запроса. Если я правильно все рассчитал, то стоимость у них примерно одинакова, но размер таблиц отличается на 2 порядка. С чем это связано?
4. В некоторых планах SQL встречается «?». Как его надо интерпретировать?
…
(текст комментария доступен только участникам Мастер-группы)
Извините, ошибся. Речь про запрос SQL. В том же 14 задании есть текст запроса.
…
(текст комментария доступен только участникам Мастер-группы)
2 Влияние есть, если выбран план со сканом таблицы в 5 строк это одна стоимость, если скан 50 млн. строк это другая стоимость.
Я все про 14 задание. Одна таблица на 160 736 107 другая 1 156 041 — разница в количестве строк в 2 порядка. А стоимость почти одинаковая: 0.0362 и 0.0308 попугая соответственно.
Были ли проблемы с производительностью оборудования?
…
(текст комментария доступен только участникам Мастер-группы)
1. Выбирать нужно событие SQL:BatchCompleted
Про это надо бы вынести в «лучшие вопросы». Пролистал тему и вижу что не я один это заметил.
>>Честно говоря уже не помню, но то что меньше минуты это точно.
Как выглядит конечный вариант?
…
(текст комментария доступен только участникам Мастер-группы)
Жаль. Интересно посмотреть на оптимизированный план выполнения запроса.
Не могу понять, откуда ЦУП берет данные для оперативных показателей. Для аналитических все понятно, подключается тех. журнал, потом происходит его разбор, а вот для оперативных — нет.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день! Вопрос не совсем по теме, но касается её. В одном из заданий встречается соединение с табличной частью документа, выбранной по ссылке из таблиц БД. Я привык делать это созданием временной таблицы выборкой из табличной части ДокументаОбъекта. Задумался: а как быстрее? Куда вообще обращается платформа за данными из ТЧ в этом случае? Читает из базы или ТЧ объекта существует в виде маленькой временной таблицы?
…
(текст комментария доступен только участникам Мастер-группы)
В видео уроке «79 Анализ неоптимальных запросов» при включении анализа запросов в ЦУП вы несколько раз говорить, что будет серьезная нагрузка на систему при включении анализа, поэтому его нужно выполнять короткое время и прочее. А вот при включенном анализе запросов сервисом Гилева таких слов не звучит. В чем принципиальное различие механизмов если один очень грузит систему, а другой нет? Оба же ТЖ анализируют.
…
(текст комментария доступен только участникам Мастер-группы)
Вопрос правильно ли считать ошибкой что поиск по индексу выполняется несколько раз в большой таблице если оптимизатор знает, что поиск выполнится несколько раз. То есть у нас есть оператор Nested Loops, с одной стороны которого из таблицы возвращается штук 70 строк, а с другой таблица которую он будет опрашивать на поиск по индексу 70 раз, но в ней 100 миллионов строк. Притом, оптимизатор не ошибся и знает что из первой таблицы вернется 70 строк (Количество ожидаемых=количеству возвращены) и количество выполнений Index Seek во второй таблице 70 раз (Количество ожидаемых=Количеству выполненых).То есть построитель не ошибся, а намеренно выбрал этот план хотя он и кажется не оптимальным.
…
(текст комментария доступен только участникам Мастер-группы)
При рассмотрении оператора Nested Loops в качестве примера используется запрос:
«ВЫБРАТЬ ПЕРВЫЕ 5
РС_Тест2.Число1,
РС_Тест21.Число1 КАК Число11
ИЗ
РегистрСведений.РС_Тест2 КАК РС_Тест2
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РС_Тест2 КАК РС_Тест21
ПО
РС_Тест2.Число1 = РС_Тест21.Число1
И РС_Тест2.Число2 = РС_Тест21.Число2
И РС_Тест2.Число3 = РС_Тест21.Число3»
Анализируем план запрос, и говорится, что так как используются маленькие наборы данных (по 5 строк выбирается), то оптимален оператор Nested Loops.
При рассмотрении неоптимального использования Nested Loops используется запрос:
«ВЫБРАТЬ ПЕРВЫЕ 5
РС_Тест2.Число1,
РС_Тест21.Число1 КАК Число11
ИЗ
РегистрСведений.РС_Тест2 КАК РС_Тест2
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РС_Тест2 КАК РС_Тест21
ПО
РС_Тест2.Число2 = РС_Тест21.Число1
И РС_Тест2.Число3 = РС_Тест21.Число3».
И при анализе плана запросов видим, что используются таблицы с большим количеством строк (Фактическое количество строк = 2 млн.).
Вопрос: почему в первом случае получаем наборы по 5 строк, а во втором — 2 млн. ?
…
(текст комментария доступен только участникам Мастер-группы)
в http://infostart.ru/public/308762/ есть ряд интересных скриптов, в т.ч
Планы запросов
Самые тяжелые запросы:
SELECT TOP 10 SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.TEXT)
ELSE qs.statement_end_offset
END — qs.statement_start_offset)/2)+1),
qp.query_plan,
qs.execution_count,
qs.total_logical_reads, qs.last_logical_reads,
qs.total_logical_writes, qs.last_logical_writes,
qs.total_worker_time,
qs.last_worker_time,
qs.total_elapsed_time/1000000 total_elapsed_time_in_S,
qs.last_elapsed_time/1000000 last_elapsed_time_in_S,
qs.last_execution_time
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY qs.total_logical_reads DESC — logical reads
— ORDER BY qs.total_logical_writes DESC — logical writes
— ORDER BY qs.total_worker_time DESC — CPU time
результат которого дает нам и тексты и ПЛАНЫ этих запросов!
я то думал, что план запроса мы можем посмотреть только он-лайн в профайлере в момент выполнения запроса. а оказывается «у нас все ходы записаны» — можно отбирать тяжелые запросы с их планами, анализировать. остается только сопоставить запрос субд с местом в коде 1с.
или я опять заблуждаюсь?
…
(текст комментария доступен только участникам Мастер-группы)
Андрей, как Вы оцените «Инструменты разработчика» от tormozit ( http://devtool1c.ucoz.ru/ ) для анализа производительности 1с?
…
(текст комментария доступен только участникам Мастер-группы)
настроил профайлер на показ длительных запросов — вижу тексты запросов. ок.
хочу еще видеть их планы. включаю показ планов — показывает планы ВСЕХ запросов. можно как-то настроить, чтобы был показ планов только длительных запросов?
…
(текст комментария доступен только участникам Мастер-группы)
Что такое логическое чтение?
Как все же добиться контекстного выбора зарезервированных слов при написании запроса, как, например в 1с — ctrl+Пробел? Просто приходится полностью весь запрос писать руками…
…
(текст комментария доступен только участникам Мастер-группы)
Вопрос про запросы в SQL: как там вызвать контекстную подсказку и есть там конструктор запросов?
…
(текст комментария доступен только участникам Мастер-группы)
Количество возвращаемых строк за количество сканирований. Если можно, пояснить этот момент, почему именно за все количество сканирований, а не каждый разьвозвращается такое количество строк?
…
(текст комментария доступен только участникам Мастер-группы)
Где сохраняются шаблоны трассировок? Чтобы при необходимости можно было их удалить?
…
(текст комментария доступен только участникам Мастер-группы)
Можно ли создать отдельную базу для сохранения таблиц трассировок или это должна быть обязательно системная таблица, типа Master ?
Прошу прощения, ответ был в курсе))
…
(текст комментария доступен только участникам Мастер-группы)
Чем отличается событие SQL:StmtCompleted от SQL:BatchCompleted ?
…
(текст комментария доступен только участникам Мастер-группы)
Очень плохо владею английским, боюсь, что в результате автоперевода что-нибудь пойму не так. Можно вкратце рассказать, чем они все же отличаются?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо
Как быть, если запрос вообще не может выполниться до конца, просто зависает и выкидывает из базы? Как его проанализировать?
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте, Андрей.
Ответьте, пожалуйста, на следующие вопросы:
1) Допустим в одном запросе соединяются сразу 3 таблицы. Имеет ли значение порядок соединения таблиц в 1С? Если имеет значение, то каким образом выбирать порядок?
Т.е. скорость выполнения запроса при соединении сначала таблиц «1-2», а потом «1-3» будет такой же, что и при соединении таблиц «1-3», а потом «1-2»?
2) Допустим 2 таблицы соединяются по полям А, Б и В.Имеет ли значение порядок соединения по полям таблиц 1 и 2? Если имеет значение, то каким образом выбирать порядок?
Т.е. скорость выполнения запроса при соединении таблиц сначала по полю А, потом Б, потом В будет такой же, что и при соединении таблиц сначала по полю В, потом Б, потом А?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день.
Правильно ли я понимаю что если у нас кластерный индекс то в процессе поиска по индексу можно накладывать условия не только на поля самого индекса но и на поля «основной» таблицы?
В плане запроса столкнулся с такой операцией
Clustered Index Seek(
OBJECT:([UT_Test].[dbo].[_AccumRgT10022].[_Accum10022_ByDims_TRRR] AS [T3]),
SEEK:([T3].[_Fld11130]=[@P3] AND [T3].[_Period]=[@P4]),
WHERE:(([UT_Test].[dbo].[_AccumRgT10022].[_Fld10019] as [T3].[_Fld10019] = CONVERT_IMPLICIT(numeric(21,3),[@P5],0)
OR [UT_Test].[dbo].[_AccumRgT10022].[_Fld18625] as [T3].[_Fld18625] = CONVERT_IMPLICIT(numeric(21,3),[@P6],0)
OR [UT_Test].[dbo].[_AccumRgT10022].[_Fld18626] as [T3].[_Fld18626] = CONVERT_IMPLICIT(numeric(21,3),[@P7],0))
AND ([UT_Test].[dbo].[_AccumRgT10022].[_Fld10019] as [T3].[_Fld10019] = CONVERT_IMPLICIT(numeric(21,3),[@P8],0)
OR [UT_Test].[dbo].[_AccumRgT10022].[_Fld18625] as [T3].[_Fld18625] = CONVERT_IMPLICIT(numeric(21,3),[@P9],0)
OR [UT_Test].[dbo].[_AccumRgT10022].[_Fld18626] as [T3].[_Fld18626] = CONVERT_IMPLICIT(numeric(21,3),[@P10],0)))
В самом же индексе есть только поля:
_Fld11130
_Period
_Fld10015RRef
_Fld10016RRef
_Fld10017RRef
т.е. в плане есть условия по полям Fld18626 и Fld10019 которые есть в основной таблице но нет в таблице индекса.
п.с. Что делай CONVERT_IMPLICIT? В интернете при беглом поиске не нашел.
…
(текст комментария доступен только участникам Мастер-группы)
>Условия наложить конечно можно, но в этом случае будет сканирование индекса, а не поиск.
Почему тогда в плане идет Clustered Index Seek, а не Clustered Index Scan?
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте!
Подскажите, почему в Профайлере нет фильтра Database Name?
Пробую на Microsoft SQL Server 2008 R2.
…
(текст комментария доступен только участникам Мастер-группы)
Появился, когда поставил «Показывать все колонки».
Спасибо за подсказку.
Добрый день!
Возможно ли оптимизировать запись набора записей в регистр? При анализе ЦУП самый большой вес имеет именно запись НабораЗаписей Регистра накопления (План запроса во вложении)
…
(текст комментария доступен только участникам Мастер-группы)
Что означает в плане запроса в задании 9-2 обращение к tempdb в некоторых строках.
Table Scan(OBJECT:([tempdb].[dbo].[#tt43]
…
(текст комментария доступен только участникам Мастер-группы)
сгруппировать можно и конечную таблицу, при каждом левом соединении можно добавить в условие отбор номенклатуру
и для чего заглядываем в 2 регистра сведений если ничего из них не получаем?
…
(текст комментария доступен только участникам Мастер-группы)
при анализе плана запроса 9-2 для оператора Nested Loops в строках 22,28,49 не могу определить, откуда берутся данные для ведомой таблицы?
…
(текст комментария доступен только участникам Мастер-группы)
День добрый, Андрей.
Пытаюсь проанализировать один отчет.
Собрал информацию с помощью SQL Profiler.
Нашел долгий запрос.
Графический план запроса получился не маленький (см скрин.).
Пытаюсь найти текстовый план запроса….
Поднимаюсь выше по списку до первого «Showplan ALL», а в нем план уже другого запроса(см скрин.).
Пробовал смотреть следующие строки с «Showplan ALL» выше по списку..пролистал несколько страниц и ….не нашел ничего похожего.
Соответственно вопрос. Можете подсказать, как мне найти текстовый план под искомый запрос?
…
(текст комментария доступен только участникам Мастер-группы)
А в «Showplan ALL» разве нет текстового плана?
Добавил событие Showplan Text.
Попытался изобразить вопрос(см скрин.)
Т.е. суть вопроса: Для одно события «SQL: BatchCompleted» есть планы Showplan ALL и Showplan Text, а для другого ..не нахожу.
Или я не так смотрю?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо, отыскал :)
Андрей, походу возникло несколько вопросов…
Если они уже задавались — прошу прощения.
ВОПРОС 1: Имеет ли значение порядок полей в параметрах виртуальной таблицы, да и в обычном условии? Если в регистре Первым идет измерение Склад, а вторым номенклатура, то при установке условия надо соблюдать очередность? Или система автоматически распознает индекс?
ВОПРОС 2: Правильно я понял, что при использовании виртуальных таблиц остатков или срезов, оптимальнее наложить фильтры в параметрах виртуальной таблицы, выгрузить получившийся результат во временную, и далее использовать временную таблицу. Т.е. по по возможности избегать любых связей с виртуальной таблицей?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Подскажите, какой номер ответах выбирать: номер строки из Excel или №п/п из самого плана? Даже в решениях по-разному… и получается что всё время мимо на единицу :)
…
(текст комментария доступен только участникам Мастер-группы)
9-2. Table scan. Взял №п/п. Просмотрев решение, сделал вывод, что надо брать строку Excel.
14. Исправился, взял строку из Excel, а в решении №п/п.
Из-за такого недоразумения даю неточные ответы, отличающиеся на 1.
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте, Андрей.
На практике некоторое время назад столкнулся со странным поведением 1С на MS SQL. Был у меня отчет, который пользователям было необходимо формировать за год, выводился весь проданный товар с группировками по дням, и формировался он часа 2-3. В какой-то момент мы перешли на платформу 8.2.19, до этого была 8.2.17. И как только произошел переход на 8.2.19, этот отчет перестал формироваться за весь год, стал расти TempDB занимал все место это около 150ГБ и 1с вылетала. В итоге было точно установлено опытны путем, что дело в платформе. Когда вернулись к 8.2.17 отчет снова стал формироваться. Как можно объяснить произошедшее, ведь sql оставался неизменным? Выходит, что на принятие решения, оптимизатором о выборе плана запроса, оказывает влияние версия платформы 1С?
…
(текст комментария доступен только участникам Мастер-группы)
Как можно АВТОМАТИЧЕСКИ достать из sql profiler текстовый план запроса? Сохраняю в SQL таблицу, текстовый план сохраняется в BinaryData. Как вытащить?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Не могу разобраться, в каких случаях в плане запроса появляется оператор Filter(WHERE:(STARTUP EXPR(…))). В ходе экспериментов с запросами, получить этот оператор так и не удалось. Условия «ГДЕ» обычно преобразуются в «seek … where» или «where», условия «ИМЕЮЩИЕ» — тоже. Что же означает Filter? Может ли его появление замедлять запрос, или это наоборот оптимизация?
Вопрос возник в ходе изучения плана из практического задания 9-2.
…
(текст комментария доступен только участникам Мастер-группы)
День добрый
скопировано с http://www.gilev.ru/privacystatement/
query:eq property=»Name» value=»DBMSSQL»/— собирает события исполнения операторов SQL СУБД Microsoft SQL Server и также ограничивает порогом снизу в 10 секунд фильтром query:ge property=»Duration» value=»10000″/
Подскажите это опечатка ? имелось в виду секунда ?
По крайней мере в курсе сказано что время в ТЖ задается как 10000 = 1 секунда
…
(текст комментария доступен только участникам Мастер-группы)
Когда принимается отчет по практическому заданию показываются все комментарии к нему. Это только принятые комментарии или все? Т.е. можно ли сказать, что это тоже правильные решения задания?
Здравствуйте, Марат!
После одобрения Вашего решения Вам становится доступны отчеты других участников проекта, а также эталонное решение преподавателя.
Ваше решение не обязательно должно быть полностью верным. Поэтому после одобрения Вашего ответа Вы сможете сравнить Ваше решение с решением преподавателя.
И если возникают вопросы по решению задать их на страницы с занятием.
Андрей, добрый день!
Подскажите, пожалуйста. В настольной книге эксперта встретил фразу относительно ЦУП на стр. 147:
«После завершения теста (или интересной активности в рабочей базе) подождать 1 минуту, выключить счетчики.»
Зачем перед выключением счетчиков дополнительно ждать 1 минуту?
…
(текст комментария доступен только участникам Мастер-группы)
Что означает в ROWS в плане запросов кавычки или точки: «0 ..1043 ?
…
(текст комментария доступен только участникам Мастер-группы)
Это план из практического задания 9-2. 1,5 строки запроса.
Замечание. В решении Вы указываете номер строки Excel, а есть еще номер строки плана, колонка «№ п/п», иногда возникает небольшая путаница.
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте!
1) По мотивам разбора в видео плана запроса (где было соединение табличной части док-та с регистром остатков). Если бы предварительно остатки регистра поместили во временную таблицу, а потом уже соединяли с таб. частью — это было бы более оптимально? 2) И второй вопрос — попытался что-то такое соорудить, плюс для временной таблицы установил индексируемые поля в запросе по тем полям, по которым дальше идет соединение. В итоге в плане запросов применяется оператор Table Scan, хотя я думал, что будет организован какой-то поиск по созданному индексу.
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте, Андрей!
При запуске трассировки в событии Showplan XML нет фактического количества строк, а в событии Showplan XML Statistics Profile — есть (MS Sql 2005). В событии Showplan XML предполагаемый план запроса?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день, Андрей.
Организационный вопрос. Тексты запросов в заданиях не открываются в конфигурации в конструкторе запросов. Или не ту конфигурацию скачал, или надо уметь читать тексты запросов без конфигуратора?
…
(текст комментария доступен только участникам Мастер-группы)
Андрей и еще вопрос по сервису «Анализ долгих запросов». Встречаются запросы типа ‘UPDATE T2 SET _Fld8793 = T2._Fld8793 + T1._Fld8793… или INSERT INTO _AccumRg8737… Это значит, что идет запись в РН или обновление таблиц? Если эти запросы выполняются долго, то нам тоже необходимо расследовать почему так, почему запись в регистр происходит долго, верно?
…
(текст комментария доступен только участникам Мастер-группы)
Большое спасибо за разъяснение!
Андрей, здравствуйте! У меня два вопроса:
1. В облачном сервисе «Анализ долгих запросов», в деталях ранжирования не всегда есть план запроса, почему так происходит.
2. Для MSSQL рекомендуют использовать смещение дат 2000. Читал, что у MSSQL есть определенные проблемы с датами, коих нет в других СУБД. Можете пояснить, зачем нужно использовать смещение дат?
Спасибо!
…
(текст комментария доступен только участникам Мастер-группы)
1. имеется система 1000 пользователей. Как без помощи цуп понять сколько было таймаутов и деделоков в системе за прошедшие сутки на уровне субд и на уровне 1С
2. имеется система на 1000 пользователей — пользователи периодически жалуются что их выкидывает из системы. как понять — это массово или нет и сколько было таких случаев за сутки.
…
(текст комментария доступен только участникам Мастер-группы)
Андрей, подскажите, пожалуйста, с чем может быть связано значительное время выполнения запросов из типового отчета анализ счета УПП (до 400 сек), в плане запроса я проблем не увидел может Вы увидите
…
(текст комментария доступен только участникам Мастер-группы)
Да, стоимость этой строки высока, а что можно сделать, чтобы исправить ситуацию ведь это регистр бухгалтерии (в курсе в основном разобраны регистры накопления)
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте.
В одном из занятий слышал тезис, что показатель ЦУП «Суммарное время выполнения запросов» более 40, говорит о неработоспособности базы (прошу прощения за точность, но смысл понятен).
Столкнулся с проблемой.
Данный показатель на протяжении долгого времени на уровне 7 000 — 8000 сек.
Причем в системе не наблюдается блокировок, взаимоблокировок, таймаутов.
Скажите пожалуйста, данная картина (скрин приложен), как я понимаю, говорит лишь об общей высокой продолжительности запросов в системе. Но никак не о проблемах производительнсти и параллельной работы пользователей.
Я ошибаюсь ?
…
(текст комментария доступен только участникам Мастер-группы)
если у вас сервер одновременно выполняет 40 запросов длительностью 1 секунда у каждого запроса — будет ли в этот момент суммарная длительность 40 секунд? можно ли такую ситуацию считать «неработоспособной»?
7000 секунд — откройте консоль администрирования сервера 1С, отсортируйте список «сеансов» по колонке «захвачено СУБД», скорее всего сверху будет ваш виновник с длительным запросом для кого-нибудь отчета или фоновое задание делающее что-то вроде обмена, закачки или перепровдения
В архиве к 9-му заданию присутствует лишний, видимо случайно попавший, архив к 7-му заданию ;-)
…
(текст комментария доступен только участникам Мастер-группы)
Андрей, в текстах запросов отсутствует сортировка, для чего оптимизатор сортирует в нашем случае таблицы ? это подготовительная операция для «ОБЪЕДИНИТЬ ВСЕ» ?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день.
Вопрос по выполнению 14 практического здания.
План запроса был построен для текста запроса из задания или текст был переделан? Не понимаю, почему в плане запроса сначала идет соединение таблицы регистра с временной таблицей. выглядит так, что временная таблица была перенесена в параметры виртуальной таблицы. Должно же было быть сначала соединение таблицы регистра самой с собой, затем внутреннее соединение с временной таблицей, разве нет?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день.
Проанализировав текст запроса SQL из задания 14 возник вопрос:
Предопределенные или пустые значения передаются в запрос как параметры. Правильно ли я понимаю что получения их значений формируются отдельные запросы?
Если предопределенное значение используется в запросе несколько раз запрос по получению его значения тоже будет выполнен несколько раз? Как оптимальнее строить такие запросы? получать предопределенные или пустые значения в объектной модели и передавать их параметрами в запрос?
Параметр содержащий массив значений транслируется в выражение (?,?,?,?). правильно ли я понимаю, что в данном случае количество знаков вопроса соответствует количеству элементов в переданном массиве?
…
(текст комментария доступен только участникам Мастер-группы)
В задании 12 есть строка: «Проанализируйте код из вложенного файла и укажите на неоптимальные решения»
Отсутствует вложенный файл
Добрый день!
Благодарим за внимательность. Архив добавлен.