Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по запросу ОБЪЕДИНИТЬ

Вопрос по запросу ОБЪЕДИНИТЬ
Я
   ksergey
 
05.10.18 - 15:55
Добрый день

Платформа 8.3.7
Конфигурация УТ 10.3 SQL  сильно дописана
Справочник.Номенклатура содержит 4 реквизита  значений Артикула:
-реквзит Артикул
-реквизит АртикулДоп
-ТЧ Артикулы.Артикул
-ТЧ АртикулыДоп.Артикул


Сталкнулся с одной ситуацией, связанной с использованием запроса в поиске товара по артикулу.
Пытаясь как-то "ускорить" работу Запроса1  немного переделал  его в Запрос2.
Есть 2 схожих запроса (через ОБЪЕДИНИТЬ из 4-х источников), 
в которых выбирается Номенклатура по условию  Артикул ПОДОБНО &Отбор    
где условие отбора    Отбор = "%"+стрПоиска+"%";


Запрос1.Текст = 
    "  ВЫБРАТЬ Н1.Ссылка КАК Ссылка
    |    ИЗ Справочник.Номенклатура КАК Н1
    |    ГДЕ  Н1.Артикул + ""|"" + Н1.АртикулДоп ПОДОБНО &Отбор
    |    
    |    ОБЪЕДИНИТЬ
    |    
    |    ВЫБРАТЬ Н2.Ссылка
    |    ИЗ  Справочник.Номенклатура.Артикулы КАК Н2
    |    ГДЕ  Н2.Артикул ПОДОБНО &Отбор
    |    
    |    ОБЪЕДИНИТЬ
    |    
    |    ВЫБРАТЬ Н3.Ссылка
    |    ИЗ Справочник.Номенклатура.АртикулыДоп КАК Н3
    |    ГДЕ  Н3.Артикул ПОДОБНО &Отбор";


Запрос2.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 100
    |    ВЗ.Ссылка
    |ИЗ
    |    (ВЫБРАТЬ Н1.Ссылка КАК Ссылка
    |    ИЗ Справочник.Номенклатура КАК Н1
    |    ГДЕ  Н1.Артикул + ""|"" + Н1.АртикулДоп ПОДОБНО &Отбор
    |    
    |    ОБЪЕДИНИТЬ
    |    
    |    ВЫБРАТЬ Н2.Ссылка
    |    ИЗ Справочник.Номенклатура.Артикулы КАК Н2
    |    ГДЕ  Н2.Артикул ПОДОБНО &Отбор
    |    
    |    ОБЪЕДИНИТЬ
    |    
    |    ВЫБРАТЬ Н3.Ссылка
    |    ИЗ Справочник.Номенклатура.АртикулыДоп КАК Н3
    |    ГДЕ  Н3.Артикул ПОДОБНО &Отбор)  КАК ВЗ";



Мне не совсем понятны результаты замеров скорости этих запросов.

Ниже приведены результаты замера выполнения запросов на базе 1,3млн. записей
при различных (по длине) строках поиска артикула:

стрПоиска = 51248220072   <--- ПОЛНОЕ СОВПАДЕНИЕ С АРТИКУЛОМ
Запрос1: выбрано записей 3  за 1,344 сек
Запрос2: выбрано записей 3  за 6,375 сек

5124822007 =====================
Запрос1: выбрано записей 3  за 1906
Запрос2: выбрано записей 3  за 4625

512482200 =====================
Запрос1: выбрано записей 3  за 1796
Запрос2: выбрано записей 3  за 5000

51248220 =====================
Запрос1: выбрано записей 3  за 1141
Запрос2: выбрано записей 3  за 6063

5124822 =====================
Запрос1: выбрано записей 22  за 1140
Запрос2: выбрано записей 22  за 4626

512482 =====================
Запрос1: выбрано записей 74  за 1406
Запрос2: выбрано записей 74  за 5016

51248 =====================
Запрос1: выбрано записей 200  за 1297
Запрос2: выбрано записей 100  за 3969

5124 =====================
Запрос1: выбрано записей 1 410  за 1297
Запрос2: выбрано записей 100   за 0,500

512 =====================
Запрос1: выбрано записей 17 304  за 1688
Запрос2: выбрано записей 100  за 0,125

51 =====================
Запрос1: выбрано записей 188 826  за 2344
Запрос2: выбрано записей 100  за 0,016

5 =====================
Запрос1: выбрано записей 958 206  за 9048
Запрос2: выбрано записей 100  за  0,031

1 =====================
Запрос1: выбрано записей 1 333 697  за 11016
Запрос2: выбрано записей 100  за  0,016


Вопрос ко всем - объясните почему такое поведение Запрос2  для  "длинной" строки поиска?  
(это результаты из верхней части списка - когда Запрос1 отрабатывает быстрее Запрос2)

Заранее благодарен
 
 
   shuhard
 
1 - 05.10.18 - 15:58
(0)[почему такое поведение]
посмотри запрос на стороне сиквела - узнаешь
   Ёпрст
 
2 - 05.10.18 - 16:21
хотя бы все воткнул в объединить, ну и в выбрать первые воткнул упорядочивание

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует