|
Как правильнее в запросе сравнить две таблицы? | ☑ | ||
---|---|---|---|---|
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
|
(13) если только факт несовпадения то
https://fastcode.im/Templates/BspDetails/obshhijmodul-obshhegonaznacheniya-kollekciiidentichny/kollekcii-identichny |
|||
19
Маленький Вопросик
16.12.24
✎
18:20
|
я бы поигрался внутренним соединением, а потом полученную таблицу использовал как фильтр-отбор...
|
|||
20
Маленький Вопросик
16.12.24
✎
18:22
|
ну или (15)
думаю, что быстродействие будет одинаковое |
|||
21
Simod
17.12.24
✎
09:26
|
(15) См. (10), (13).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |