Имя: Пароль:
1C
1С v8
Оптимизация заспроса для ускорения обработки
,
0 rs1c
 
27.02.13
10:02
Доброго дня.
Есть регистр накоплений около 600 000 записей. База работает на SQL. Сделал простой запрос с 1 параметром, ковырял минут 15.
Как можно оптимизировать поиск. В запросе всегда будет только 1 параметр для поиска.
1 rs_trade
 
27.02.13
10:06
(0) Положенные регламенты для обсуживания базы выполняются?
2 Wobland
 
27.02.13
10:06
параметр сувать в параметры виртуальной таблицы
3 cViper
 
27.02.13
10:08
(0) На этом поле есть индекс?
4 rs1c
 
27.02.13
10:14
На поле индекса нет, с базами все ок, это не самый большой регистр :).
Сейчас попробую параметр в вирт таблицу закинуть, что то не подумал :(
5 rs_trade
 
27.02.13
10:18
(4) Эээ... а щас это условие ГДЕ ?
6 Wobland
 
27.02.13
10:18
(5) в ГДЕ ;)
7 Maxus43
 
27.02.13
10:19
запрос в студию
8 На стороне добра
 
27.02.13
10:21
выкладывай запрос
9 Maxus43
 
27.02.13
10:22
щас там как ГДЕ ПОДСТРОКА(Наименование,1,14) ПОДОБНО &Парам
:)
10 Полотенчик
 
27.02.13
10:29
Запрос!.. Запрос!.. - упрашивали дети (с)
11 H A D G E H O G s
 
27.02.13
10:31
(9) пффффф.

Где ТоварыНаСкладах.Регистратор.Ссылка.Дата<&ДатаСреза

Как то так.
12 Maxus43
 
27.02.13
10:32
(11)
ТоварыНаСкладах.Регистратор.Ссылка.Номенклатура.Родитель.Ссылка В ИЕРАРХИИ (&Трулала)
13 rs1c
 
27.02.13
10:34
"ВЫБРАТЬ
   |    ГруппыСтелажей.ИдКомплекта
   |ИЗ
   |    РегистрНакопления.ГруппыСтелажей.Обороты(, , , ИдКомплекта= ИдКомплекта) КАК ГруппыСтелажейОбороты";

Сделал так, отрабатывает примерно секунд 30. Криво?
14 Wobland
 
27.02.13
10:34
(12) ТоварыНаСкладах.Регистратор.Ссылка.Номенклатура.Родитель.Ссылка В ИЕРАРХИИ (ВЫБРАТЬ ГДЕ Наименование ПОДОБНО &Трулала)
15 Reset
 
27.02.13
10:36
(13) ИдКомплекта= ИдКомплекта
Всегда истина)
16 Reset
 
27.02.13
10:37
нет вру, исключается когда ИдКомплекта is null ;D
17 Maxus43
 
27.02.13
10:39
(13) тут уже от объёма зависит... врятли ускорить при таких параметрах. Период ограничивай
18 rs1c
 
27.02.13
10:41
Ну сейчас по скорости вроде лучше стало. Период ограничить невозможно так как этот регистр как раз для сверки служит и там нужно ползать по всем записям.
Сейчас думаем как оптимизировать этот регистр, чтоб хоть как то разгрузить его.
19 Широкий
 
27.02.13
10:41
(13) Попробуй как вариант обратиться к реальной таблице, а не к виртуальной
20 H A D G E H O G s
 
27.02.13
10:42
(18) Измерение индексирвовано?
21 chelentano
 
27.02.13
10:42
ответ в (15)
22 Широкий
 
27.02.13
10:42
(20) Не конечно , иначе бы не тупило
23 Reset
 
27.02.13
10:43
(18) Регистр оборотный или остатков? Сделайте оборотный
24 Широкий
 
27.02.13
10:43
ИдКомплекта= ИдКомплекта - тут точно параметр не передается?
25 rs1c
 
27.02.13
10:48
А проблема оказалась в другом.
Такой запрос:
"ВЫБРАТЬ
   |    ГруппыСтелажей.ИдКомплекта
   |ИЗ
   |    РегистрНакопления.ГруппыСтелажей.Обороты(, , , ИдКомплекта= ИдКомплекта) КАК ГруппыСтелажейОбороты";

он выкидывает все поле этого регистра не учитывая параметр, вот и глюки. т.е. в ТЗ все 600 000, а не 1 запись....
Чет я напортачил с параметрами...
26 Maxus43
 
27.02.13
10:49
бггг... ИдКомплекта = &ИдКомплекта
27 Reset
 
27.02.13
10:49
(25) Лол, а я думал что пошутил
28 rs_trade
 
27.02.13
10:50
(20)(22) Платформа по умолчанию индексирует.
29 rs1c
 
27.02.13
10:50
Maxus43 - прям в точку попал! Влет запрос то работает.
30 Maxus43
 
27.02.13
10:51
(28) и что? никто не мешает убрать индексирование. Более того - например в РС ведущие измерения нельзя индексировать вобще
31 Maxus43
 
27.02.13
10:51
(29) дак мы реально думали что ты скопипастил криво. никому в голову в релае не пришло что так написать можно)
32 rs1c
 
27.02.13
10:52
Коллеги. 0,46 секунды выполняется запрос. Все пучком, криворукий я неправильно задал параметр.
33 rs1c
 
27.02.13
10:52
Извините, за беспокойство а я то уже совсем подумал дело гиблое :(
34 SherifSP
 
27.02.13
10:55
(0) Прямой запрос?
35 rs1c
 
27.02.13
10:56
Такой запрос:
"ВЫБРАТЬ
   |    ГруппыСтелажей.ИдКомплекта
   |ИЗ
   |    РегистрНакопления.ГруппыСтелажей.Обороты(, , , ИдКомплекта=&ИдКомплекта) КАК ГруппыСтелажейОбороты";

Вот так и все просто впуливает.
36 H A D G E H O G s
 
27.02.13
10:56
(30) Они индексированны уже.
А по умолчанию - ничего не индексирует.
37 rs_trade
 
27.02.13
11:03
(30) Я не про галочку индексировать. А про индексы которые создает платформа как только ты создаешь измерение.
38 hhhh
 
27.02.13
11:07
(18) да, попробуй проверенный вариант:

ИдКомплекта= &ИдКомплекта
Ошибка? Это не ошибка, это системная функция.