|
Оптимизация запроса | ☑ | ||
---|---|---|---|---|
0
seraf
29.11.12
✎
16:15
|
Привет, как правильно во временную таблицу выбрать только субконто одного типа? Там и так по условию только один возможный. Думаю в этом причина сообщения "Недостаточно памяти" при соединении временной таблицы с другими регистрами
ВЫБРАТЬ ХозрасчетныйОстаткиИОбороты.Субконто1 ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт, ХозрасчетныйОстаткиИОбороты.СуммаНУКонечныйОстатокДт, ПОМЕСТИТЬ ВремТаб ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ХозрасчетныйОстаткиИОбороты |
|||
1
Нуф-Нуф
29.11.12
✎
16:15
|
покажи весь запрос
|
|||
2
Нуф-Нуф
29.11.12
✎
16:15
|
поржем
|
|||
3
DrShad
29.11.12
✎
16:16
|
(2) +1
|
|||
4
Maxus43
29.11.12
✎
16:18
|
РегистрБухгалтерии.Хозрасчетный.Обороты(, , , , &ВидСубконто, , , )
|
|||
5
Лефмихалыч
29.11.12
✎
16:24
|
+(4) даже если один вид, то так
ОстаткиИОбороты(, , , , , ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура), ) |
|||
6
seraf
29.11.12
✎
16:24
|
(4) пасиб
(2) это пройдет |
|||
7
seraf
29.11.12
✎
16:24
|
(5) ага спасибо
|
|||
8
Maxus43
29.11.12
✎
16:26
|
(6) тока как это спасёт от ошибки я хз, запрос действительно адский наверно
|
|||
9
seraf
29.11.12
✎
16:30
|
(8) ну щас проверю, ничего адского просто рег бух и пяток рс
думаю что из-за обилия типов субконто1 вылетает |
|||
10
Maxus43
29.11.12
✎
16:31
|
(9) Юзай ВЫРАЗИТЬ, ибо (4)(5) не спасёт от "обилия типов", благо тип один
|
|||
11
seraf
29.11.12
✎
16:31
|
у меня с 3 гигами оперативы и 16 подкачки по крайней мере 1,7 отъедает и падает
|
|||
12
seraf
29.11.12
✎
16:31
|
(10) а, попробую
|
|||
13
Maxus43
29.11.12
✎
16:32
|
(12) 90% что Выразить будет достаточно. хотя не видя весь запрос - трудно судить
|
|||
14
seraf
29.11.12
✎
16:34
|
а так для справки, хоть и кривой запрос, 1с-ка только оперативу использует, размер подкачки не влияет?
(13) пока не добавил пару соединений еще работал кое-как) |
|||
15
seraf
29.11.12
✎
16:45
|
хм, ну запрос конечно с Выразить должен был стать легче, но слетает всё равно
ладно буду копать, может причина техническая |
|||
16
Buster007
29.11.12
✎
16:48
|
копай-копай ) может и до соединений докопаешь )
а ваще 1ске пофиг сколько у тебя оперативки) |
|||
17
sapphire
29.11.12
✎
16:49
|
(13) Ну-ну. CAST будет применен ко всем записям... т.е. будет seek по таблице
|
|||
18
sapphire
29.11.12
✎
16:51
|
(0) Для полей составного типа используется
конструкция ССЫЛКА {Имя таблицы ссылочного типа}. Например, для поля с именем Субконто1 и номенклатуры выгляделобы так ГДЕ Субконто1 ССЫЛКА Справочник.Номенклатура |
|||
19
Maxus43
29.11.12
✎
17:02
|
(17) давно ли? вчера смотрел я на запросы с ССЫЛКА - скуль делает куеву тучу CASTов в WHERE
|
|||
20
Maxus43
29.11.12
✎
17:02
|
Запрос в студию полностью, иначе вобще ниочем всё
|
|||
21
Нуф-Нуф
29.11.12
✎
17:03
|
хоть поржем
|
|||
22
Maxus43
29.11.12
✎
17:07
|
(21) это пройдёт)
|
|||
23
seraf
29.11.12
✎
17:55
|
а как тут код в спойлер положить?
|
|||
24
seraf
29.11.12
✎
18:03
|
ладно так положу
(2, 21) заодно порадую) ВЫБРАТЬ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.ОсновныеСредства) КАК ОС, ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК Сумма1, ХозрасчетныйОстаткиИОбороты.СуммаНУКонечныйОстатокДт КАК Сумма2, Амортизация.СуммаКонечныйОстатокКт КАК Сумма3, Амортизация.СуммаНУКонечныйОстатокКт КАК Сумма4, Амортизация.СуммаОборотКт КАК Сумма7, Амортизация.СуммаНУОборотКт КАК Сумма6 ПОМЕСТИТЬ ОСТаб ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , , , Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновныеСредства)), ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства), ) КАК ХозрасчетныйОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , , , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ИзносОсновныхСредств), , ) КАК Амортизация ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = Амортизация.Субконто1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.НематериальныеАктивы) КАК НМА, ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК Сумма1, ХозрасчетныйОстаткиИОбороты.СуммаНУКонечныйОстатокДт КАК Сумма2, Амортизация.СуммаКонечныйОстатокКт КАК Сумма3, Амортизация.СуммаНУКонечныйОстатокКт КАК Сумма4, Амортизация.СуммаОборотКт КАК Сумма5, Амортизация.СуммаНУОборотКт КАК Сумма6 ПОМЕСТИТЬ НМАТаб ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , , , Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НематериальныеАктивы)), ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.НематериальныеАктивы), ) КАК ХозрасчетныйОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , , , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НакопленнаяАмортизацияНематериальныхАктивов), ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.НематериальныеАктивы), ) КАК Амортизация ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = Амортизация.Субконто1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОСТаб.ОС.Код КАК Код, ОСТаб.ОС.Наименование КАК Наименование, ОСТаб.ОС КАК Актив ИЗ ОСТаб КАК ОСТаб ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыАмортизацииОСБухгалтерскийУчет.СрезПоследних КАК ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних ПО ОСТаб.ОС = ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство, РегистрСведений.ПараметрыАмортизацииОСНалоговыйУчет.СрезПоследних КАК ПараметрыАмортизацииОСНалоговыйУчетСрезПоследних ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ НМАТаб.НМА.Код, НМАТаб.НМА.Наименование, НМАТаб.НМА ИЗ НМАТаб КАК НМАТаб ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияНМАОрганизаций КАК СостоянияНМАОрганизаций ПО НМАТаб.НМА = СостоянияНМАОрганизаций.НематериальныйАктив ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияНМАБухгалтерскийУчет.СрезПоследних КАК ПервоначальныеСведенияНМАБухгалтерскийУчетСрезПоследних ПО НМАТаб.НМА = ПервоначальныеСведенияНМАБухгалтерскийУчетСрезПоследних.НематериальныйАктив, РегистрСведений.ПервоначальныеСведенияНМАНалоговыйУчет.СрезПоследних КАК ПервоначальныеСведенияНМАНалоговыйУчетСрезПоследних |
|||
25
seraf
29.11.12
✎
18:04
|
вот такое чудо вылетает
|
|||
26
hhhh
29.11.12
✎
18:06
|
(25) а чего периода нет в виртуальных таблицах? За все года что ли данные перебираешь?
|
|||
27
Fragster
гуру
29.11.12
✎
18:09
|
кстати только у меня виртуальная таблица ДвиженияССубконто юзает некластерный индекс (без периода) внутрях?
|
|||
28
Fragster
гуру
29.11.12
✎
18:10
|
8.2.16
|
|||
29
seraf
29.11.12
✎
18:11
|
(26) период в параметрах скд не явно указывается
я беру остатки и обороты за год |
|||
30
seraf
29.11.12
✎
18:13
|
мне пока не очень понятно что в запросе убивает систему.. базу протестировал
|
|||
31
Fragster
гуру
29.11.12
✎
18:15
|
Счет В ИЕРАРХИИ замени на получение всех счетов во временную таблицу, а ее заюзай параметром в виртуальной.
проиндексируй ОСТаб.ОС и НМАТаб.НМА |
|||
32
Нуф-Нуф
29.11.12
✎
18:18
|
В иерархии, соединение с виртуальными таблицами.. ужаснах
|
|||
33
seraf
29.11.12
✎
18:20
|
сейчас попробую убрать в иерархии, не знал что это так страшно
|
|||
34
Нуф-Нуф
29.11.12
✎
18:23
|
Посмотришь во что твой запрос превращается на скуле - ваще спать не будешь
|
|||
35
seraf
29.11.12
✎
18:28
|
ну по соединениям почитал что-то.. выходит нужно вообще убрать соединения с виртуальными таблицами и всё во временные выносить, а уж потом соединяться?
а чем в иерархии плохое условие не понял |
|||
36
seraf
29.11.12
✎
18:30
|
ну суть своих ошибок вроде уловил)
|
|||
37
seraf
29.11.12
✎
18:47
|
(31) а небольшой пример не подскажешь как временную таблицу использовать параметром виртуальной
чет я завяз |
|||
38
Fragster
гуру
29.11.12
✎
18:57
|
(37) (,,,,,,счет в (выбрать счета.Счет из счета),,,,,,,)
|
|||
39
Fragster
гуру
29.11.12
✎
18:58
|
(34) посмотри в скуле (27). меня глючит, или в 8.1 было по другому (соединение по кластерному индексу)?
|
|||
40
seraf
29.11.12
✎
19:12
|
(38) в скд у меня такая конструкция не работает
|
|||
41
Fragster
гуру
29.11.12
✎
20:18
|
(40) да, не повезло
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |