Проблема в построении запроса...прошу помощи

1. AndrK13 10.12.07 11:06 Сейчас в теме
Господа, у меня есть проблема в v8:
строю запрос по базе в УТ где выбираю действующую цену товаров и штрихкоды
"ТекстЗапроса = "ВЫБРАТЬ
| ЦеныНоменклатуры.Номенклатура КАК номенклатура,
| ЦеныНоменклатуры.ТипЦен КАК ТипЦен,
| ЦеныНоменклатуры.Цена КАК Цена,
| Штрихкоды.Штрихкод КАК Штрихкод
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = &розничные
| ) КАК ЦеныНоменклатуры
| ПО ЦеныНоменклатуры.Номенклатура = ЦеныНоменклатуры.Номенклатура
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
| ПО ЦеныНоменклатуры.Номенклатура = Штрихкоды.Владелец
|ГДЕ
| ЦеныНоменклатуры.ТипЦен= &розничные
|
|СГРУППИРОВАТЬ ПО
| ЦеныНоменклатуры.Номенклатура,
| ЦеныНоменклатуры.ТипЦен,
| ЦеныНоменклатуры.Цена,
| Штрихкоды.Штрихкод " ;
Зап = Новый запрос(ТекстЗапроса);
Зап.УстановитьПараметр("Розничные", справочники.ТипыЦенНоменклатуры.НайтиПоКоду("00002").Ссылка);
Зап.УстановитьПараметр("Дата", ТекущаяДата());
Работает это около 30 минут на базе из 8000 наименований и машине PIV 3,4.
Помогите изменить запрос для ускорения работы при сохранении результата.
Заранее благодарен.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Wladimir_spb 10.12.07 11:55 Сейчас в теме
При получении оперативных данных можно не указывать дату среза, тогда не буде пересчитываться таблица.
Это лишнее: |ГДЕ
| ЦеныНоменклатуры.ТипЦен= &розничные

А как понимать "изменить запрос для ускорения работы при сохранении результата"?
3. AndrK13 10.12.07 11:59 Сейчас в теме
4. AndrK13 10.12.07 12:59 Сейчас в теме
Изменил... время обработки не уменьшилось вообще...
5. AndrK13 10.12.07 13:16 Сейчас в теме
"изменить запрос для ускорения работы при сохранении результата" - это как переписать запрос для получения такой же таблицы (номенклатура, последняя цена заданного типа, штрих-код) но БЫСТРЕЕ чем 30 минут!
6. Очкарито 10.12.07 13:50 Сейчас в теме
а группировка зачем нужна?
7. AndrK13 10.12.07 13:57 Сейчас в теме
в смысле "зачем нужна группировка"? чтоб не было дублирующихся записей...
8. Очкарито 10.12.07 14:00 Сейчас в теме
чтобы не было дублей можно поюзать "ВЫБРАТЬ РАЗЛИЧНЫЕ",
зачем тебе в запросе справочник "Номенклатура"?, условие первого внутреннего соединения я ваще не понял...

Upd.
короче, я бы сделал так:

ВЫБРАТЬ РАЗЛИЧНЫЕ
ЦеныНоменклатуры.Номенклатура КАК номенклатура,
ЦеныНоменклатуры.ТипЦен КАК ТипЦен,
ЦеныНоменклатуры.Цена КАК Цена,
Штрихкоды.Штрихкод КАК Штрихкод
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &розничные) КАК ЦеныНоменклатуры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
ПО ЦеныНоменклатуры.Номенклатура = Штрихкоды.Владелец

, потести.
9. AndrK13 10.12.07 14:11 Сейчас в теме
Ситуация такая: в УТ мне надо выгрузить текстовый файл текущих остатков НТТ из строк с параметрами - кот товара, наименование, цена НТТ (для этого и выбираются в первом соединении только нужные цены), остаток в НТТ, остаток по организации в целом, штрих-код товара.
Данный запрос самый долгий по выполнению - почему не понимаю, но на 8000 наименований он работает около 25 минут.
10. AndrK13 10.12.07 14:53 Сейчас в теме
СРАБОТАЛО Очкарито!!!
я раньше на семерке програмировал и группировки оттуда...
большое спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот