| 
    
        
     
     | 
    
  | 
Когда 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 ограничить в аппетитах на память.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |