|
Разная скорость выполнения запроса | ☑ | ||
---|---|---|---|---|
0
Rpik
02.03.23
✎
20:23
|
Подскажите в чем может быть огромная разница в выполнении двух запросов. Отличаются они только отбором. В первом Запросе отбор идет по "Партнер", а во втором по "Грузополучатель".
Первый запрос выполняется за 0,022 секунды, а второй за 3,425 секунды!!!! -------------1------------- ВЫБРАТЬ ЗаказКлиента.Ссылка КАК Ссылка, ЗаказКлиента.СуммаДокумента КАК СуммаДокумента, ЗаказКлиента.Склад КАК Склад, ЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ГДЕ ЗаказКлиента.ДатаОтгрузки >= ДАТАВРЕМЯ(2023, 1, 1) И ЗаказКлиента.ДатаОтгрузки <= ДАТАВРЕМЯ(2023, 12, 31) И ЗаказКлиента.Партнер = &Партнер И ЗаказКлиента.Проведен = ИСТИНА --------------2------------------ ВЫБРАТЬ ЗаказКлиента.Ссылка КАК Ссылка, ЗаказКлиента.СуммаДокумента КАК СуммаДокумента, ЗаказКлиента.Склад КАК Склад, ЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента ГДЕ ЗаказКлиента.ДатаОтгрузки >= ДАТАВРЕМЯ(2023, 1, 1) И ЗаказКлиента.ДатаОтгрузки <= ДАТАВРЕМЯ(2023, 12, 31) И ЗаказКлиента.Грузополучатель = &Грузоплучатель И ЗаказКлиента.Проведен = ИСТИНА |
|||
1
Мультук
гуру
02.03.23
✎
21:56
|
(0)
1) Сколько раз выполнялись запросы ? Это среднее время ? 2) Сколько записей возвращают запросы? Если первый 10 и второй 10 000, то ... 3) Можно не полениться и включить в консоле запросов "Показывать план". 4) Можно глянуть, а вдруг "кто-то" создал по "Партнер" индекс |
|||
2
Garykom
гуру
02.03.23
✎
22:02
|
(0) Все просто
1-й запрос выполняется очень часто, СУБД уже оптимизировалась под него, по сути из кэша 2-й очень редко |
|||
3
Garykom
гуру
02.03.23
✎
22:03
|
(2)+ это если исключен п.4 из (1)
|
|||
4
Garykom
гуру
02.03.23
✎
22:03
|
Ну или тупо поле Грузополучатель у почти всех клиентов NULL ))
|
|||
5
Garykom
гуру
02.03.23
✎
22:04
|
(4) *у почти всех ЗаказКлиента
|
|||
6
rudnitskij
02.03.23
✎
22:17
|
(4) или составного типа
|
|||
7
Garykom
гуру
02.03.23
✎
22:21
|
(6) вариант
|
|||
8
Ivan_495
02.03.23
✎
22:25
|
а без этих отборов запрос за сколько проходит?
|
|||
9
Жан Пердежон
03.03.23
✎
00:29
|
(0) план запроса посмотри;
Это УТ/ERP? По партнеру нет индекса разе? |
|||
10
Rpik
03.03.23
✎
08:15
|
(1) 1) Сколько раз выполнялись запросы ? Это среднее время ?
сотню раз 2) Сколько записей возвращают запросы? Если первый 10 и второй 10 000, то ... 1-й 12, 2-й 40 |
|||
11
Rpik
03.03.23
✎
08:16
|
(2) Файловая база тоже умеет "подстраиваться" (оптимизироваться) или в отличие от СУБД нужто что-то делать ручками?
|
|||
12
Rpik
03.03.23
✎
08:17
|
(4) >>Ну или тупо поле Грузополучатель у почти всех клиентов NULL ))
а вот тут в самую точку. у 95% заказов поле грузополучатель не заполнено. Поле имеет тип "Контрагент" |
|||
13
Rpik
03.03.23
✎
08:20
|
(8) >> а без этих отборов запрос за сколько проходит?
без отбора по грузополучателю запрос выполняется 0,5 секунды на файловой базе. количество выборки 10к+ |
|||
14
Rpik
03.03.23
✎
08:21
|
(9) >Это УТ/ERP? По партнеру нет индекса разе?
это КА2, пойду искать инфу как посмотреть существующие индексы |
|||
15
lodger
03.03.23
✎
10:31
|
(14) открываешь документ в конфиге, среди реквизитов находишь Партнер, смортишь у него свойство Индексировать
|
|||
16
Rpik
03.03.23
✎
10:47
|
(15) Спасибо, Оба реквизита не индексируются
|
|||
17
magicSan
03.03.23
✎
10:51
|
(12) и с чего бы это влиять на скорость?
|
|||
18
Rpik
03.03.23
✎
10:56
|
(17) Не совсем вас понял. количество null не влияет на скорость? или это был сарказм и это влияет напрямую?
|
|||
19
Адинэснег
03.03.23
✎
11:07
|
(12) тогда там пустая ссылка
|
|||
20
Адинэснег
03.03.23
✎
11:07
|
по 100 раз хотяб выполни, и среднее посчитай
|
|||
21
magicSan
03.03.23
✎
11:08
|
(18) во первых там пустая ссылка, во вторых если бы ыбл нулл с чего ему влять на скорость?
|
|||
22
magicSan
03.03.23
✎
11:09
|
(20) там в любом случае будет полное сканирование, чтоб увидеть кэш достаточно одного раза
|
|||
23
magicSan
03.03.23
✎
11:11
|
(18) скока документов в базе? У тебя не скорость выполнения запроса показывает а скорость вывода скорее всего.
|
|||
24
Повелитель
03.03.23
✎
11:11
|
(0) Думаю Партнер проиндексирован, а грузополучатель Нет
|
|||
25
Адинэснег
03.03.23
✎
11:15
|
(23) щас окажется вывод 3 записей vs 3 млн
|
|||
26
Адинэснег
03.03.23
✎
11:15
|
а запрос одинаково +/- работал)
|
|||
27
Rpik
03.03.23
✎
11:16
|
по обоим реквизитам индекса НЕТ
Всего документов около 50к в результате первого запроса выводится 159 записей(скорость 0,016 сек), в результате второго 14(скорость 3,071 сек) |
|||
28
Ivan_495
03.03.23
✎
11:21
|
если 0.5 устраивает, то результат без отборов во врем табл, а в ней уже отбор. или смотри запрос в sql профайлере
|
|||
29
magicSan
03.03.23
✎
11:26
|
(28) чо там на него смотреть? там тоже самое
|
|||
30
magicSan
03.03.23
✎
11:27
|
(27) серверм мс?
|
|||
31
НЕА123
03.03.23
✎
11:30
|
ставлю на составной тип. все-таки.
попробуй ВЫРАЗИТЬ(ЗаказКлиента.Грузополучатель КАК Справочник.Контрагенты) |
|||
32
magicSan
03.03.23
✎
11:31
|
(31) ветку читай перед ставками (12
) |
|||
33
НЕА123
03.03.23
✎
11:35
|
(32)
читал. но тут всему верить... как измерял скорость тоже непонятно. |
|||
34
Rpik
03.03.23
✎
11:35
|
(28) через виртуальную таблицу получилось даже дольше. примерно на 10%
|
|||
35
Ivan_495
03.03.23
✎
11:38
|
контрагенты и партнеры используется?
|
|||
36
Rpik
03.03.23
✎
11:46
|
(35) в каком смысле используются? Пользователями? в КА2 пользователям доступен справочник Партнеры. справочник "Контрагенты", как я понимаю, заполняется системой сам.
|
|||
37
Ботаник Гарден Меран
03.03.23
✎
11:51
|
КритерийОтбора
|
|||
38
Rpik
03.03.23
✎
12:00
|
(37) в конфигурации действительно присутствует КритерииОтбора.ДокументыПоПартнеру и в нем есть Реквизит Документ.ЗаказКлиента.Реквизит.Партнер
Насколько он влияет на мой запрос затрудняюсь ответить. Я все же думал он немного для других вещей (или нет?) |
|||
39
magicSan
03.03.23
✎
12:01
|
(38) ни на сколько
|
|||
40
Ботаник Гарден Меран
03.03.23
✎
12:02
|
"При включении в конфигурацию критерия отбора система не создает никаких таблиц, однако для оптимизации поиска создается индекс по каждому реквизиту, который указан в составе критериев отбора."
RTFM |
|||
41
magicSan
03.03.23
✎
12:15
|
(40) и для того чтоб его использовать надо использовать критерии отбора логика
|
|||
42
magicSan
03.03.23
✎
12:16
|
хотя .... (0) глянь ПолучитьСтруктуруХраненияБазыДанных()
|
|||
43
timurhv
03.03.23
✎
12:37
|
(27) Уверены? Скорее всего, он есть в критериях отбора
|
|||
44
Rpik
03.03.23
✎
13:04
|
Скорее всего вы правы. все дело в критериях отбора, а значит значительно ускорить данный запрос, простой оптимизацией нельзя
|
|||
45
magicSan
03.03.23
✎
13:16
|
(44) попробуй так
ГДЕ ЗаказКлиента.Грузополучатель = &Грузоплучатель и ЗаказКлиента.Проведен = ИСТИНА и ЗаказКлиента.ДатаОтгрузки >= ДАТАВРЕМЯ(2023, 1, 1) И ЗаказКлиента.ДатаОтгрузки <= ДАТАВРЕМЯ(2023, 12, 31) (0) на 25 тысячах отработатывает мгновенно |
|||
46
Кир Пластелинин
03.03.23
✎
13:17
|
(40) почему? если рассматривать с точки зрения субд, то при добавлении реквизита в критерии отбора будет создан индекс для таблицы (при условии, что для него не стояло индексирование изначально). а там уж оптимизатор будет строить план запроса исходя из этого
|
|||
47
Rpik
03.03.23
✎
13:21
|
(45) пробовал разницы нет. да и "почти мгновенно" это сколько в секундах?
|
|||
48
Кир Пластелинин
03.03.23
✎
13:28
|
(47) да проиндексируйте уже этот реквизит в экспериментальных целях на тестовом контуре и сделайте замеры
|
|||
49
Rpik
03.03.23
✎
13:38
|
(48) после индексации результаты по скорости выполнения выровнялись.
всем спасибо |
|||
50
magicSan
03.03.23
✎
13:42
|
(47) нету секуд - мгновенно
|
|||
51
Rpik
03.03.23
✎
13:45
|
(50) "нету секуд - мгновенно" согласен, но вы же написали "почти мгновенно")
|
|||
52
ptiz
03.03.23
✎
15:37
|
(44) Добавь отбор по Партнеру дополнительно к отбору по Грузополучателю.
|
|||
53
trad
03.03.23
✎
16:12
|
(0) в (37) правильный ответ
(38), (39) - влияет |
|||
54
magicSan
03.03.23
✎
19:41
|
(53) да , (40) красава "При включении в конфигурацию критерия отбора система не создает никаких таблиц, однако для оптимизации поиска создается индекс по каждому реквизиту, который указан в составе критериев отбора."
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |