Имя: Пароль:
1C
 
скорость работы отчета
,
0 Александр056
 
29.11.17
09:48
Всем привет! Два отчета, оба на СКД, простые как валенки, в каждом 1 регистр, в котором предварительно сформированы записи в том виде в котором нужно выводить данные. Нет объединений, соединений группировок, просто выбрать и все. Так вот, в каждом регистре 1 измерение и реквизиты, в первом случае измерение ссылка на справочник, измерение индексируется. Результат отчета 622 000 строк, выводится минут за 10-15. Прекрасно, пусть и простыня в итоге, но именно так просили.Второй регистр подчинен регистратору, измерение номер заявки(строка длинной 14 символов). Так же измерение индексируется, все остальное реквизиты, результат 55-60 тыс строк, формируется минут 40-45, откуда такая разница?
1 MrStomak
 
29.11.17
09:49
Разница оттуда, что ты из регистратора тащишь какое-то поле, а регистратором могут быть 100500 документов.
2 Александр056
 
29.11.17
09:50
нет полей составных типов
3 aka AMIGO
 
29.11.17
09:50
А еще интересные результаты может показать ЗамерПроизводительности.
4 MrStomak
 
29.11.17
09:50
Регистратор не составного типа?
5 Александр056
 
29.11.17
09:51
(4) нет
6 MrStomak
 
29.11.17
09:51
Так не бывает))
7 Александр056
 
29.11.17
09:51
(3) замер производительности у скд? где? или выполенения запроса?
8 Александр056
 
29.11.17
09:52
(6) регистратор 1 документ. Из него ничего не тащу, специально все складываю так что бы в регистре лежала "готовая простыня"
9 MrStomak
 
29.11.17
09:52
Сколько записей в регистрах всего? Не результат отчета, а записей в регистрах?
10 Александр056
 
29.11.17
09:53
(9) столько же как и писал, выводится все, ни отборов ни группировок, ничего, просто как в екселе табличка
11 MrStomak
 
29.11.17
09:53
(8) Кстати если даже ничего не тащишь, знай, что вывод регистратора - это уже обращение к нему для получения даты и номера. Тоже самое касается представлений всех других справочников/документов, которые у тебя в реквизитах регистра.
12 nordbox
 
29.11.17
09:54
сожми в ТИИ таблицы и переинексируй
13 MrStomak
 
29.11.17
09:54
(10) если выводится всё, то индексы смысла не имеют
14 MrStomak
 
29.11.17
09:54
(12)
Индексы_бессмысленны_выводится_всё
15 VladZ
 
29.11.17
09:54
(0) "результат 55-60 тыс строк" - кому нужен такой отчет?
16 Александр056
 
29.11.17
09:54
(13) понимаю, просто пока не пойму что делать, разница только в том что 1 РС независимый а второй подчинен регистратору
17 Александр056
 
29.11.17
09:55
(15) я тоже самое говорил, человек хочет видеть на экране вот такую "простыню" привык работать в екселе, туда тащит кусками или полностью
18 MrStomak
 
29.11.17
09:55
(10)
Выводи во втором случае только номер заявки, остальные поля не выводи - как изменится время
19 nordbox
 
29.11.17
09:55
(16) ну так с этого и начинай
20 vi0
 
29.11.17
09:55
что у тебя занимает основное время - запрос или вывод?
мне кажется нужно начать с этого
если уж ты упомянул скд
21 MrStomak
 
29.11.17
09:56
(16) Да какая разница? Ты же не к виртуальной таблице обращаешься?
22 MrStomak
 
29.11.17
09:57
ставлю на то, что во втором случае много ссылочных реквизитов, время тратится н получение представления
23 vi0
 
29.11.17
09:57
сколько всего измерений во втором регистре, каким по счету стоит измерение номер заявки?
24 Александр056
 
29.11.17
09:57
(21) нет
25 Александр056
 
29.11.17
09:58
(22) пробовал, погода не изменилась
26 Александр056
 
29.11.17
09:58
(23) измерение 1 и там и там, реквизитов кучка так же и там и там
27 MrStomak
 
29.11.17
09:59
(25) Выводи СКД программно, смотри сколько уходит на запрос.
28 vi0
 
29.11.17
10:01
(26) это регистр сведений?
отборы какие к запросу?

возможно, причина в том что в первом случае используется кластерный индекс
29 MrStomak
 
29.11.17
10:02
(28) да хватит про индексы. там НЕТ ОТБОРОВ.
30 MrStomak
 
29.11.17
10:03
поясняю - это всегда clustered index scan будет.
31 Александр056
 
29.11.17
10:04
(28) отборов нет
32 MrStomak
 
29.11.17
10:05
(31) А сортировка есть, кстати?
33 Александр056
 
29.11.17
10:06
(32) нет(
34 vi0
 
29.11.17
10:06
(29) не кричи, дети спят)
35 Dotoshin
 
29.11.17
10:07
(0) А сколько записей в каждом из этих регистров?
36 novichok79
 
29.11.17
10:07
смотри технологический журнал. вполне вероятно, что там творится какая-то дичь.
37 vi0
 
29.11.17
10:08
слишком разные отчеты и вообще входные данные
и, видимо, не все сказал из исходных данных
38 Dotoshin
 
29.11.17
10:08
+ (35) Сколько реквизитов в одном и в другом регистре и какого они размера?
39 Александр056
 
29.11.17
10:10
в быстром реквизитов чуть более 20, во втором по 50 ))
40 vi0
 
29.11.17
10:10
ветка быстро и верно превратилась в гадание на кофейной гуще
делай замеры всех этапов формирования отчета
41 Александр056
 
29.11.17
10:10
(35) записей в 1 13 00 во втором 622 000, быстро работает тот у которого 622 000
42 Александр056
 
29.11.17
10:11
как замерить отчет СКД?
43 Dotoshin
 
29.11.17
10:13
(39) Ну вот в этом и может быть причина, если ты читаешь все реквизиты, ибо на физическое прочтение реквизита тоже требуется время и чем больше этих реквизитов и чем больше они занимают места, тем дольше будет считываться одна запись.
Попробуй исключить из выборки часть реквизитов и посмотри на скорость выполнения запроса
44 Мимохожий Однако
 
29.11.17
10:13
(42) Внутри формы поставь точки остановки до и после вывода
45 Dotoshin
 
29.11.17
10:14
(42) В консоли запрос погоняй
46 Dotoshin
 
29.11.17
10:17
Еще проблема может быть из-за фрагментации таблицы, попробуй сделать обновление статистики, реиндексацию и прочие регламенты для sql
47 Йохохо
 
29.11.17
10:19
(29) ловко он тебя обманул (41)
(46) еще может быть 30 добавленных относительно 1 реквизитов Строка (неогр)
48 nordbox
 
29.11.17
10:22
Разница большая, вот ради эксперимента так:
еще два измерения где будет хранить номер и дату заявки и пусть сделает запрос для начала без периода и не по регистру! а именно по этим полям
49 FIXXXL
 
29.11.17
10:25
(0) у регистратора ОбработкаПолученияПредставления() есть?
50 Dotoshin
 
29.11.17
10:26
(47) Проблема не в добавленных, а в том что и в каком количестве считывается из таблицы, условно говоря чем больше байт нам нужно прочитать из записи, тем дольше будет длиться этот процесс, чисто с физической точки зрения.
51 Александр056
 
29.11.17
10:26
(47) строк неограниченной длинны нет(
52 Александр056
 
29.11.17
10:28
(49) есть...
53 MrStomak
 
29.11.17
10:31
(52) Так ты же сказал, что пробовал выводить только измерение "НомерЗаявки"! Опять соврал?
54 vi0
 
29.11.17
10:32
(50) а также эти поля будут выводиться дольше в таб документ
55 nordbox
 
29.11.17
10:36
(52) сделай как в (48)
56 MrStomak
 
29.11.17
10:37
(55) (18) (22) (25)
57 Александр056
 
29.11.17
10:38
(53) не выбираю я его, у регистратора в модуле менеджера есть, но я гео не вывожу! почему соврал? и почему опять?
58 FIXXXL
 
29.11.17
10:38
(52) и что там?
учти, что этот код выполняется на каждую строку отчета :)
59 Александр056
 
29.11.17
10:38
представление я выбирал у тех реквизитов которые ссылочного типа
60 Александр056
 
29.11.17
10:39
сейчас запущу только вывод измерения
61 nordbox
 
29.11.17
10:39
(56) Номер получать не из регистратора а отдельного поля
62 MrStomak
 
29.11.17
10:40
(61) Читай (0), номер - это отдельное поле Строка(14)
63 vi0
 
29.11.17
10:41
(0) выложи сюда оба отчета
64 Йохохо
 
29.11.17
10:42
(57) выполни запросы без вывода вообще, тупо в обработке выполнить и все, и замерь время
65 MrStomak
 
29.11.17
10:43
(60) А в (25) ты что запускал?
(57)
1. Соврал, что пробовал исключить эффект получения представления, чем направил следствие по ложному пути.
2. Путаешься в показаниях относительно количества записей в медленном регистре.
66 Александр056
 
29.11.17
10:44
(65) пишу третий раз в долгом регистре чуть больше 13 000 строк что не ясно? я так и писал
67 Александр056
 
29.11.17
10:45
(65) тут наверное не так выразился, еще раз опишу, представление брал только у реквизитов в регистре пробовал и без них, ссылочного типа, регистратор не трогал ни разу.
68 Йохохо
 
29.11.17
10:46
(66) тогда поясни (0) "результат 55-60 тыс строк"
69 MrStomak
 
29.11.17
10:46
(66) Ну и расскажи тогда, почему запрос по нему без соединений/объединений возвращает 55-60 тысяч строк?
Наворотил группировок СКД?
70 Cyberhawk
 
29.11.17
10:48
Сравни итоговые запросы СКД
71 MrStomak
 
29.11.17
10:49
(67) Исключить влияние получения представления - это исключить из вывода все поля ссылочных типов. Регистратор, не регистратор - не волнует. Все. Поля. Ссылочных. Типов.
72 PCcomCat
 
29.11.17
10:49
В СКД вычисляемые поля замедляют формирование отчета очень сильно. Поэтому лучше вычисления в запросе делать.
73 MrStomak
 
29.11.17
10:51
(67) И если ты делаешь ПРЕДСТАВЛЕНИЕ(НекаяСсылка) -  то это не значит, что ты исключил замедление от получения представления. Это всё равно будет соединение.
74 Александр056
 
29.11.17
10:54
(73) ок понял, сейчас выкину эти реквизиты. (69) блииин написал через пень колоду
75 Александр056
 
29.11.17
10:58
сейчас сделал по реккомендации, убрал процедуру обработка получения представления у документа регистратора, хз почему, я его не выводил и тут же сработало в 10 раз быстрее
76 FIXXXL
 
29.11.17
11:00
(75) "Автозаполнение" стоит под запросом?
77 MrStomak
 
29.11.17
11:02
(75) Так не бывает. Регистратора вообще в результате запроса не было или просто ты не выводил его в поля СКД?
78 MrStomak
 
29.11.17
11:03
(75) В СКД есть "Выражение представления" у поля. Вместо того, чтобы убирать для всей системы представление документа, лучше всё же в этом поле уточнить, как его формировать..
79 Александр056
 
29.11.17
11:05
(76) lf
80 Александр056
 
29.11.17
11:06
(78) там сделали у документа не корректно, нужно только на форме в заголовке по сути, сейчас перенес и все будет ок
81 Александр056
 
29.11.17
11:13
всем спасибо большое.
82 Александр056
 
29.11.17
11:14
MrStomak - отдельное
83 vi0
 
29.11.17
11:22
(81) пожалуйста
больше не огорчай нас
84 Александр056
 
29.11.17
11:35
(83) ok
AdBlock убивает бесплатный контент. 1Сергей