Имя: Пароль:
1C
1С v8
Что оптимизировать, если запрос тупит!!??
0 ParinovS
 
31.01.13
10:52
Добрый день! Есть регистр накопления, вид "Остатки" с 3-мя измерениями и 4-мя ресурсами. Создан запрос по всем полям виртуальной таблицы "ОстаткиИОбороты", в параметрах виртуальной таблицы задан только период - 1 день и периодичность "Регистратор". В выборке 218925 записей, запрос отрабатывает 52 сек. Но это за один день, приходится делать выборку и за больший период( пропорциональное увеличение времени).  Скажите это нормально? Хочу заметить, что "индексировать" стоит у 2-х измерений из трех (но я то отбора по измерениям не делаю все равно), пересчет индексов и их реструктуризацию проводил, итоги пересчитывал...
1 PR
 
31.01.13
10:52
Голову
2 НафНаф
 
31.01.13
10:56
а зачем это:
1. 4 ресурса
2. ОстаткиИОбороты по регистратору
3 Бешеная Нога
 
31.01.13
10:56
зачем тебе такой запрос без отборов? что ты дальше делаешь с полученным результатом запроса?
4 ParinovS
 
31.01.13
11:00
(1) трололо, не я это делал, я хочу понять как оптимизировать! (3) и тут отвечу, что не я делал, но требуется получать оргомную простыную с сылкой на документы. т.е. другими словами что 218925 строк из одной виртуальной таблицы  выбирается 52 секунды это нормально?????
5 PR
 
31.01.13
11:05
(4) При использовании регистратора виртуальная таблица не используется.
6 hhhh
 
31.01.13
11:07
(4) убрать регистратор оттуда - это же любому придурку понятно, чего глупые вопросы задаешь?
7 ParinovS
 
31.01.13
11:26
(6) я и спрашиваю если запрос выполняется так долго с РЕГИСТРАТОРОМ это нормально???  Я все описал, и меня волнует только то, нормально ли такое повидение и ВСЕ. а если не нормально, то что оптимизировать: железо, СУБД, делать может запрос хитреее (но поля нужны ВСЕ!!!!) НЕужели так трудно ответить, что-то типа того: Да запрос выполняется долго(должен быстрее), посомтри то, посмотри там и т.д. Вот ты, hhhh, придешь к доктору и скажешь, - "Доктор, у меня как то палец плохо двигается, может что с сустовом? может с нервными окончаниями? Может полечить его?" а он тебе "отрезать палец надо - это же любому придурку понятно, чего глупые вопросы задаешь?" hhhh, ты наверно ТОЛЬКО на форуме самоутвержаешься,оскорбляя людей - потому как больше и негде!
8 Бешеная Нога
 
31.01.13
11:27
(7) ты совершенно прав
9 НафНаф
 
31.01.13
11:28
(5) опять ты понятия путаешь
10 Humandra
 
31.01.13
11:42
(0) чтобы ответить, нормально ли это, мало информации
- сколько всего строк в регистре
- версия базы (файловая, скл, если второе - то какая СУБД)
- какой полный запрос
- какое железо

для второго пентиума и терабайтной базы - это прекрасный результат.
для крутого сервера с кучей ядер, оперативки итп и маленькой базы - медленновато будет, однако :)
11 Maxus43
 
31.01.13
11:42
запрос в студию
12 badboychik
 
31.01.13
11:42
одна польза от этого запроса - им удобно железо тестить. Добавь еще 8 гигов оперативы, прогони, запиши результат. Поставь мощный проц и базу на SSD диск. Запиши результат, отчитайся тут. В общем, продолжай наблюдения.
13 Humandra
 
31.01.13
11:44
хотя необходимость такого запроса ставлю под сомнение. Может все же нужно что-то свернуть,а?
14 badboychik
 
31.01.13
11:45
15 ParinovS
 
31.01.13
11:46
и так:
1. Запрос


ВЫБРАТЬ
   ОстаткиОстаткиИОбороты.Склад,
   ОстаткиОстаткиИОбороты.Товар,
   ОстаткиОстаткиИОбороты.ХозОперация,
   ОстаткиОстаткиИОбороты.КоличествоНачальныйОстаток,
   ОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток,
   ОстаткиОстаткиИОбороты.КоличествоОборот,
   ОстаткиОстаткиИОбороты.КоличествоПриход,
   ОстаткиОстаткиИОбороты.КоличествоРасход,
   ОстаткиОстаткиИОбороты.СуммаНачальныйОстаток,
   ОстаткиОстаткиИОбороты.СуммаКонечныйОстаток,
   ОстаткиОстаткиИОбороты.СуммаОборот,
   ОстаткиОстаткиИОбороты.СуммаПриход,
   ОстаткиОстаткиИОбороты.СуммаРасход,
   ОстаткиОстаткиИОбороты.БухСуммаНачальныйОстаток,
   ОстаткиОстаткиИОбороты.БухСуммаКонечныйОстаток,
   ОстаткиОстаткиИОбороты.БухСуммаОборот,
   ОстаткиОстаткиИОбороты.БухСуммаПриход,
   ОстаткиОстаткиИОбороты.БухСуммаРасход,
   ОстаткиОстаткиИОбороты.СуммаНДСНачальныйОстаток,
   ОстаткиОстаткиИОбороты.СуммаНДСКонечныйОстаток,
   ОстаткиОстаткиИОбороты.СуммаНДСОборот,
   ОстаткиОстаткиИОбороты.СуммаНДСПриход,
   ОстаткиОстаткиИОбороты.СуммаНДСРасход
ИЗ
   РегистрНакопления.Остатки.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, , ) КАК ОстаткиОстаткиИОбороты
16 badboychik
 
31.01.13
11:47
и рейд из SSD дисков, чтоб минимум 1-2 ГБ/сек скорость чтения была
17 ParinovS
 
31.01.13
11:49
база скульная, версия платформы 8.2.13.219 база весит пордяка 10 Гб, скуль 2008. Конфа самописка, нечно похожее на Розницу. Сервак быстр 16 ядер, 48 Гб диски у админов надо уточнять, но явно не медленные.
18 ParinovS
 
31.01.13
11:53
Сорри ,я не тот запрос прислал) это я уже считал время если убрать периодичность "Регистратор" вот исходный:


ВЫБРАТЬ
   ОстаткиОстаткиИОбороты.Склад,
   ОстаткиОстаткиИОбороты.Товар,
   ОстаткиОстаткиИОбороты.ХозОперация,
   ОстаткиОстаткиИОбороты.КоличествоНачальныйОстаток,
   ОстаткиОстаткиИОбороты.КоличествоКонечныйОстаток,
   ОстаткиОстаткиИОбороты.КоличествоОборот,
   ОстаткиОстаткиИОбороты.КоличествоПриход,
   ОстаткиОстаткиИОбороты.КоличествоРасход,
   ОстаткиОстаткиИОбороты.СуммаНачальныйОстаток,
   ОстаткиОстаткиИОбороты.СуммаКонечныйОстаток,
   ОстаткиОстаткиИОбороты.СуммаОборот,
   ОстаткиОстаткиИОбороты.СуммаПриход,
   ОстаткиОстаткиИОбороты.СуммаРасход,
   ОстаткиОстаткиИОбороты.БухСуммаНачальныйОстаток,
   ОстаткиОстаткиИОбороты.БухСуммаКонечныйОстаток,
   ОстаткиОстаткиИОбороты.БухСуммаОборот,
   ОстаткиОстаткиИОбороты.БухСуммаПриход,
   ОстаткиОстаткиИОбороты.БухСуммаРасход,
   ОстаткиОстаткиИОбороты.СуммаНДСНачальныйОстаток,
   ОстаткиОстаткиИОбороты.СуммаНДСКонечныйОстаток,
   ОстаткиОстаткиИОбороты.СуммаНДСОборот,
   ОстаткиОстаткиИОбороты.СуммаНДСПриход,
   ОстаткиОстаткиИОбороты.СуммаНДСРасход
ИЗ
   РегистрНакопления.Остатки.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК ОстаткиОстаткиИОбороты
19 Humandra
 
31.01.13
11:54
- сколько всего строк в регистре
20 Humandra
 
31.01.13
11:54
еще - где этот запрос выполняется. Не в СКД, часом ли.
21 badboychik
 
31.01.13
11:56
можно еще перевести запрос на прямой T-SQL и выполнять напрямую к скулю
22 ParinovS
 
31.01.13
11:59
посмотрел в SQL табличке - всего 2 млн записей записей.
23 Humandra
 
31.01.13
12:00
я бы поймала запрос в Profiler в MS SQL, и попробовала бы выполнить в скулевской консоли.
Поймайте, и сюда выложите, ок?
52 сек даже для такого монстра - все же многовато, ИМХО.
24 Леха Дум
 
31.01.13
12:01
(18) а где в выборке сам регистратор собственно?
25 Humandra
 
31.01.13
12:03
(24) Кстати, да! Зачем периодичность до регистратора, если регистратор не используете?
26 ParinovS
 
31.01.13
12:06
(23) через минут 5-10 думаю смогу отловить. (24) ну даже без регистратора все и так печально выполняется. Видимо я когда возвращал запрос к исходному виду, поле не добавил..
27 Леха Дум
 
31.01.13
12:07
(26) если ты не выбираешь в отчет регистратор, то и периодичность ставь "ПЕРИОД"
28 ParinovS
 
31.01.13
12:10
нет, регистратор как раз таки нужен. Я просто в запросе его не вывел. (27) если бы так все просто было))))
29 Леха Дум
 
31.01.13
12:12
(28) еще вопрос - как дальше ты эти 218 тыс. строк использовать собираешься?
30 Rovan
 
гуру
31.01.13
12:14
(0) итоги по регистру рассчитаны по какой день ?
31 iceman2112
 
31.01.13
12:16
нормально. Все ответы в книге "Проф разработка 8.0" или 2012 (новенькая)
32 ParinovS
 
31.01.13
12:16
(29) использую не я, использовали разработчики ( в случае отборов, отборы формируются  - подставляются параметры в виртуальную таблицу) но если без отборов делать, то отчет дико долго формируется. Но сам отчет бухгалтерам нравится (и то что можно играться с настройками по отбору в регистраторе)
33 ParinovS
 
31.01.13
12:17
(30) по 31.01.2013
34 Fragster
 
гуру
31.01.13
12:20
а зачем автору 218925 записей?
35 Rovan
 
гуру
31.01.13
12:22
(17) сколько рабочих процессов 1С ?
36 Rovan
 
гуру
31.01.13
12:23
(34) видимо бухи любят так делать...выводят отчет в 200 тыс. строк ...ждут 10 минут, что бы найти там 1 строку и посмотреть какая там сумма
37 ParinovS
 
31.01.13
12:24
(34) не могу сказать, но надеюсь отчет полностью переделывать не придется :) (35) - один
38 ИС-2
 
naïve
31.01.13
12:28
(0) прежде всего проанализируй как закрывается регистр. Скорее всего по какому-то из выбираемых ресурсов регистр не закрыт.

ОстаткиИобороты по регистратору это фактически тож самое, что и реальная таблица - может она будет работать быстрее. Если это не помогает, то у ключевых измерений включи индексирование, расположи их в порядке частоты обращения стрелками вверх-вниз (если часто получаешь доступ к измерению склад,  то он должен быть выше измерения номенклатура)
39 ParinovS
 
31.01.13
12:36
я пока не хочу понимать, зачем и почему используется такая выборка. Сам отчет нравится, не нравится - время его выполнения. Хочется понять - почему так долго отрабатывает запрос и уже дальше разбираться. Если запрос так долго отрабатывает потому что такой запрос на таких данных долго отрабатывает, буду переделывать, но а если что-то не так с базой или с машиной или со скулем?
40 Cube
 
31.01.13
12:37
(39) А покажи-ка нам пример отчета, то , что видят бухи...
41 Rovan
 
гуру
31.01.13
12:42
(37) на 16 ядрах 1 процесс..... добавь еще 5 !
42 ParinovS
 
31.01.13
12:44
(40) блин, я ж в пейнте запарюсь циферки закрашивать :)
(41) не в моей власти, с админами буду решать вопрос - но идея хорошая.
В общем, мне уже кажется, что стоит переделать отчет...
43 ParinovS
 
31.01.13
12:48
да, господа, спасибо большое за попытки помочь! :)
2 + 2 = 3.9999999999999999999999999999999...