#0
by колодина
Пытаюсь оптимизировать выполнение формирование документов, анализирую производительность и столкнулась с таким фактом - запрос по регистру сведений занимает меньше времени, чем запрос к виртуально
#1
by колодина
дополняю... чем запрос к виртуальной таблице "срез последних".... вроде не должно так быть... как думаете - с чем это может быть связано?
#7
by Нуф-Нуф
виртуальная таблица не хранится, а рассчитывается в момент обращения. кроме того для виртуальной таблицы не рекомендуется использовать ГДЕ, нужно по максимуму использовать параметры виртуальной таблицы
#9
by колодина
вот и не используется "где"... а реально получается - что запрос по регистру делается быстрее, чем по срезу последних... да знаю я это.... отсюда - и вопрос...
#12
by колодина
да говорю же вам - тут не имеет значения "где"... запрос к срезу последних - параметры используются... а все равно - запрос к регистру работает быстрее...
#14
by колодина
ИЗ работает медленнее чем ВЫБРАТЬ Скидки.ПроцентСкидкиНаценки, И Скидки.Номенклатура В(&СписокНоменклатуры) и
#21
by колодина
ну и что - да есть... потому что так надо... и во втором случае - тоже есть "где".... так что это - не ответ...
#22
by Fragster
пример - по одним и тем же наборам измерений - регистратор с разными организациями, и последняя не попадает в отбор. пример2 - Скидки.ПроцентСкидкиНаценки последнее значение 0.
#23
by Wobland
первый запрос строит таблицу, потом из неё выбирает по условию. во втором запросе выбирает по условию без построения вирт. таблицы. как-то так
#25
by колодина
ну я говорю - одинаковые результаты... лучше скажите - почему второй быстрее работает? вроде бы первый запрос - должен быстрее? или нет?
#27
by колодина
это я знаю.... а вот почему второй быстрее работает? вроде бы всегда я думала что по срезупоследних, особенно если параметры не через "где" - должно быстрее работать
#29
by Нуф-Нуф
так как нет параметров в вирутальной таблице - он рассчитывает последния значения ДЛЯ ВСЕХ записей в регистре, и только потом накладывает ГДЕ. именно поэтому твоя временная работает медленнее
#31
by Megas
Почему надо имено так? У тебя получается: Выбирается вирт таблица, а потом на неё накладывается ГДЕ конечно это медлено
#36
by Нуф-Нуф
сравни два запроса на большой базе: ТоварыНаСкладахОстатки.КоличествоОстаток ТоварыНаСкладахОстатки.КоличествоОстаток
#39
by Megas
Фиг знает...на твоем количеств данных, получается медленей, может на другом количестве данных и быстрее.
#41
by Fragster
+ и ПроцентСкидкиНаценки с ПроцентСкидкиНаценки таки ресурсы, скорее всего. но если их в параметры внести, то работать станет как второй запрос :)
#42
by 0xFFFFFF
ппц. Я фигею с мистян. Человек спрашивает, почему запрос по виртуальной таблице идет быстрее, чем по физической, хотя должно быть наоборот. Ее никто понять не может, но "залечивать" пытаются все...
#45
by колодина
все пытаются высказать все знания, которые есть у них по данному вопросу.... а вот точно вопрос - должен ли запрос к виртуальной таблице ВСЕГДА работать быстрее или нет?
#47
by marvak
виртуальная таблица рассчитывается в момент запроса, на это тратится время, а во втором случае просто выбираются записи из физической таблицы, время не тартится. почему должно быть быстрее в случае СрезаПоследних? всегда было медленнее. тем более СрезПоследних достаточно нетривиальный алгоритм ИМХО.
#49
by Fragster
а я еще раз повторюсь, что у автора 2 запроса получают разные данные, так что об их идентичности речи быть не может (кстати, кроме разных итоговых результатов, получаемых постобработкой для второго запроса. виртуальная таблица же получает только последние данные, а не все с данным отбором (посмотрите в профайлере, какие там соединения))
#50
by колодина
да.... вот так и получается..... буду переписывать - одно место уже переписала, пойду дальше оптимизировать. всем спасибо
#51
by Fragster
сначала проверь свои запросы на примерах, приведенных мною. пойми, что твой "оптимизированный" запрос работает не верно.
#53
by колодина
все равно - спасибо, за то, что принял мою проблему так близко.... даже примеры придумал! спасибо.
#54
by Fragster
просто сам наступал на эти грабли. вот тебе пример: данные регистра: период 01.01 получаем данные по оргаинзации А. первый запрос вернет пусто, второй - за период 01.01 второй пример: период 01.01 первый запрос вернет пусто, второй - 10
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Срез последних в запросе к регистру сведений....
- Один запрос - все ок , два запрос - не получается :(
- Как объединить запрос по регистру накопления с запросом по табличной час
- Запрос по периодическому регистру сведений, срез последних
- Запрос в обработке и запрос в консоли отчетов выдают разные результаты
В этой группе 1С
- Как вывести на печать 2 столбца
- Перенос содержимого Регистра между базами
- РАУЗ, расчет себестоимости, ошибка распределения затраты
- 1С 8.2: НЕОПРЕДЕЛЕНО в тексте запроса
- Кто знает как зарегать продукт 1с на сайте если утеряна рег. Анкета?
- Как получить данные табличного поля из модуля обработки...
- Матрица компетентности программиста
- ЗначениеВРеквизитФормы - не удается передать строку
- Не грузится ОКОФ, попробуйте загрузить бух 2.0.18.1
- Учёт весового товара в УПП,штрихкодирование
- Информационная колонка в табличной части документа: как правильно...?
- Обмен данными между 1с8 SQL и базой данных SQL
- ЗУП 8.1 док. Зарплата к выплате не учитывает сумму сторно
- Помогите настроить закрытие 23,29 счета в УПП, РАУЗ
- Как копировать записи в регистре накоплений?
- Как програмно очистить окно служебных сообщений?
- синхронизация Symbian и Outlook 2007
- Зависает 1с при отключении сканера ШК
- Какие библиотеки нужны для работы с 1С из C#?
- 8.1 УТ 10.3 Ввод оприходования на основании инвентаризации