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

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

Условия в запросе. Чем больше их тем медленнее результат

Условия в запросе. Чем больше их тем медленнее результат
Я
   arsik
 
31.10.18 - 14:50
Поясните знающие камрады. Если в запросе только 1 условие результат моментальный, 100 миллисекунд, если добавить еще условия то запрос выполняется уже раз в несколько медленнее.
Вот пример:
ВЫБРАТЬ
    КОЛИЧЕСТВО(CRM_ВзаимодействияСКлиентом.Период) КАК Период
ИЗ
    РегистрСведений.CRM_ВзаимодействияСКлиентом КАК CRM_ВзаимодействияСКлиентом
ГДЕ
    CRM_ВзаимодействияСКлиентом.Ответственный = &Ответственный//Условие 1

    И CRM_ВзаимодействияСКлиентом.ПодразделениеОтветственного = &ПодразделениеОтветственного//Условие 2

    И CRM_ВзаимодействияСКлиентом.СтатусРегистратора = &СтатусРегистратора//Условие 3

Если оставить только "Условие 1" - быстро, если добавить еще 2 и 3 то медленно. Почему?
Все поля в условиях индексированные.
Это норма или что то не так работает?
 
 
   1Сергей
 
1 - 31.10.18 - 14:53
А виртуальными таблицами почему не пользуетесь?
   Джинн
 
2 - 31.10.18 - 14:54
Все зависит от конкретной ситуации. В общем виде да, скорость падает. Насколько - зависит от массы факторов в конкретном случае. И далеко не факт, что Ваши индексы применяются вообще.
   Fragster
 
3 - 31.10.18 - 14:54
статистика живая? или база вообще файловая?
   unregistered
 
4 - 31.10.18 - 14:54
(1) А как и какими виртуальными таблицами в данном случае?
   d4rkmesa
 
5 - 31.10.18 - 14:54
(0) Статистика?
   H A D G E H O G s
 
6 - 31.10.18 - 14:56
(0)
mdop=0
или
статистика
   palsergeich
 
7 - 31.10.18 - 14:58
(0) а структуру регистра можно? со всеми галочками ИНДЕКСИРОВАТЬ. Очень похогже на то что при первом условии есть отдельный индекс, а вот при втором оптимизатор уже не может хороший план подобрать
   иубиповец
 
8 - 31.10.18 - 14:59
Может еще какие индексы есть, структуру можно.
   иубиповец
 
9 - 31.10.18 - 15:00
Попробуйте запрос с тремя условиями раздилить на объединить 3 запроса и в каждом по одному условию, будет быстрее или так же?
   palsergeich
 
10 - 31.10.18 - 15:00
1C:CRM, редакция 3.0 (3.0.7.1) я такого запроса не нашел.
 
 Рекламное место пустует
   palsergeich
 
11 - 31.10.18 - 15:00
Ой такого регистра
   arsik
 
12 - 31.10.18 - 15:01
(5) (6) Возможно статистика. Не могу пока сказать, доступа к скулю нет.
mdop=0  - это что?
   Fragster
 
13 - 31.10.18 - 15:03
(9) там И, а не ИЛИ
   palsergeich
 
14 - 31.10.18 - 15:03
Структуру регистра дай со всеми галками индексировать, тогда может получится сванговать
   youalex
 
15 - 31.10.18 - 15:03
(0) >>Все поля в условиях индексированные.

Для поиска по индексу - эти поля должны входить в один индекс. А если эти поля - реквизиты/ресурсы, то по каждому полю строится свой,  отдельный индекс: Поле+Измерение1-N

Поэтому одно условие (по одному полю) может быстрее отрабатывать.
   Timon1405
 
16 - 31.10.18 - 15:06
покажите скрин структуры регистра по измерениям
   arsik
 
17 - 31.10.18 - 15:13
(7) В нем много полей и записей около 60 миллионов. Почти все поля индексированы.
Вот структура. Желтым индексные поля.
https://i.imgur.com/hVaRqK7.png
   DrZombi
 
18 - 31.10.18 - 15:17
(17) Индексы не работают :)

https://its.1c.ru/db/metod8dev/content/1590/hdoc

+ навсякой

Регистр сведений
Непериодический регистр сведений
Индекс

Условие и описание

[ОРРХ | ОРНР1 +] Измерение1 + [Измерение2 +...] (Кластерный)

Есть хоть одно измерение регистра.
Индекс, включающий все измерения в том порядке, в котором они заданы при конфигурировании.
Индекс кластерный, если регистр независимый.

[ОРРХ | ОРНР1 +] ИзмерениеN + Измерение1 + [Измерение2 +...]

Измерению "ИзмерениеN" задано свойство "Индексировать" или свойство "Ведущее" и при этом это не первое и не единственное измерение.
Индекс, включающий все измерения. Первое поле - ИзмерениеN, затем все остальные измерения в том порядке, в котором они заданы при конфигурировании.

[ОРРХ | ОРНР1 +] Реквизит + Измерение1 + [Измерение2 +...]

Реквизиту "Реквизит" задано свойство "Индексировать".
Индекс в котором первое поле - Реквизит, затем все измерения в том порядке, в котором они заданы при конфигурировании.

[ОРРХ | ОРНР1 +] SimpleKey

Количество измерений больше одного. Используется для обхода регистра при реструктуризации, а также для выборки записей с использованием оптимального порядка обхода.

[ОРРХ | ОРНР1 +] Ресурс + Измерение1 + [Измерение2 +...]

Ресурсу "Ресурс" задано свойство "Индексировать".
Индекс в котором первое поле - Ресурс, затем все измерения в том порядке, в котором они заданы при конфигурировании.

Периодический регистр сведений
Индекс

Условие и описание

[ОРРХ | ОРНР1 +] Период + [Измерение1 + ...] (Кластерный)

Всегда.

[ОРРХ | ОРНР1 +] Измерение1 + [Измерение2 +...] + Период

Есть хоть одно измерение регистра.
Индекс, включающий все измерения в том порядке, в котором они заданы при конфигурировании и поле Период.

[ОРРХ | ОРНР1 +] ИзмерениеN + Период + Измерение1 + [Измерение2 +...]

Измерению "ИзмерениеN" задано свойство "Индексировать" или свойство "Ведущее" и при этом это не  единственное измерение.
Индекс, включающий поле Период и все измерения. Первое поле - ИзмерениеN, затем поле Период, затем все остальные измерения в том порядке, в котором они заданы при конфигурировании.

[ОРРХ | ОРНР1 +] Реквизит + Период + [Измерение1 + ...]

Реквизиту "Реквизит" задано свойство "Индексировать".
Индекс в котором первое поле - Реквизит, затем поле Период, затем все измерения в том порядке, в котором они заданы при конфигурировании.

[ОРРХ | ОРНР1 +] Ресурс + Период + [Измерение1 + ...]

Ресурсу "Ресурс" задано свойство "Индексировать".
Индекс в котором первое поле - Ресурс, затем поле Период, затем все измерения в том порядке, в котором они заданы при конфигурировании.
   DrWatson
 
19 - 31.10.18 - 16:06
Предположение 1. Старая статистика. SQL решает использовать другой индекс, получает по нему кучу записей, гораздо больше чем планировалось. И как следствие появляется неоптимальный скан для проверки остальных условий.
Предположение 2. Такой запрос исполняется не первый раз, причем до этого с другими параметрами он был быстрее. С этими параметрами старый план оказался неоптимальным с теми же сканами для проверки условий.

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