|   |   | 
| 
 | Оперативная память SQL Server | ☑ | ||
|---|---|---|---|---|
| 0
    
        Tester 06.11.19✎ 13:33 | 
        Всем привет.
 Как известно, MS SQL Server выедает всю выделенную ему память. Может кто подскажет, как узнать сколько оперативной памяти доступно для выполнения запроса в 1С в рамках этой выеденной памяти? https://d.radikal.ru/d06/1911/89/1a6f909edced.png | |||
| 1
    
        ДенисЧ 06.11.19✎ 13:34 | 
        Сколько свопа хватит     | |||
| 2
    
        Tester 06.11.19✎ 13:46 | 
        Просто началась проблема с тем, что одно из ночных регламентных заданий стало периодически падать с ошибкой "Недостаточно памяти для получения результата запроса к базе данных". Да, там ворочается десяток временных таблиц в менеджере запросов, но организована нормальная их очистка после потери актуальности. И в результате возникает главный вопрос - если я, например, знаю, что для выполнения запроса в 1С нужно 50 ГБ памяти для сиквела, то как узнать, если среди выеденных сиквелом 350 ГБ есть эти свободные 50 ГБ для выполнения?     | |||
| 3
    
        H A D G E H O G s 06.11.19✎ 13:53 | 
        (2) dmv поможет вам узнать текст этого запроса.
 Техжурнал с DBMSSQL - узнать регзадание и строчку текста кода. Прямые руки - переписать этот кусок треша. | |||
| 4
    
        H A D G E H O G s 06.11.19✎ 13:54 | 
        Как же люди любят лечить проблемы, прикрывая дыру в асфальте картонкой.     | |||
| 5
    
        SSSSS_AAAAA 06.11.19✎ 14:04 | 
        (0) А с чего взяли, что это хоть как-то соотносится именно с SQL сервером? Или вы считаете, что это SQL сервер получает результаты запроса?     | |||
| 6
    
        mistеr 06.11.19✎ 14:45 | 
        (5) +1, сообщение скорее говорит о том, что памяти не хватило рабочему процессу сервера 1С.
 Советую еще журналы винды глянуть. | |||
| 7
    
        mistеr 06.11.19✎ 14:46 | 
        (2) Если временные таблицы не влезают в ОП, они размещаются на диске.     | |||
| 8
    
        Tester 06.11.19✎ 15:01 | 
        (5) (6) что-то я похоже запутался, но немного проясняется ) Т.е. при такой ошибке 100% не хватает оперативной памяти rphost'у, т.к. он не умеет писать в файл подкачки? А сиквел умеет писать в tempdb и файл подкачки, поэтому можно хранить, например временные таблицы больше размера оперативной памяти?
 Если все так, тогда просто надо уменьшить объем выделяемой оперативной памяти сиквелу и оставить больше для rphost'ов, т.к. сервер БД и 1С на одной машине? | |||
| 9
    
        mistеr 06.11.19✎ 15:11 | 
        (8) Смотри логи     | |||
| 10
    
        dmrjan 06.11.19✎ 15:47 | 
        (0) Заходишь в SQL Server Managmet Studio и ограничиваешь объем оперативки, выделяемой на нужды MSSQL.     | |||
| 11
    
        dmrjan 06.11.19✎ 15:52 | 
        Кроме того включи регулятор запросов со значением примерно 10000. Нужно будет - увеличишь. По крайней мере будешь знать - кто делает злобные отчеты.     | |||
| 12
    
        H A D G E H O G s 06.11.19✎ 15:55 | 
        (11) Когда эти кто-то постучат в дверь (в лучшем случае) автору сапогом.     | |||
| 13
    
        H A D G E H O G s 06.11.19✎ 15:56 | 
        (11) Но вообще автор сказал же, что это регламенты, считающие 100500 раз базу данных и вываливающие 0.5% реально нужных данных в результат.     | |||
| 14
    
        mistеr 06.11.19✎ 16:34 | 
        (13) Похоже, совсем не 0.5%, раз памяти не хватает.     | |||
| 15
    
        mistеr 06.11.19✎ 16:35 | 
        (14) Но даже это не было бы проблемой, если бы 1С умела обрабатывать результат запроса без загрузки всех данных в память.     | |||
| 16
    
        Tester 11.11.19✎ 09:02 | 
        (9) В логах винды ничего нет.
 (13) (14) в том то и дело, что не 0.5%. В общем урезал нормально так объем выделяемой памяти сиквелу и пока проблем нет. Плюс в планах оптимизация запроса, т.к. к сожалению используются поля составных типов. | |||
| 17
    
        Cyberhawk 11.11.19✎ 09:23 | 
        Сервер 1С 32б что ли?     | |||
| 18
    
        Cyberhawk 11.11.19✎ 09:30 | 
        Но скорее всего это срабатывает "Максимальный объем памяти рабочих процессов" и "Безопасный расход памяти за один вызов"     | |||
| 19
    
        Tester 11.11.19✎ 09:59 | 
        (17) Нет, 64.
 1-й параметр стоял в 50 гигов. Вернул 0 на всякий случай. | |||
| 20
    
        Провинциальный 1сник 11.11.19✎ 10:03 | 
        (5) +1, стопудово тут sql-сервер ни при чем. Ему память жизненно не так уж и важна, и является больше фактором быстродействия. Само по себе ядро sql-сервера много не ест, практически вся используемая память - это кэш данных и вторичных структур для более быстрого поиска.     | |||
| 21
    
        Cyberhawk 11.11.19✎ 10:32 | 
        (19) "1-й параметр стоял в 50 гигов" // Это и была вероянтая причина. Сколько там отъел скуль на это не влияет, можешь возвращать взад.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |