Имя: Пароль:
1C
1С v8
+ MS SQL Server: Загрузка сервера при выполнении запроса
0 Петрович 2018
 
06.12.17
12:43
Как можно выполнить запрос таким образом, чтобы это минимально отражалось на скорости работы других пользователей? Лабаю сложный аналитический отчёт на рабочей базе (не спрашивайте, так надо), и при выполнении сложного запроса сильно тормозится работа пользователей. Можно ли как-то снизить приоритет выполнения моего запроса? Пусть он работает дольше, но не тормозит работу пользователей. Реально такое?
1 shadow_sw
 
06.12.17
12:46
в тестовой работать не учили?
2 Петрович 2018
 
06.12.17
12:48
(1) Лабаю сложный аналитический отчёт на рабочей базе (не спрашивайте, так надо)
3 ИТ директор
 
06.12.17
12:48
А почему ты думаешь что именно SQL Server тормозит юзеров, а не rphost?
4 Петрович 2018
 
06.12.17
12:52
(3) хз, может и rphost. Но, судя по моим запросам, думаю, они действительно долго выполняются на sql сервере.
5 lodger
 
06.12.17
12:56
(2) выселиться тебя из сервера - единственный вариант решения такой задачи.
из-за кроссплатформенной всеядности 1ски, механизмов управления процессом общения с субд нет.
если тебе не так уж и важна производительность и скорость исполнения, то почему ты еще не делаешь это на локальной копии? ну не хошь файловую - разверни себе сервер.
6 ИТ директор
 
06.12.17
12:58
По идее наверно как-то можно с помощью ТНФ вынести выполнение своего отчета на отдельный сервер 1С в кластере.

PS Вопросы идиотские как и сам подход.
7 Петрович 2018
 
06.12.17
13:04
(5) (6) Сегодня - так. У меня нет выбора. ((
8 lodger
 
06.12.17
13:05
(7) работай ночами.
9 pessimist
 
06.12.17
14:45
(0)
1. Понять каким местом система тормозит (память, IOPS, процессор. И добавить то чего не хватает.
2. Лабать сложный аналитический отчёт на другой базе или по ночам.
10 Tateossian
 
06.12.17
15:01
(0) В SQL есть панель отчетов стандартная. Там есть такой раздел "Транзакции, блокирующие работу" или как-то так. Еще там есть история. Если ваш запрос среди этих, тогда ищите в списке. Еще можно посмотреть ТОП-10 по среднему расходу по ЦП и по памяти, там можно посмотреть, входит ли он в топ-10. Если да, тогда искать способы оптимизации, возможно, структуру хранения. Но по факту никак не должно влиять, так как 1С для запросов вне транзакций, а равно для вывода в отчет использует грязное чтение, используя инструкцию WITH NO LOCK. У меня в свое время был мега отчет (правда, в нем были структурные ошибки), в нем было декартово произведение очень большое, но формирование отчета не влияло на работу других пользователей. Только сам формирующий мог минут по 10-15 ждать результата.
11 Петрович 2018
 
06.12.17
15:04
(10) У меня много запросов в пакете, много временных таблиц, много выборки. Расчётов и объединений не очень много.
12 ИТ директор
 
06.12.17
15:11
Обычно для скуля не проблема выполнить большой запрос и отдать данные. А вот rphost надуется и лопнет (ну может и не лопнет, но у всех юзеров которые висят на нем случатся тормоза). Единственный вариант распределить загрузку в случае с 1С - с помощью ТНФ вынести нагрузку на отдельный рабочий сервер 1С.
13 Seriy_Volk
 
06.12.17
15:13
(0) Если других вариантов нет и MS SQL крутится не на одноядерном процессоре, то можно попробовать поменять в свойствах SQL сервера в разделе "Дополнительно" параметр "максимальная степень параллелизма" с "0" на "2" и посмотреть на результат. У нас это значение равно число доступных ядер/4, полет нормальный. При 0 значении параметра изредка бывали случаи, когда пользователь своими настройками какого-нибудь мега отчета вгонял сервер в глубокую задумчивость.
14 Петрович 2018
 
06.12.17
15:14
(13) Спасибо! Сейчас гляну..
15 Tateossian
 
06.12.17
15:16
(11) В рамках пакета создаются и используются одни и те же временные таблицы. Там все сразу видно и профайлером и панелью мониторинга. А много выборки - это пальцем в небо.
16 aka MIK
 
06.12.17
15:17
(11) очищай ВТ через УДАЛИТЬ по ходу запроса, может они просто забивают кеш

В крайнем случаю репликация БД в базу для отчетов, ну или кластер серверов
17 aka MIK
 
06.12.17
15:18
Ну и оптимизируй запрос конечно, чем быстрее он отработает тем лучше всем )
18 Tateossian
 
06.12.17
15:22
(16) Сто процентов ошибка в архитектуре. Это изврат создавать базы для отчетов.

(16) В кэше не хранятся результаты запросов. В кэше хранятся ПЛАНЫ. А очистка только освобождает память.
19 Петрович 2018
 
06.12.17
15:24
(16) Очищаю.
20 ИТ директор
 
06.12.17
15:27
Вообще сложный аналитический отчет и 1С это вещи несовместимые. Для этих целей используют OLAP.
21 H A D G E H O G s
 
06.12.17
16:19
Сложный аналитический отчет и 1С - вещи совместимые, если вместо ссылок выводить представления ссылок.
22 H A D G E H O G s
 
06.12.17
16:20
(0) Запрос для отчета не должен выполняться дольше нескольких секунд, вы в курсе этого?
23 D3O
 
06.12.17
16:29
(22) поддерживаю. если долго шпилится запрос - значит что-то не так с запросом. анализ плана выполнения запроса может подсказать очень многое.
24 ИТ директор
 
06.12.17
16:31
(21) Вы щас какую-то банальщину сказали...
25 H A D G E H O G s
 
06.12.17
16:42
(24) Забейте, не важно.
26 mistеr
 
06.12.17
17:50
Кстати, интересная тема - управления ресурсами скуля из 1С. Запросы действительно *могут* быть долгими и ресурсоемкими. Пусть это будет не отчет, а рег. задание. Тот же расчет себестоимости, например. ЕМНИП, в последних версиях платформы появилась возможность прикрепить юзера к рабочему процессу. А значит, теоретически можно задействовать Resource Governor для всех соединений этого процесса. Если разработчики платформы подсуетятся и добавят поддержку. А может, уже? Есть кто в теме? (Особенно к ежикам вопрос :)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.