|   |   | 
| 
 | Как правильнее в запросе сравнить две таблицы? | ☑ | ||
|---|---|---|---|---|
| 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).     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |