![]() |
![]() |
![]() |
|
Необходимо оптимизировать запрос. Ильф, Fragster, helpmepls1, Simod, mortal, katamoto, Бычье сердце, ptiz, JohnGilbert, craxx, Мультук, maxab72, АгентБезопаснойНацио, Andy13, reg0303, Mankubus, phabeZ, DiMel_77, asady, KJlag, Terrixus, ig0z, Климов Сергей, Буковка, Fish, Sanchez_22, Tarlich, Fedor-1971, Толич, TormozIT, Kigo_Kigo, Михаил_, Доминошник, Hawk_1c, RAJAH, alexela, Spyke, Kongo2019, Voronve, Гость из Мариуполя, tan76, Homer, Кир Пластелинин, Timon1405, ass1c, comp2006, Silgis, okmail, BSV, timurhv, Borometr, Дмитрий, ndrv, ldo6, Волшебник, Leonidius, RomanYS, Prog_man, vis, youalex, Гипервизор, АнализДанных, Djelf, kir-g, dmt, ADirks, SleepyHead, mikecool, denk, Прохожий, Масянька, программистище, DimR_71, nick86, Vstur, DemonShinji2, leshikkam, Kobol, AlexYurg, laeg, alexxx961503, formista2000, pasha_d, bmitkin, DimVad, 2S, azt-yur, ads55
| ☑ | ||
---|---|---|---|---|
0
helpmepls1
14.07.25
✎
12:43
|
Необходимо оптимизировать запрос.
Дано: В регистре АмортизацияОС 2 измерения:
ОсновноеСредство Организация В регистре СтоимостьОбъектовОС 3 измерения: ОсновноеСредство Организация ИнвентарныйНомер В регистре Штрихкоды сотни миллионов записей и 1 измерение: ИнвентарныйНомер Реквизит "КапитальноеВложение" есть у 2 типов регистраторов из 20 возможных Неоптимальный запрос: ВЫБРАТЬ АмортизацияОССрезПоследних.ОсновноеСредство КАК ОсновноеСредство, АмортизацияОССрезПоследних.Организация КАК Организация, СУММА(СтоимостьОбъектовОСОстатки.СтоимостьОстаток) КАК Стоимость, МАКСИМУМ(ЕСТЬNULL(Штрихкоды.Штрихкод, "")) КАК Штрихкод ПОМЕСТИТЬ ВТ_Сгруппированные ИЗ РегистрСведений.АмортизацияОС.СрезПоследних(&Дата, ) КАК АмортизацияОССрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьОбъектовОС.Остатки(&Дата, ) КАК СтоимостьОбъектовОСОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды ПО СтоимостьОбъектовОСОстатки.ИнвентарныйНомер = Штрихкоды.ИнвентарныйНомер ПО АмортизацияОССрезПоследних.ОсновноеСредство = СтоимостьОбъектовОСОстатки.ОсновноеСредство И АмортизацияОССрезПоследних.Организация = СтоимостьОбъектовОСОстатки.Организация ГДЕ (АмортизацияОССрезПоследних.ОсновноеСредство.АмортизационнаяГруппа = &АмортизационнаяГруппа ИЛИ АмортизацияОССрезПоследних.ОсновноеСредство.Местонахождение ПОДОБНО "%" + &Местонахождение + "%") И АмортизацияОССрезПоследних.Регистратор.КапитальноеВложение = &КапитальноеВложение СГРУППИРОВАТЬ ПО АмортизацияОССрезПоследних.ОсновноеСредство, АмортизацияОССрезПоследних.Организация ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Сгруппированные.ОсновноеСредство КАК ОсновноеСредство, ВТ_Сгруппированные.Организация КАК Организация, ВТ_Сгруппированные.Стоимость КАК Стоимость, ВТ_Сгруппированные.Штрихкод КАК Штрихкод ИЗ ВТ_Сгруппированные КАК ВТ_Сгруппированные ГДЕ ВТ_Сгруппированные.Стоимость > 1000000 |
|||
1
mikecool
14.07.25
✎
12:32
|
(0) оптимизируй!
|
|||
2
maxab72
14.07.25
✎
12:39
|
(0) Отбери сперва в пакетном запросе данные без регистра Штрихкоды, а потом, во втором запросе пакета этот короткий результат соедини с регистром штрихкодов. Можно даже сперва сделать отбор по регистру штрихкодов если есть все нужные индексы.
|
|||
3
Волшебник
14.07.25
✎
12:45
|
Штрихкод на здании — это пурпурно!
|
|||
4
Fish
гуру
14.07.25
✎
12:46
|
(3) А что не так? Есть даже здание-штрихкод
|
|||
5
Волшебник
14.07.25
✎
12:50
|
(4) Не пурпурно. Слишком красно
|
|||
6
maxab72
14.07.25
✎
12:51
|
(4) Петербург? Дом сзади похож на 504 серию.
|
|||
7
timurhv
14.07.25
✎
12:52
|
Вот тут оптимизируйте:
РегистрСведений.АмортизацияОС.СрезПоследних(&Дата, ) КАК АмортизацияОССрезПоследних ... И АмортизацияОССрезПоследних.Регистратор.КапитальноеВложение = &КапитальноеВложение Реквизит "КапитальноеВложение" есть у 2 типов регистраторов из 20 возможных Осталось понять, как выводить данные после свертки базы. |
|||
8
Fish
гуру
14.07.25
✎
12:52
|
(6) Да.
|
|||
9
ptiz
14.07.25
✎
12:54
|
(0) Сколько объектов в регистрах АмортизацияОС и СтоимостьОбъектовОС? Сколько объектов стоимостью > 1000000 ?
|
|||
10
ptiz
14.07.25
✎
12:54
|
(7) Данные по ОС не сворачивают.
|
|||
11
timurhv
14.07.25
✎
12:55
|
(10) ну регистратор будет корректировка записей или первичка остается?
|
|||
12
ldo6
14.07.25
✎
12:56
|
Косяков в запросе полно. Есть же на ИТС стандарт для запросов и причины неоптимальной работы запросов.
|
|||
13
ptiz
14.07.25
✎
13:05
|
(11) Обычно считается, что ОС не так много, и дешевле оставить все документы по ним, чем обрести новый геморрой.
|
|||
14
KJlag
14.07.25
✎
13:13
|
мне больше нравится, что мы сначала соединяем таблицу1 с сотнями миллионов записей из таблицы2, а потом через "ГДЕ" ищем "ПОДОБНО "%" + &Местонахождение + "%""
|
|||
15
helpmepls1
14.07.25
✎
13:30
|
пока такое придумал
ВЫБРАТЬ ОсновныеСредства.Местонахождение КАК Местонахождение ПОМЕСТИТЬ ВТ_Местонахождение ИЗ Справочник.ОсновныеСредства КАК ОсновныеСредства ГДЕ ОсновныеСредства.Местонахождение ПОДОБНО "%" + &Местонахождение + "%" ИНДЕКСИРОВАТЬ ПО Местонахождение ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ АмортизацияОССрезПоследних.ОсновноеСредство КАК ОсновноеСредство, АмортизацияОССрезПоследних.Организация КАК Организация ПОМЕСТИТЬ ВТ_АмортизацияОС ИЗ РегистрСведений.АмортизацияОС.СрезПоследних( &Дата, КапитальноеВложение = &КапитальноеВложени И ОсновноеСредство.АмортизационнаяГруппа = &АмортизационнаяГруппа) КАК АмортизацияОССрезПоследних ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ АмортизацияОССрезПоследних.ОсновноеСредство, АмортизацияОССрезПоследних.Организация ИЗ РегистрСведений.АмортизацияОС.СрезПоследних( &Дата, КапитальноеВложение = &КапитальноеВложение И ОсновноеСредство.Местонахождение В (ВЫБРАТЬ ВТ_Местонахождение.Местонахождение КАК Местонахождение ИЗ ВТ_Местонахождение КАК ВТ_Местонахождение)) КАК АмортизацияОССрезПоследних ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СтоимостьОбъектовОСОстатки.ОсновноеСредство КАК ОсновноеСредство, СтоимостьОбъектовОСОстатки.Организация КАК Организация, СтоимостьОбъектовОСОстатки.ИнвентарныйНомер КАК ИнвентарныйНомер, СтоимостьОбъектовОСОстатки.СтоимостьОстаток КАК СтоимостьОстаток ПОМЕСТИТЬ ВТ_СтоимостьОстатки ИЗ РегистрНакопления.СтоимостьОбъектовОС.Остатки( &Дата, (ОсновноеСредство, Организация) В (ВЫБРАТЬ ВТ_АмортизацияОС.ОсновноеСредство КАК ОсновноеСредство, ВТ_АмортизацияОС.Организация КАК Организация ИЗ ВТ_АмортизацияОС КАК ВТ_АмортизацияОС)) КАК СтоимостьОбъектовОСОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_СтоимостьОстатки.ОсновноеСредство КАК ОсновноеСредство, ВТ_СтоимостьОстатки.Организация КАК Организация, ВТ_СтоимостьОстатки.ИнвентарныйНомер КАК ИнвентарныйНомер, СУММА(ВТ_СтоимостьОстатки.СтоимостьОстаток) КАК СтоимостьОстаток ПОМЕСТИТЬ ВТ_Сгруппированные ИЗ ВТ_АмортизацияОС КАК ВТ_АмортизацияОС ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СтоимостьОстатки КАК ВТ_СтоимостьОстатки ПО ВТ_АмортизацияОС.ОсновноеСредство = ВТ_СтоимостьОстатки.ОсновноеСредство И ВТ_АмортизацияОС.Организация = ВТ_СтоимостьОстатки.Организация ГДЕ ВТ_СтоимостьОстатки.СтоимостьОстаток > 10000 СГРУППИРОВАТЬ ПО ВТ_СтоимостьОстатки.ОсновноеСредство, ВТ_СтоимостьОстатки.Организация, ВТ_СтоимостьОстатки.ИнвентарныйНомер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Сгруппированные.ОсновноеСредство КАК ОсновноеСредство, ВТ_Сгруппированные.Организация КАК Организация, ВТ_Сгруппированные.СтоимостьОстаток КАК СтоимостьОстаток, МАКСИМУМ(ЕСТЬNULL(Штрихкоды.Штрихкод, "")) КАК Штрихкод ИЗ ВТ_Сгруппированные КАК ВТ_Сгруппированные ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды ПО ВТ_Сгруппированные.ИнвентарныйНомер = Штрихкоды.ИнвентарныйНомер СГРУППИРОВАТЬ ПО ВТ_Сгруппированные.ОсновноеСредство, ВТ_Сгруппированные.Организация, ВТ_Сгруппированные.СтоимостьОстаток |
|||
16
maxab72
14.07.25
✎
13:33
|
(15) Тебя убить мало. Зачем отбирать из справочника Основные средства местонахождения по ПОДОБНО, чтоб потом отбирать опять из того-же справочника по местонахождению? Отбирай сразу ссылку.
|
|||
17
timurhv
14.07.25
✎
14:00
|
(15) Нужно еще учесть момент, что ОС может быть принято к учету, а амортизацию еще не начисляли. В данном случае у вас отчет ничего не выведет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |