|
Ребят, помогите оптимизировать запрос | ☑ | ||
---|---|---|---|---|
0
olo_lo1
11.02.20
✎
12:25
|
Никогда не пользовался индексированием на свой стыд в запросах, но видимо это тот случай когда без него никуда.
Есть 2 таблицы, в которых по несколько десятков млн строк. Ключом соединяю их, загоняю во временную, а на след этапе ставлю условие и вывод данных в обработку. Со сменой сервака все глохнет, как можно оптимизировать, заранее спасибо. попробовал Индексирование - может как то не так делаю не взлетело. ВЫБРАТЬ РАЗЛИЧНЫЕ Таблица2.transaction_id, Таблица2.amount, Таблица1.Номер ПОМЕСТИТЬ Т1 ИЗ Документ.Транзакция КАК Таблица2 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Нумератор КАК Таблица1 ПО Таблица2.Ссылка = Таблица1.Документ ГДЕ Таблица2.Проведен И Таблица2.transaction_id <> "" И Таблица2.Ссылка = &Док ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 1000 Т1.transaction_id, Т1.amount ИЗ Т1 КАК Т1 ГДЕ Т1.Номер ЕСТЬ NULL УПОРЯДОЧИТЬ ПО Т1.Ссылка.Номер |
|||
1
olo_lo1
11.02.20
✎
12:26
|
И Таблица2.Ссылка = &Док - это я по ошибке в топик поставил, его не должно быть, просто сейчас по другому виснет
|
|||
2
H A D G E H O G s
11.02.20
✎
12:30
|
(0) Не помещай в ВТ
|
|||
3
yavasya
11.02.20
✎
12:31
|
(0) сделай в РегистрСведений.Нумератор поле Документ измерением и сделай порядок по вертикали 1 и сделай его индексируемым. больше ты ничего не сделаешь. Помни что запрос ко временной таблице это подзапрос в условии
|
|||
4
H A D G E H O G s
11.02.20
✎
12:32
|
(3) "Помни что запрос ко временной таблице это подзапрос в условии"
Вы несете чушь. |
|||
5
olo_lo1
11.02.20
✎
12:33
|
(3) стоит и как измерение и как ведущее и как основной отбор. Т.е. по нему индексирование идет.
А что такое "сделай порядок по вертикали 1 и сделай его индексируемым" поясните пож |
|||
6
H A D G E H O G s
11.02.20
✎
12:33
|
(3) Документ у него и так Измерение, если вы хоть немного чтото проектировали
|
|||
7
yavasya
11.02.20
✎
12:33
|
(4) не несу чушь, сейчас найду ссылку на ИТС
|
|||
8
ДенисЧ
11.02.20
✎
12:34
|
(3) "запрос ко временной таблице это подзапрос в условии"
https://i.ytimg.com/vi/WVgSB7pEdsI/maxresdefault.jpg |
|||
9
H A D G E H O G s
11.02.20
✎
12:34
|
(0) Запрос часто будет пользоваться?
|
|||
10
olo_lo1
11.02.20
✎
12:34
|
(2) дело в том что данных оч много а мне нужно отскекать первую 1000 и как тут без ВТ обойтись ?
|
|||
11
olo_lo1
11.02.20
✎
12:34
|
(9) каждые 5 минут
|
|||
12
H A D G E H O G s
11.02.20
✎
12:35
|
(11)
Ресурс Номер регистра перенеси в Измерения, следом за Документ, либо проиндексируй |
|||
13
H A D G E H O G s
11.02.20
✎
12:36
|
(10) Отсекай в первом запросе, в чем проблема? Туда же и Условие на null впили
|
|||
14
yavasya
11.02.20
✎
12:36
|
(6) (8) Это я имею ввиду соединение со временной таблицей. Виртуальные таблицы , используемые в языке запросов 1С предприятия могут разворачиваться в подзапрос СУБД
|
|||
15
Simod
11.02.20
✎
12:37
|
(14) Эээ... что?
|
|||
16
H A D G E H O G s
11.02.20
✎
12:37
|
И напиши в 1С, что хочешь составной индекс на
transaction_id, amount в таблице документов. Они такое любят. |
|||
17
ДенисЧ
11.02.20
✎
12:37
|
(14) "я имею ввиду соединение со временной таблицей. Виртуальные таблицы "
Ты уж определись... Или крестик, или трусики... |
|||
18
H A D G E H O G s
11.02.20
✎
12:37
|
(14) Где тут видишьь вирт таблицу?
|
|||
19
Cyberhawk
11.02.20
✎
12:38
|
(10) А зачем каждый раз первую тыщу выбирать?
|
|||
20
yavasya
11.02.20
✎
12:39
|
||||
21
Simod
11.02.20
✎
12:39
|
(0) Что мешает в одном запросе, без временной таблицы, получить данные, упорядочить и выбрать первые 1000?
|
|||
22
H A D G E H O G s
11.02.20
✎
12:39
|
(20) Хорошая попытка, но нет
|
|||
23
vi0
11.02.20
✎
12:39
|
(0) Зачем у тебя условие по Проведен и по transaction_id если ты передаешь одну ссылку?
ГДЕ Таблица2.Проведен И Таблица2.transaction_id <> "" И Таблица2.Ссылка = &Док |
|||
24
H A D G E H O G s
11.02.20
✎
12:40
|
(23) Он писал, что условие по ссылке добавил по запаре
|
|||
25
vi0
11.02.20
✎
12:40
|
(0) зачем ты делаешь соединение если документ один у тебя?
почему не выбираешь сразу из регистра Нумератор ? |
|||
26
vi0
11.02.20
✎
12:42
|
(0) откуда у тебя УПОРЯДОЧИТЬ ПО Т1.Ссылка.Номер
если в выборке нет ссылки? покажи корректный запрос, а то много неточностей и отсюда неверные рассуждения у читающих |
|||
27
olo_lo1
11.02.20
✎
12:43
|
(24) Спасибо, без ВТ взлетело.
ВЫБРАТЬ ПЕРВЫЕ 1000 Таблица2.transaction_id, Таблица2.amount, Таблица2.Номер, Таблица1.Номер КАК Номер2 ИЗ Документ.Транзакция КАК Таблица2 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Нумератор КАК Таблица1 ПО Таблица1.Номер есть NULL ГДЕ Таблица2.Проведен И Таблица2.transaction_id <> "" УПОРЯДОЧИТЬ ПО Таблица2.Номер |
|||
28
Simod
11.02.20
✎
12:43
|
(0) "Нумератор" в РС это документ? Если имеет составной тип, то
УПОРЯДОЧИТЬ ПО Т1.Ссылка.Номер будет работать "не очень". |
|||
29
H A D G E H O G s
11.02.20
✎
12:43
|
(27) Епстественно
|
|||
30
olo_lo1
11.02.20
✎
12:43
|
(25) там нет нужного документа, схема немного сложнее, описывать ее не стал.
|
|||
31
Simod
11.02.20
✎
12:45
|
+(28) Точнее, вообще не понятно, откуда берется "Ссылка", есть в ВТ "Т1" ее вообще нет.
|
|||
32
Said_We
11.02.20
✎
12:46
|
(0) Нумиратор, составной тип у поля "Документ"?
|
|||
33
Simod
11.02.20
✎
12:47
|
(27) Как бы это запрос совсем не идентичен (0).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |