Имя: Пароль:
1C
 
Как правильнее в запросе сравнить две таблицы?
0 Lama12
 
16.12.24
15:14
Нужно сравнить две таблицы. Структура одинаковая.
Варианты сравнения, через объединение и через соединение.
Как правильно, с точки зрения быстродействия?
1 Fragster
 
16.12.24
15:15
объединение с доп колонкой (+1 в одной таблице, -1 - в другой) + сворачивание
2 Волшебник
 
16.12.24
15:15
сделайте оба варианта и замер производительности
3 Lama12
 
16.12.24
15:17
(1) Так и делаю. Есть сомнения.
(2) Замер производительности штука хорошая, но он же не учитывает статистику которую использует построитель плана выполнения запроса. Хотя может я придираюсь и проблемы вообще нет.
4 Волшебник
 
16.12.24
15:18
(3) Действительно. Сколько строк в таблицах?
5 Lama12
 
16.12.24
15:20
(4) Не больше 1000.
6 Волшебник
 
16.12.24
15:21
(5) Тогда не заморачивайтесь. Применяйте любой способ, который выдаёт правильный результат.
7 Lama12
 
16.12.24
15:21
Спасибо!
8 maxab72
 
16.12.24
15:42
"через объединение и через соединение." ЕМНИП пару-тройку лет назад кто-то на форуме приводил статистику. Объединение производилось в большинстве случаем быстрее, вроде потому что серверу надо меньше поисков строк запускать в процессе. Но там еще от индексированности исходных таблиц, простые данные или нет и еще кучи всего зависело.
9 Garykom
 
16.12.24
16:21
(0) Цель просто сравнить, совпадают или нет?
Расхождения не нужны?

Если да то всегда хэш быстрее
10 Simod
 
16.12.24
16:22
(0) В зависимости от того, что необходимо получить, будет эффективнее тот или иной способ.
Что необходимо - найти совпадающие или отличающиеся? Или только факт несоответствия?
11 Конструктор1С
 
16.12.24
16:23
(0) а с чего вообще встал вопрос быстродействия?
12 Конструктор1С
 
16.12.24
16:24
(5) эээ... Такие микрообъемы можно хоть как сравнивать
13 Lama12
 
16.12.24
16:57
(10) Только факт несовпадения.
(11) Иногда нужно сомневаться в своих знаниях.
14 Simod
 
16.12.24
17:25
(13) Тогда:
ПОЛНОЕ СОЕДИНЕНИЕ
+
ГДЕ ЕСТЬ NULL в левой или правой таблице
+
ПЕРВЫЕ 1
15 Garykom
 
16.12.24
17:54
(14) Зачем?
Не проще выбрать различные с объединить все
И сравнить количество записей с двумя исходными?
16 Garykom
 
16.12.24
17:55
(14) Этот вариант нужен когда надо отличающиеся строки определить
17 Timon1405
 
16.12.24
17:55
18 Timon1405
 
16.12.24
18:11
19 Маленький Вопросик
 
16.12.24
18:20
я бы поигрался внутренним соединением, а потом полученную таблицу использовал как фильтр-отбор...
20 Маленький Вопросик
 
16.12.24
18:22
ну или (15)

думаю, что быстродействие будет одинаковое
21 Simod
 
17.12.24
09:26
(15) См. (10), (13).