Имя: Пароль:
1C
1С v8
Когда SQL жрет память
,
0 spleen
 
04.04.12
13:26
Есть одни очень не плохой сервер i7, 16Gb RAM, SSD винты база до 10GB
Вообщем все летает.
Но иногда какой-то манагер задает отчет в УТ такой, что на пол дня ставит этот сервер на колени. И SQL-процесс загружен на 90-100%.
Как-то можно предотвратить такие "чудо запросы" от пользователей, или как оставить уже запущенный, без перегрузки сервиса?
1 _Demos_
 
04.04.12
13:30
переписать запрос
2 КМ155
 
04.04.12
13:30
(0)[Как-то можно предотвратить такие "чудо запросы" от пользователей]
хорошо помогают простреленные коленки
3 butterbean
 
04.04.12
13:31
да, есть любители запустить отчетик по все измерениям за весь период да еще со свойствами/категориями
я на таких натравливаю их же коллег
4 spleen
 
04.04.12
13:31
(1) Типовые отчеты.
Задают детализацию и период за 3 года, а там млн. записей.
5 Гефест
 
04.04.12
13:32
(4) В таком случае точно (2)
6 Дикообразко
 
04.04.12
13:33
(1) сделать базу для отчетов
7 spleen
 
04.04.12
13:33
(5) от 3 до 5 можно схлопотать по УК. )))
8 Дикообразко
 
04.04.12
13:33
хотя скорее всего просто что то криво настроено...
9 spleen
 
04.04.12
13:34
(6) И отдельный сервер тоже для отчетов
10 spleen
 
04.04.12
13:34
(8) Например?
11 rs_trade
 
04.04.12
13:34
(0) в оперативной базе ограничить периоды формирования отчетов
12 spleen
 
04.04.12
13:36
(11) Где это сделать?
13 ptrtss
 
04.04.12
13:36
Не, правильный вопрос. SQL любит все ядра грузить. Можно как-нибудь ограничить кол ядер на один запрос?
14 spleen
 
04.04.12
13:37
(13) А если запросов 100?
15 shamannk
 
04.04.12
13:38
Тупой SQL я знал что от работы Кони дохнут но от него я этого не ожидал. На работе мощьное железо а эта гадость гаснит при первой панике.
16 dk
 
04.04.12
13:38
17 ptrtss
 
04.04.12
13:38
(14) Ты же говоришь "какой-нибудь манагер". Это одно лицо обычно. Если у вас вся контора такая то только (2)
18 Дикообразко
 
04.04.12
13:40
(10) например, руки настройщику поломать
19 rs_trade
 
04.04.12
13:40
(13)  max degree of parallelism = 1
20 Дикообразко
 
04.04.12
13:41
10 gb база это вообще не о чем для нормального сервака
21 Дикообразко
 
04.04.12
13:41
тем более когда вся база в оперативке
22 КМ155
 
04.04.12
13:44
(20)
(21)
база целиком поместилась в память и поэтому CPU загружен на 100%
23 shamannk
 
04.04.12
13:45
Как SQL справляется с высокой нагрузкой? Никак, гасит всех. Файловая? очень долго запрос работает но остальные юзверы пашут Проверенно!!! (конечно тупые запросы это плохо)
24 Wern
 
04.04.12
13:45
Действительно ограничьте запросы текущим годом и/или количеством разрезов, если нужно больше по спец. разрешению.
25 Дикообразко
 
04.04.12
13:47
(22) что он полдня там делает?
за это время себестоимость посчитается несколько раз
26 spleen
 
04.04.12
13:48
Какой нибудь ABC по всем клиентам с разворотом по документам
27 Ахиллес
 
04.04.12
13:48
Это всё полумеры. В отчет добавь контроль времени исполнения. Если за 5 минут отчет не сформировался, тогда ЗавершитьРаботуСистемы:)
Думаю через запуск регламентного задания такое организовать возможно.
28 spleen
 
04.04.12
13:49
(27) хм. Кто-то такое делал?
29 Ахиллес
 
04.04.12
13:51
(28) Я нет. Просто фантазия на заданную тему :-)
30 spleen
 
04.04.12
13:52
(29) Просто слабо себе представляю реализацию.
Может не такая у меня фантазия )))
31 Ахиллес
 
04.04.12
13:57
(30) Отчет в начале работы запускает регламентное задание, которое через установленное время проверяет флаг выполнения отчета (флаг выставляется после окончания работы отчета). Как ты флаг этот реализуешь это тысяча и один способ есть. Тук, как говорится и Флаг тебе в руки.
32 spleen
 
04.04.12
14:02
(31) Спасибо, подумаю.
33 ptrtss
 
04.04.12
14:22
(27) С SQL запрос так не снимется
34 rs_trade
 
04.04.12
14:23
(31) ерунда все это. автор, начни с ограничения периодов в отчетах. запретить пустые даты.
35 Andr10K
 
04.04.12
14:25
Можно SQL ограничить в аппетитах на память.
Независимо от того, куда вы едете — это в гору и против ветра!