#0
by RomaH
Заметил недавно с утра пришел - дайка, думаю, пооптимизирую нажал на кнопку - вот оно - запрос выполняется 30 сек, 66% времени повторяем замер - 3 сек, 30% времени меняю параметры запроса - 3 сек перезапускаю 1С - 3 сек вроде и оптимизировать нечего становится ... объясните механизм - почему "первый" раз - долго, а потом в 10 раз быстрее
#4
by aka AMIGO
И не только на SQL.. И не только в 8-ке. Точно та же картина в 7-ке при запуске обработки.
#6
by RomaH
потратить 3 часа времени. что бы оператор выполнил этот запрос 200 раз в год на ... 1 сек быстрее?
#7
by бомболюк
(30-3) * 200 = 5400 кажется, то есть полтора человека часа в год - это все, что ты можешь сэкономить. Оно стоит 3х часов твоей работы? ;-)
#12
by stopa85
У меня был случай, я такой запрос в 3 сек при прогретом кеше до 0.3 сек при холодном кеше оптимизировал.... но запрос реально был кривой.
#13
by ИмяФамилия
добавить памяти в sql сервер, что бы данные не вытеснялись. ну и дать чутка больше 1С серверу.
#14
by rs_trade
запросы оптимизируют глядя на план запроса. даже если он стал 3 сек, там все равно видимо есть что подкрутить что бы чтений стало меньше.
#15
by Strogg
после первого раза выборка в кэше хранится. Поэтому на порядок(да, да) быстрее. Чтобы оптимизировать запрос, надо знать механизмы выборки. Есть целый курс по оптимизации запросов. ТАм описывается, почему получение данных через точку будет работать медленнее чем связывание данных, использование ВТшек, вместо вложенных запросов с последующим их уничтожением, короче, в рамках данной темы более лучше пройти курс.
#16
by Базис
А с утра роботом запустить несколько отчётов, чтобы весь день они крутились быстро - не прокатит?
#17
by RomaH
ну вот три таблички из 10 ВЫБРАТЬ РАЗЛИЧНЫЕ Мед_ИспользованиеДокументовВРеестрах.Документ КАК Регистратор ИЗ РегистрСведений.Мед_ИспользованиеДокументовВРеестрах КАК Мед_ИспользованиеДокументовВРеестрах И Мед_ИспользованиеДокументовВРеестрах.Документ ССЫЛКА Документ.Мед_СтатТалон ; ГДЕ Мед_ТалоныПриема.Период МЕЖДУ &ДатаНачала И &ДатаКонца И Мед_ТалоныПриема.СМООМС = &Организация И НЕ Мед_ТалоныПриема.Регистратор.НеВключатьВРеестры И втИсключаемыеТалоны.Регистратор ЕСТЬ NULL ; ГДЕ Мед_СтатистическиеТалоны.Период МЕЖДУ &ДатаНачала И &ДатаКонца И втИсключаемыеТалоны.Регистратор ЕСТЬ NULL ИНДЕКСИРОВАТЬ ПО Регистратор выполняется 1.4 сек 125000 400 4000 записей во временных таблицах
#19
by RomaH
дольше если не делать первую временную - а левым то для одного раза - быстрее (если быб было только одно соединение - во втором запросе
#20
by VS-1976
Сколько регистраторов? 2. В РегистрСведений.Мед_ТалоныПриема, а так же в РегистрСведений.Мед_СтатистическиеТалоны много повторов Регистратор? Если да, то в начале выбери во временную таблицу различные, а потом уже соединяй. 3. Не забудь при этом индекс по полю Регистратор прикрутить к правой таблице ( втИсключаемыеТалоны ).
#21
by МимохожийОднако
Это кэш. Делай замеры после 2 и 3 запроса. Увидишь, что время одинаковое. Когда сделаешь новый запрос, то опять 2 и 3. Только после этого можно делать выводы.
#23
by RomaH
ну так у заказчика претензия - пришел на работу - нажал кнопку и минуту жду результата проверяем - нифига не минуту - 0.5 сек так и объяснять - это кэш?
#25
by МимохожийОднако
Качество объяснения Заказчику особенности работы программы относится только к опыту и профессионализму консультанта. Если отчет один и тот же, то его можно сформировать заранее по регламенту и выдать из сохранённого места. Еще можно дать Заказчику новопассита для успокоения или включить котиков на экране
#26
by VS-1976
Выразить не поможет. ГДЕ Мед_ТалоныПриема.Период МЕЖДУ &ДатаНачала И &ДатаКонца И Мед_ТалоныПриема.Регистратор ССЫЛКА Документ.[ тот у которого есть НеВключатьВРеестры ] И Мед_ТалоныПриема.СМООМС = &Организация И втИсключаемыеТалоны.Регистратор ЕСТЬ NULL
#28
by RomaH
а вот и нифига первая таблица - 125000 записей потом всего 4000 ИМХО - надо сократить первую - т.е. выбрать сначала вторую и третью, потом уже первую, а потом левую исключающую связь сделать
#30
by VS-1976
Я тебе про индексы писал. И Мед_ИспользованиеДокументовВРеестрах.Документ ССЫЛКА Документ.Мед_СтатТалон ИНДЕКСИРОВАТЬ ПО Регистратор
#31
by VS-1976
К главной пристыковывается втИсключаемыеТалоны без индекса, то есть методом перебора. И чтобы меньше было соединений нужно различные по Регистратор-у для регистров делать в начале, а потом делать левое соединение с втИсключаемыеТалоны. На мой взгляд так будет правильно, но нужно смотреть планы запроса
#38
by VS-1976
Смотри в начале выбирается данные из РС, далее идёт соединение в ВТ. И поиск идёт в ВТ методом полного сканирования. Если будет индекс по соединяемому полю то 125000 записей не проблема
#39
by RomaH
условия из ГДЕ в соединение - хуже 1.1 против 1.7 в общем все фигня - разброс замеров 0.99 - 1.32 на одном и том же запросе сервер тестовый - я там один копейки ловить - смысла нет - спасибо
#40
by RomaH
И Мед_ИспользованиеДокументовВРеестрах.Документ ССЫЛКА Документ.Мед_СтатТалон ИНДЕКСИРОВАТЬ ПО Регистратор И (Мед_ТалоныПриема.Период МЕЖДУ &ДатаНачала И &ДатаКонца) И (Мед_ТалоныПриема.Регистратор ССЫЛКА Документ.Мед_СтатТалон) ГДЕ втИсключаемыеТалоны.Регистратор ЕСТЬ NULL ГДЕ Мед_СтатистическиеТалоны.Период МЕЖДУ &ДатаНачала И &ДатаКонца И втИсключаемыеТалоны.Регистратор ЕСТЬ NULL ИНДЕКСИРОВАТЬ ПО Регистратор
#44
by RomaH
хотя "оптимизация" только первых трех запросов (и выполнение только этих трех) дала результат а вот замена этих трех запросов в общем пакете (15 запросов) - сказалось отрицательно
#45
by VS-1976
По тому что скорее всего данные были закинуты в кэш этим 3-мя запросами. Нужно в комплексе смотреть что происходит.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- ТолькоПросмотр по условию. Одна ячейка, а не вся колонка. УФ
- Как запретить одновременное открытие отдельных внешних обработок?
- ЗУП 3.1 В расчёт зарплаты тянет уволенных сотрудников
- Получение остатка резерва - не работает
- УТ 11.3 параметры упаковки (глубина, ширина, объем и т.д.), где используются?
- Кто нибудь использует IRC?
- Книга "Методическое пособие по эксплуатации крупных информационных систем"
- v7: Как сформировать GS1 DataBar Expanded Stacked при помощи FormEx
- БП 3.0: Нет Номенклатурной группы в Требовании-накладной
- Отчет на СКД: вкладка "Другие настройки" в пользовательском режиме (УФ)
- Передача параметров в форму
- Ошибка: Пропущен символ "" (двойная кавычка)
- Выгрузка EDI (EDIFACT)
- Получить в запросе начальный, конечный остаток и обороты по Счету
- Настройка плана обмена. Не заходит в конфигуратор при отладке
- Как удалить битые записи из регистра накопления?
- Ошибка подключения к WinSCP для регламентных заданий 1С
- Вызов методов языка JavaScript из кода 1С.
- ЗУП 3.1. Регламентированная отчетность. Видимость отдельных отчетов
- Роли, СКД, Субконто