Помогите, пожалуйста, ускорить выполнение запроса.
Доброго дня. Получаю данные запросом, на выходе таблица значений с количеством 4576 строк, но запрос работает очень долго. Подскажите, пожалуйста, как можно ускорить выполнение запроса?
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("СчетДТ", ПланыСчетов.Хозрасчетный.НайтиПоКоду("41"));
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.Текст = "ВЫБРАТЬ
| ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
| МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
| ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
| &Дата,
| Регистратор.Проведен = ИСТИНА
| И СчетДт В ИЕРАРХИИ (&СчетДТ)
| И Организация = &Организация
| И СубконтоДт1 В
| (ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1 КАК Номенклатура
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки),
| ,
| ) КАК ХозрасчетныйДвиженияССубконто
|
|СГРУППИРОВАТЬ ПО
| ХозрасчетныйДвиженияССубконто.Регистратор";
Если Не Запрос.Выполнить().Пустой() Тогда
Таблица = Запрос.Выполнить().Выгрузить();
КонецЕсли;
ПоказатьПо теме из базы знаний
Найденные решения
(13) вот такой код в консоли выполнился в 2 раза быстрее
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура
ПОМЕСТИТЬ Ном
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
&Дата,
СчетДт В ИЕРАРХИИ (&СчетДТ)
И Организация = &Организация
И СубконтоДт1 В
(ВЫБРАТЬ
Ном.Номенклатура
ИЗ
Ном),
,
) КАК ХозрасчетныйДвиженияССубконто
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.Регистратор
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура
ПОМЕСТИТЬ Ном
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
&Дата,
СчетДт В ИЕРАРХИИ (&СчетДТ)
И Организация = &Организация
И СубконтоДт1 В
(ВЫБРАТЬ
Ном.Номенклатура
ИЗ
Ном),
,
) КАК ХозрасчетныйДвиженияССубконто
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.Регистратор
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
1) Очень долго это сколько ?
2) Есть замеры времени по точкам останова? ( или на глаз примерно 10-15 сек)
3) Где выполняется запрос ( консоль или обработка) ?
из рекомендаций
ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
| ХозрасчетныйОстатки.КоличествоОстаток Как Остатки
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки
Вот это выбрать вначале запроса во временную таблицу,
а в основном делать выборку из нее
1) Очень долго это сколько ?
2) Есть замеры времени по точкам останова? ( или на глаз примерно 10-15 сек)
3) Где выполняется запрос ( консоль или обработка) ?
из рекомендаций
ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
| ХозрасчетныйОстатки.КоличествоОстаток Как Остатки
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки
Вот это выбрать вначале запроса во временную таблицу,
а в основном делать выборку из нее
(13) вот такой код в консоли выполнился в 2 раза быстрее
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура
ПОМЕСТИТЬ Ном
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
&Дата,
СчетДт В ИЕРАРХИИ (&СчетДТ)
И Организация = &Организация
И СубконтоДт1 В
(ВЫБРАТЬ
Ном.Номенклатура
ИЗ
Ном),
,
) КАК ХозрасчетныйДвиженияССубконто
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.Регистратор
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура
ПОМЕСТИТЬ Ном
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
&Дата,
СчетДт В ИЕРАРХИИ (&СчетДТ)
И Организация = &Организация
И СубконтоДт1 В
(ВЫБРАТЬ
Ном.Номенклатура
ИЗ
Ном),
,
) КАК ХозрасчетныйДвиженияССубконто
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.Регистратор
(21)вот такой код в консоли выполнился в 2 раза быстрее в консоли за 22 сек
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура
ПОМЕСТИТЬ Ном
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
&Дата,
СчетДт В ИЕРАРХИИ (&СчетДТ)
И Организация = &Организация
И СубконтоДт1 В
(ВЫБРАТЬ
Ном.Номенклатура
ИЗ
Ном),
,
) КАК ХозрасчетныйДвиженияССубконто
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.Регистратор
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура
ПОМЕСТИТЬ Ном
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
&Дата,
СчетДт В ИЕРАРХИИ (&СчетДТ)
И Организация = &Организация
И СубконтоДт1 В
(ВЫБРАТЬ
Ном.Номенклатура
ИЗ
Ном),
,
) КАК ХозрасчетныйДвиженияССубконто
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.Регистратор
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот