|   |   | 
| 
 | Что оптимизировать, если запрос тупит!!?? | ☑ | ||
|---|---|---|---|---|
| 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 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 | 
        да, господа, спасибо большое за попытки помочь! :)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |