Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Как программно узнать объем занятой памяти сервером?  [new]
okwell5
Member

Откуда:
Сообщений: 116
Glory
okwell5
я получил ответ на свой вопрос по теме.

Да мне жалко просто ваш сервер. Из-за ваших методов "увеличения производительности"

Жалеть не железо надо, а людей, которые работать не могут, когда 1С-ка сжирает всю память. Пока что мы руками уменьшаем sql-серверу объем допустимой памяти, затем через минуту возвращаем ее прежний объем, и после этого все работает как часы. Вот поэтому и решил автоматизировать это неудобство.
20 сен 15, 01:59    [18171513]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1797
okwell5,

поймите уже наконец, что подход к решению данной проблемы у вас в корне не верный
прежде чем заниматься "решением проблемы" необходимо найти причину.
20 сен 15, 11:32    [18171878]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
Уменьшение объема доступной памяти очень Оригинальное решение))
Вы в итоге определились что у вас тормозит?
Именно sql запросы? Или другим процессам на сервере перестает хватать памяти и начинаются свопы на диск?
Если второе, то вы дали скл слишком большой доступный кусок памяти, а он по определению сожрет всю доступную ему оперативку.

Если томозят запросы-то это вообще никак не связано с размером скушанной оперативки и никакими счетчиками вы это не увидите. Ну и если уж вы боретесь с неудачными закешенными планами, то для того что бы их все грохнуть есть команда dbcc freeproccache.

Но лучше таки разобраться, что происходит на самом деле, как вам уже тут написали
20 сен 15, 15:03    [18172278]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Glory
Member

Откуда:
Сообщений: 104751
okwell5
Пока что мы руками уменьшаем sql-серверу объем допустимой памяти, затем через минуту возвращаем ее прежний объем, и после этого все работает как часы. Вот поэтому и решил автоматизировать это неудобство.

Я бы еще посоветовал переустанвливать каждый раз mssql.
Можно вместе с windows
21 сен 15, 08:19    [18173493]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
okwell5
Member

Откуда:
Сообщений: 116
Все предыдущие ответы не являются ответами на вопрос самой темы, давайте по сути: выкладываем запрос или последовательность команд, проверяем, и если верно, то тема закрыта, а люди, которым понадобится получить эту же информацию, смогут здесь найти ответ(или не найти, если решения не будет).
21 сен 15, 12:41    [18174699]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Glory
Member

Откуда:
Сообщений: 104751
okwell5
Все предыдущие ответы не являются ответами на вопрос самой темы

Если вы про "Как программно узнать объем занятой памяти сервером?", то sys.dm_os_performance_counters


okwell5
давайте по сути: выкладываем запрос или последовательность команд, проверяем

Запрос 1С ?
21 сен 15, 12:48    [18174751]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
okwell5
Member

Откуда:
Сообщений: 116
Glory
Если вы про "Как программно узнать объем занятой памяти сервером?", то sys.dm_os_performance_counters

Если я правильно понял, не существует такой общей информации, а есть лишь таблица с разными переменными, верно?

Glory
Запрос 1С ?

Нет, запрос или последовательность команд T-SQL.
21 сен 15, 13:20    [18174937]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Glory
Member

Откуда:
Сообщений: 104751
okwell5
Если я правильно понял, не существует такой общей информации, а есть лишь таблица с разными переменными, верно?

Нет, вы неправильно поняли

okwell5
Нет, запрос или последовательность команд T-SQL.

Любых произвольных команда и запросов ?
21 сен 15, 13:21    [18174944]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
okwell5
Member

Откуда:
Сообщений: 116
Glory
Нет, вы неправильно поняли

Что ж, тогда вот это sys.dm_os_performance_counters неверный ответ.

Glory
Любых произвольных команда и запросов ?

Именно таких, которые выводили бы результат, являющийся решением вопроса темы.
21 сен 15, 13:27    [18174973]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Glory
Member

Откуда:
Сообщений: 104751
okwell5
Что ж, тогда вот это sys.dm_os_performance_counters неверный ответ.

На какой вопрос ?

okwell5
Именно таких, которые выводили бы результат, являющийся решением вопроса темы.

А какой вопрос данной темы ?
21 сен 15, 13:29    [18174983]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
BrokenPot
Member

Откуда: Киев
Сообщений: 1405
UPDATE STATISTICS пробовали делать где-нибудь?..

Как часто у Вас возникает затык в производительности?
21 сен 15, 18:06    [18177168]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
okwell5
Member

Откуда:
Сообщений: 116
BrokenPot, затык в производительности возникает постоянно именно когда в диспетчере задач видно, что память оперативная вся занята, и тогда, как я уже говорил, просто выставляем SQL-серверу меньшее значение памяти(max), смотрим в диспетчере задач, как память быстро освобождается, затем снова возвращаем SQL-серверу его максимальное значение памяти. Проходит, примерно, неделя, и все повторяется.
21 сен 15, 22:21    [18178047]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
okwell5
Member

Откуда:
Сообщений: 116
BrokenPot, UPDATE STATISTICS не делали, так как база на 1С. Саму базу через конфигуратор выгрузили один раз в dt-файл, затем обратно загрузили, ее размер на 20Гб уменьшился, после этого проблема с занятием всей памяти SQL-сервером стала возникать намного реже, примерно, раз в два месяца.
21 сен 15, 22:27    [18178064]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Сид
Member

Откуда: Москва
Сообщений: 305
okwell5,

Присоединяюсь к тем, кто говорит, что Вы неверно выбрали путь. Истинный путь - тупо ограничить кол-во выделяемой SQL Server'y памяти раз и навсегда (или до закупки RAM) на уровне экземпляра. Чтоб и винде хватало, и 1Ске. То бишь, вычитаем из общей RAM, например, 2 ГБ для винды и 4 ГБ на 1С (цифры с потолка, это уж сами решите, сколько), остальное отдаём MSSQL. И не надо писать никаких скриптов. 2 клика мышкой, ввод значения в одно поле и всё, больше ничего не надо. Больно смотреть на эти попытки поставить простейшие вещи на космические костыли.
В остальном достаточно стандартного обслуживания БД (статистика, дефрагментация индексов и т.д.).
Слышал, что у 1С-ников часто встречается рекомендация по периодической очистке процедурного кэша. Типа так быстрее. Если такое есть, нужно убрать. Эта штука только вредит.
21 сен 15, 23:43    [18178209]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Сид
Member

Откуда: Москва
Сообщений: 305
okwell5
BrokenPot, затык в производительности возникает постоянно именно когда в диспетчере задач видно, что память оперативная вся занята, и тогда, как я уже говорил, просто выставляем SQL-серверу меньшее значение памяти(max), смотрим в диспетчере задач, как память быстро освобождается, затем снова возвращаем SQL-серверу его максимальное значение памяти. Проходит, примерно, неделя, и все повторяется.


Сизиф, ты ли это???
21 сен 15, 23:45    [18178213]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Сид
Member

Откуда: Москва
Сообщений: 305
okwell5
UPDATE STATISTICS не делали, так как база на 1С.


Нет слов... SQL Serverу, видимо, намного легче работать с кривой статистикой, раз этого база великого и ужасного 1С. Не говоря уж о том, что потроха 1С сами по себе кривые и ужасные, и, чтобы заставить Это быстро работать - нужно сильно постараться.
21 сен 15, 23:49    [18178223]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
okwell5
Member

Откуда:
Сообщений: 116
Сид, дело в том, что тормозит не сам сервер, а база, т.е. люди не могут нормально работать в программе(в той самой 1С). И SQL-сервер как раз ограничен по памяти; но как только он сжирает всю доступную ему память, 1С-ка начинает жутко тормозить.
22 сен 15, 00:07    [18178250]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
invm
Member

Откуда: Москва
Сообщений: 9785
okwell5
UPDATE STATISTICS не делали, так как база на 1С
okwell5
дело в том, что тормозит не сам сервер, а база
Ну да, 1С настолько крута, что работает с БД минуя SQL Server. А он, гад такой, в отместку сжирает всю память и не дает нормально работать 1С-у...
22 сен 15, 00:44    [18178302]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Сид
Member

Откуда: Москва
Сообщений: 305
okwell5
Сид, дело в том, что тормозит не сам сервер, а база, т.е. люди не могут нормально работать в программе(в той самой 1С). И SQL-сервер как раз ограничен по памяти; но как только он сжирает всю доступную ему память, 1С-ка начинает жутко тормозить.


Вам тут всей толпой говорят о том, чтобы SQL Server ограничить так, чтобы он НЕ СМОГ сожрать всю память. Тормоза возникают из-за конкуренции за ресурсы, а не из-за того, что SQL съел всё, что ему дали (если что-то осталось системе и 1Ске). Грубо говоря, есть 32ГБ RAM. Отдаём SQL'ю, например, 24. Но никак не 30, ибо на этом сервере не только SQL работает. Я не в курсе, сколько памяти отжирает 1Ска, поэтому конкретные цифры советовать не могу. Вариант, когда даём то 3, то 30, совсем не катит. Лучше уменьшать постепенно, найти золотую середину и на ней остановиться. А если памяти объективно мало, имеет смысл докупить, конечно же.
22 сен 15, 00:58    [18178319]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Сид
Member

Откуда: Москва
Сообщений: 305
invm
okwell5
UPDATE STATISTICS не делали, так как база на 1С
okwell5
дело в том, что тормозит не сам сервер, а база
Ну да, 1С настолько крута, что работает с БД минуя SQL Server. А он, гад такой, в отместку сжирает всю память и не дает нормально работать 1С-у...

+100
22 сен 15, 00:58    [18178321]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
Может они там реально раз в месяц строят какой то отчет и он кншит кривой план)))
22 сен 15, 01:31    [18178362]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
правильный проходящий.
Guest
okwell5
BrokenPot, UPDATE STATISTICS не делали, так как база на 1С.
И что? Каким образом и когда одно стало мешать другому?
22 сен 15, 11:26    [18179391]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
Сид
Member

Откуда: Москва
Сообщений: 305
Mike_za
Может они там реально раз в месяц строят какой то отчет и он кншит кривой план)))


Есть мнение, что 1С - это вообще один сплошной кривой план))) И причины, почему он тормозит, можно перечислять бесконечно)))
22 сен 15, 11:58    [18179595]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
BrokenPot
Member

Откуда: Киев
Сообщений: 1405
Вы, все таки, попробуйте сделать UPDATE STATISTICS. Хотя бы для самых тяжелых таблиц.

Уверен, Вам понравится.
22 сен 15, 12:26    [18179745]     Ответить | Цитировать Сообщить модератору
 Re: Как программно узнать объем занятой памяти сервером?  [new]
okwell5
Member

Откуда:
Сообщений: 116
BrokenPot
Вы, все таки, попробуйте сделать UPDATE STATISTICS. Хотя бы для самых тяжелых таблиц.

Уверен, Вам понравится.


Попробую, но результаты будут известны спустя время.
22 сен 15, 12:36    [18179800]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить