|
Необходимо ускорить выполнение запроса при проверке недействительных паспортов. | ☑ | ||
---|---|---|---|---|
0
dust09
23.09.15
✎
16:26
|
Необходимо ускорить выполнение запроса при проверке недействительных паспортов. Соответственно, оптимизировать запрос в соответствующей функции.
ВЫБРАТЬ РАЗЛИЧНЫЕ _арДанныеДокументовУчастниковСрезПоследних.ВидДокумента КАК ДокументВид, _арДанныеДокументовУчастниковСрезПоследних.Серия КАК ДокументСерия, _арДанныеДокументовУчастниковСрезПоследних.Номер КАК ДокументНомер, ПОДСТРОКА(_арДанныеДокументовУчастниковСрезПоследних.Серия, 1, 4) + ПОДСТРОКА(_арДанныеДокументовУчастниковСрезПоследних.Номер, 1, 6) КАК СерияНомер, _арДанныеДокументовУчастниковСрезПоследних.ДатаВыдачи КАК ДокументДатаВыдачи, _арДанныеДокументовУчастниковСрезПоследних.Участник КАК Участник, _арДанныеДокументовУчастниковСрезПоследних.Участник.ДатаРождения КАК ДатаРождения, _арДанныеДокументовУчастниковСрезПоследних.Участник.СНИЛС КАК СНИЛС ИЗ РегистрСведений._арДанныеДокументовУчастников.СрезПоследних(&Период, ) КАК _арДанныеДокументовУчастниковСрезПоследних ГДЕ _арДанныеДокументовУчастниковСрезПоследних.Серия <> "" И _арДанныеДокументовУчастниковСрезПоследних.Номер <> "" И ПОДСТРОКА(_арДанныеДокументовУчастниковСрезПоследних.Серия, 1, 4) + ПОДСТРОКА(_арДанныеДокументовУчастниковСрезПоследних.Номер, 1, 6) В (&СписокСерийНомеров) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ _арПоследниеИзмененияСрезПоследних.ВидДокумента, _арПоследниеИзмененияСрезПоследних.ДокументСерия, _арПоследниеИзмененияСрезПоследних.ДокументНомер, ПОДСТРОКА(_арПоследниеИзмененияСрезПоследних.ДокументСерия, 1, 4) + ПОДСТРОКА(_арПоследниеИзмененияСрезПоследних.ДокументНомер, 1, 6), _арПоследниеИзмененияСрезПоследних.ДокументДатаВыдачи, _арПоследниеИзмененияСрезПоследних.Участник, _арПоследниеИзмененияСрезПоследних.ДатаРождения, _арПоследниеИзмененияСрезПоследних.СНИЛС ИЗ РегистрСведений._арПоследниеИзменения.СрезПоследних(&Период, ) КАК _арПоследниеИзмененияСрезПоследних ГДЕ _арПоследниеИзмененияСрезПоследних.ДокументСерия <> "" И _арПоследниеИзмененияСрезПоследних.ДокументНомер <> "" И ПОДСТРОКА(_арПоследниеИзмененияСрезПоследних.ДокументСерия, 1, 4) + ПОДСТРОКА(_арПоследниеИзмененияСрезПоследних.ДокументНомер, 1, 6) В (&СписокСерийНомеров) УПОРЯДОЧИТЬ ПО Участник АВТОУПОРЯДОЧИВАНИЕ |
|||
1
Апош
23.09.15
✎
16:27
|
что будешь делать?
|
|||
2
dust09
23.09.15
✎
16:28
|
(1) Оптимизировать надо запрос, чтоб быстрее работал.
|
|||
3
Fragster
гуру
23.09.15
✎
16:28
|
сделать поле, которое бы сразу содержало _арДанныеДокументовУчастниковСрезПоследних.Серия, 1, 4) + ПОДСТРОКА(_арДанныеДокументовУчастниковСрезПоследних.Номер, 1, 6
|
|||
4
Апош
23.09.15
✎
16:28
|
(2) я готов
|
|||
5
MSOliver
23.09.15
✎
16:29
|
<> ""
значение(документ.тра-та-та.пустаяссылка) |
|||
6
vicof
23.09.15
✎
16:30
|
Отбор из где в параметры вирт таблиц
|
|||
7
MSOliver
23.09.15
✎
16:30
|
(6) ну или справочник чё там у вас...
|
|||
8
MSOliver
23.09.15
✎
16:31
|
(6) на срезе?
|
|||
9
Лефмихалыч
23.09.15
✎
16:31
|
(0) запрос свой выкинь и пользуйся вот этим: http://services.fms.gov.ru/info-service.htm?sid=2000
|
|||
10
MSOliver
23.09.15
✎
16:32
|
(0) поставь отбор в виртуальные таблицы, я думаю даже дольше станет, тока отбор <>
|
|||
11
MSOliver
23.09.15
✎
16:33
|
(9) а он мож узбеков ловит)
|
|||
12
dust09
23.09.15
✎
16:33
|
(9) Отсюда и закачано в Регистр Сведений, а из него в таблицу СписокСерийНомеров
|
|||
13
MSOliver
23.09.15
✎
16:35
|
(12) делай (10) и станет всё понятно, не про индексы же говорить...
|
|||
14
Лефмихалыч
23.09.15
✎
16:35
|
(12) и нахрена? Какая религия мешает использовать первоисточник?
|
|||
15
Fragster
гуру
23.09.15
✎
16:36
|
(13) вы в курсе, как работает отбор в виртуальных таблицах РС по ресурсам?
|
|||
16
Fragster
гуру
23.09.15
✎
16:36
|
(14) могут забанить, если много запросов
|
|||
17
Лефмихалыч
23.09.15
✎
16:36
|
кстати, если убрать из запроса все ПОДСТРОКА(), это как повлияет на выполнение?
|
|||
18
MSOliver
23.09.15
✎
16:37
|
(14) тута ускорять запрос надобно, а не задавать разумные вопросы:"Зачем?"
|
|||
19
Fragster
гуру
23.09.15
✎
16:37
|
(17) очень хорошо повлияет, если сделать (3)
|
|||
20
Лефмихалыч
23.09.15
✎
16:37
|
(16) и от этого есть лекарство - просто так брать и не делать много запросов
|
|||
21
Fragster
гуру
23.09.15
✎
16:37
|
(19)+ и проиндексировать
|
|||
22
MSOliver
23.09.15
✎
16:40
|
(15) не совсем понятен вопрос, тут и разницы в РС между реквизитом и ресурсом спорная, и галка индексировать, и отбираться надобно по измерениям... у Вас уже ресурсы образовались...
|
|||
23
dust09
23.09.15
✎
16:42
|
(14) Не совсем понимаю, что есть "первоисточник" ???
Мне нужен запрос для отчёта группового по базе данных. |
|||
24
Fragster
гуру
23.09.15
✎
16:42
|
(22) если условие отбора идет по измерениям - то в параметры ВТ пихать его можно, если по ресурсам/реквизитам - то нет. иначе срез последних будет показывать кривоту.
и что-то совсем не уверен, что номер/серия паспорта - это измерения. |
|||
25
dust09
23.09.15
✎
16:42
|
(14) У нас Пенсионный Фонд.
|
|||
26
MSOliver
23.09.15
✎
16:45
|
(15) не кривоту а значение когда, ресурс был таким как в параметре, но это уже не срез
|
|||
27
Fragster
гуру
23.09.15
✎
16:46
|
(26) если Срез показывает не срез - то это кривота
|
|||
28
MSOliver
23.09.15
✎
16:48
|
(24) а если номер/серия паспорта - это измерения составного типа в том числе и строка, согласны ли вы что конструкция <> "" сильно обременит запрос, а если её ещё и в параметры засунуть то результат может быть ещё и хуже...
|
|||
29
Fragster
гуру
23.09.15
✎
16:50
|
(28) я надеюсь, что создатели РС _арДанныеДокументовУчастников и _арПоследниеИзменения не настолько мудаки
|
|||
30
MSOliver
23.09.15
✎
16:51
|
(29) ))
|
|||
31
timurhv
23.09.15
✎
16:59
|
(0) Так не устроит без изменения структуры РСВ?
ВЫБРАТЬ РАЗЛИЧНЫЕ _арДанныеДокументовУчастниковСрезПоследних.ВидДокумента КАК ДокументВид, _арДанныеДокументовУчастниковСрезПоследних.Серия КАК ДокументСерия, _арДанныеДокументовУчастниковСрезПоследних.Номер КАК ДокументНомер, ПОДСТРОКА(_арДанныеДокументовУчастниковСрезПоследних.Серия, 1, 4) + ПОДСТРОКА(_арДанныеДокументовУчастниковСрезПоследних.Номер, 1, 6) КАК СерияНомер, _арДанныеДокументовУчастниковСрезПоследних.ДатаВыдачи КАК ДокументДатаВыдачи, _арДанныеДокументовУчастниковСрезПоследних.Участник КАК Участник, _арДанныеДокументовУчастниковСрезПоследних.Участник.ДатаРождения КАК ДатаРождения, _арДанныеДокументовУчастниковСрезПоследних.Участник.СНИЛС КАК СНИЛС ПОМЕСТИТЬ втТаблица ИЗ РегистрСведений._арДанныеДокументовУчастников.СрезПоследних(&Период, ) КАК _арДанныеДокументовУчастниковСрезПоследних ГДЕ _арДанныеДокументовУчастниковСрезПоследних.Серия <> "" И _арДанныеДокументовУчастниковСрезПоследних.Номер <> "" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ _арПоследниеИзмененияСрезПоследних.ВидДокумента, _арПоследниеИзмененияСрезПоследних.ДокументСерия, _арПоследниеИзмененияСрезПоследних.ДокументНомер, ПОДСТРОКА(_арПоследниеИзмененияСрезПоследних.ДокументСерия, 1, 4) + ПОДСТРОКА(_арПоследниеИзмененияСрезПоследних.ДокументНомер, 1, 6), _арПоследниеИзмененияСрезПоследних.ДокументДатаВыдачи, _арПоследниеИзмененияСрезПоследних.Участник, _арПоследниеИзмененияСрезПоследних.ДатаРождения, _арПоследниеИзмененияСрезПоследних.СНИЛС ИЗ РегистрСведений._арПоследниеИзменения.СрезПоследних(&Период, ) КАК _арПоследниеИзмененияСрезПоследних ГДЕ _арПоследниеИзмененияСрезПоследних.ДокументСерия <> "" И _арПоследниеИзмененияСрезПоследних.ДокументНомер <> "" ИНДЕКСИРОВАТЬ ПО СерияНомер ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втТаблица.ДокументВид КАК ДокументВид, втТаблица.ДокументСерия КАК ДокументСерия, втТаблица.ДокументНомер КАК ДокументНомер, втТаблица.СерияНомер КАК СерияНомер, втТаблица.ДокументДатаВыдачи КАК ДокументДатаВыдачи, втТаблица.Участник КАК Участник, втТаблица.ДатаРождения КАК ДатаРождения, втТаблица.СНИЛС КАК СНИЛС ИЗ втТаблица КАК втТаблица ГДЕ втТаблица.СерияНомер В (&СписокСерийНомеров) УПОРЯДОЧИТЬ ПО Участник АВТОУПОРЯДОЧИВАНИЕ |
|||
32
dust09
23.09.15
✎
17:11
|
(31) Массив СписокСерийНомеров поместить во временную таблицу говорят надо.
Как это сделать бы??? |
|||
33
MSOliver
23.09.15
✎
17:15
|
(32) КЗ спасибо Чепелевичу
|
|||
34
dust09
23.09.15
✎
17:39
|
(31) Спасибо за этот вариант :-)
|
|||
35
dust09
23.09.15
✎
17:39
|
(31) Но буду думать дальше.
|
|||
36
alexlap
23.09.15
✎
18:34
|
Включить итоги по РС, убрать из параметров ВТ период.
|
|||
37
MadJhey
23.09.15
✎
18:50
|
(31) сильно не поможет. Один черт полное сканирование РС.
|
|||
38
MadJhey
23.09.15
✎
18:56
|
(36) а вот включить итоги и брать уже готовую виртуальную таблицу поможет. Как бы еще индексы задействовать хотя бы частично. От "<>" надо избавляться. Может доп. измерение ПустаяСерия и ПустойНомер и условие на "=" и их поставить первыми.
Измерение1 + [Измерение2 +...] Есть хоть одно измерение регистра. Индекс, включающий все измерения в том порядке, в котором они заданы при конфигурировании. ИзмерениеN + Измерение1 + [Измерение2 +...] Измерению "ИзмерениеN" задано свойство "Индексировать" или свойство "Ведущее" и при этом это не первое и не единственное измерение. Индекс, включающий все измерения. Первое поле - ИзмерениеN, затем все остальные измерения в том порядке, в котором они заданы при конфигурировании. Реквизит + Измерение1 + [Измерение2 +...] Реквизиту "Реквизит" задано свойство "Индексировать". Индекс в котором первое поле - Реквизит, затем все измерения в том порядке, в котором они заданы при конфигурировании. Ресурс + Измерение1 + [Измерение2 +...] Ресурсу "Ресурс" задано свойство "Индексировать". Индекс в котором первое поле - Ресурс, затем все измерения в том порядке, в котором они заданы при конфигурировании. |
|||
39
MadJhey
23.09.15
✎
18:58
|
(38) это индексы для регистра сведений. Для таблицы итогов надо индексы посмотреть. Но думаю, что они такие же.
|
|||
40
MadJhey
23.09.15
✎
19:03
|
(38) "поставить первыми" - имею ввиду поставить первыми в списке измерений, чтобы для них применялся индекс - Измерение1 + [Измерение2 +...].
|
|||
41
Смотрящий
23.09.15
✎
19:50
|
(0) Денормализовать таблицу религия не позволяет ? Один чОрд закачивал ее с сервиса внешнего, ну добавь ты отдельное поле со значением ПОДСТРОКА(_арДанныеДокументовУчастниковСрезПоследних.Серия, 1, 4) + ПОДСТРОКА(_арДанныеДокументовУчастниковСрезПоследних.Номер, 1, 6)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |