|
Проверка оптимальности запроса | ☑ | ||
---|---|---|---|---|
0
happysan
31.01.16
✎
12:56
|
В любой типовой бухии создать отчет в СКД показывающий в разрезе месяцев количество документов использовавших субконтно «контрагент». Использование определяем по присутствию в проводках хозрасчетного бух регистра.
Отчет всегда должен формироваться только за 2013 год, иметь группировку по месяцам и выводить все 12 строк с месяцами даже если ресурс строки равен 0(если в этом месяце субконтно контрагент не использовалась ни в одном из документов). ВЫБРАТЬ НАЧАЛОПЕРИОДА(ХозрасчетныйДвиженияССубконто.Период, МЕСЯЦ) КАК Месяц, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ХозрасчетныйДвиженияССубконто.Регистратор) КАК Регистратор ИЗ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( , , ВидСубконто1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты) ИЛИ ВидСубконто2 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты) ИЛИ ВидСубконто3 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты), , ) КАК ХозрасчетныйДвиженияССубконто СГРУППИРОВАТЬ ПО НАЧАЛОПЕРИОДА(ХозрасчетныйДвиженияССубконто.Период, МЕСЯЦ) УПОРЯДОЧИТЬ ПО Месяц Параметры "НачалоПериода" и "КонецПериода" заполняются в СКД. Вопросы: 1. Оптимален ли данный запрос или его ещё можно оптимизировать 2. как? 3. и обосновать подход. |
|||
2
happysan
31.01.16
✎
13:09
|
Я уже больше года там работаю), просто на днях вспомнили эту задачу с коллегами в неформальной обстановке и пошли дискуссии по поводу оптимальности этого запроса...
|
|||
3
Записьдампа
31.01.16
✎
13:11
|
(2) А, то есть нас даже на работу не возьмут...
А на предмет чего оптимизация-то? Время там, расход памяти, нагрузка на диски? |
|||
4
Записьдампа
31.01.16
✎
13:14
|
... на файловой базе, на MS-SQL, с учетом его оптимизатора...
|
|||
5
happysan
31.01.16
✎
13:14
|
(3) я, думаю, время имелось в виду. Но сути претензий я не добился претензий, наверное по двум причинам: это было в ресторане в пятницу) и прошло больше года, но я сейчас "нарыл" этот отчет и хочу подискутировать.
|
|||
6
Записьдампа
31.01.16
✎
13:16
|
(5) Зачем?
|
|||
7
happysan
31.01.16
✎
13:17
|
(6) спортивный интерес
|
|||
8
happysan
31.01.16
✎
13:23
|
Значит не "докопаешься"?
|
|||
9
Записьдампа
31.01.16
✎
13:25
|
(8) Докапываться в воскресенье до пьяной задачи годовалой данности из спортивного интереса? Оно мне надо?
|
|||
10
happysan
31.01.16
✎
13:28
|
(9)Слушай, ты до кучи всего написал уже, но всё не по существу. Не надо - проходи мимо!
|
|||
11
Записьдампа
31.01.16
✎
13:32
|
(10) Прости, что не оправдал твоих ожиданий. Печеньку будешь?
|
|||
12
happysan
31.01.16
✎
13:40
|
Печеньками занимаешься? Так и думал, что не 1сник
|
|||
13
Записьдампа
31.01.16
✎
13:51
|
(12) Не надо комплиментов, пожалуйста. Я краснею и смущаюсь.
|
|||
14
happysan
31.01.16
✎
14:02
|
(13) И правильно делаешь.
|
|||
15
asady
01.02.16
✎
08:06
|
(0) особо не вникая - я бы ИЛИ из ПВТ исключил - заменив на три юниона и вместо "сгруппировать" дистинкт
|
|||
16
Defender aka LINN
01.02.16
✎
08:16
|
(0) "Отчет всегда должен формироваться только за 2013 год"
Сформируй 1 раз, сохрани и рассылай при необходимости. Как тебе такая оптимизация? |
|||
17
cw014
01.02.16
✎
08:32
|
(16) +100500
|
|||
18
cw014
01.02.16
✎
08:33
|
Товарищ, люди тут с реальными проблемами обращаются, ветки по 100 сообщений создают, ибо надо решить задачу. А ты - "спортивный интерес". Иди работай, как появится действительно требуемая задача - пиши
|
|||
19
НЕА123
01.02.16
✎
09:17
|
(0)
не надо РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто. юзай РегистрБухгалтерии.Хозрасчетный.Субконто |
|||
20
ViSo76
01.02.16
✎
09:24
|
(19) Согласен. Топикастр походу вообще не отдупляет из чего виртуальная таблица строится.
|
|||
21
patria0muerte
01.02.16
✎
09:27
|
Группировать вроде не обязательно в запросе. Можно же в СКД дополнение периода заюзать.
|
|||
22
ILM
гуру
01.02.16
✎
09:36
|
Тухлый запрос...
Я бы объединил три запроса по субконто и ВЫРАЗИТЬ бы сделал обязательно. |
|||
23
patria0muerte
01.02.16
✎
09:45
|
(22) А Выразить тут накой? Обращений через точку же нет. Просто считаются регистраторы.
|
|||
24
ViSo76
01.02.16
✎
10:20
|
(22) Лучше жевать чем говорить. Загляните в таблицу РегистрБухгалтерии.Управленческий.Субконто. В ней нет указания какого уровня субконто данные.
|
|||
25
happysan
01.02.16
✎
10:49
|
Самый быстрый вариант:
ВЫБРАТЬ НАЧАЛОПЕРИОДА(ХозрасчетныйСубконто.Период, МЕСЯЦ) КАК Месяц, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ХозрасчетныйСубконто.Регистратор) КАК Регистратор ИЗ РегистрБухгалтерии.Хозрасчетный.Субконто КАК ХозрасчетныйСубконто ГДЕ ХозрасчетныйСубконто.Период МЕЖДУ &НачалоПериода И &КонецПериод И ХозрасчетныйСубконто.Вид = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты) СГРУППИРОВАТЬ ПО НАЧАЛОПЕРИОДА(ХозрасчетныйСубконто.Период, МЕСЯЦ) УПОРЯДОЧИТЬ ПО Месяц |
|||
26
happysan
01.02.16
✎
10:51
|
Выяснил ещё вчера, сравнив два варианта, а сегодня был прав (19).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |