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

Откуда:
Сообщений: 91
Всем спасибо за ответы, счас "разгребу" срочные по работе моменты и буду смотреть скрипты.
13 май 19, 06:52    [21882958]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
select * from sys.dm_os_performance_counters
where counter_name like 'T%Se%Memory%'

- komrad, подскажите пожалуйста по этому скрипту, на выходе что значит Target Server memory и TotalServer Memory ? Эти значения у меня не совпадают ни с тем, сколько серверу разрешено занимать (max server memory), ни с тем, сколько процесс sqlserv занял в данный момент ( диспетчер задач ).
13 май 19, 11:19    [21883136]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
И вопрос еще по скрипту от Mind.
Что за счетчик "Stolen Server Memory" ?
13 май 19, 11:31    [21883156]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4929
guestfreeman
select * from sys.dm_os_performance_counters
where counter_name like 'T%Se%Memory%'

- komrad, подскажите пожалуйста по этому скрипту, на выходе что значит Target Server memory и TotalServer Memory ? Эти значения у меня не совпадают ни с тем, сколько серверу разрешено занимать (max server memory), ни с тем, сколько процесс sqlserv занял в данный момент ( диспетчер задач ).


тут описано с картинками
https://blobeater.blog/2017/03/01/sql-server-target-vs-total-memory/

диспетчер задач зачастую (почти всегда) неправильно отображает потребление памяти сиквелом
стоит ориентироваться на perfmon и счетчики сиквела
13 май 19, 11:39    [21883165]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4929
guestfreeman
И вопрос еще по скрипту от Mind.
Что за счетчик "Stolen Server Memory" ?

всё прекрасно гуглится
https://www.sqlshack.com/sql-server-memory-performance-metrics-part-6-memory-metrics/
Stolen Server Memory (KB)
13 май 19, 11:41    [21883170]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
Вопросы касаемо "Stolen Server Memory" для отвечающих в теме.

1. Исходя из вашего опыта, была ли необходимость отслеживать показания этого счетчика, и как-то снижать память, занимаемую SQL'ем, которую показывает этот счетчик ?
2. Как-то на уровне запросов или SSMS есть возможность ограничить память занимаемую SQL'ем, которую отображает этот параметр ? Уточню, ограничить не просто объем оперативы ( max server memory), а именно связанную с этим счетчиком.
13 май 19, 12:07    [21883204]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4929
guestfreeman
Вопросы касаемо "Stolen Server Memory" для отвечающих в теме.

1. Исходя из вашего опыта, была ли необходимость отслеживать показания этого счетчика, и как-то снижать память, занимаемую SQL'ем, которую показывает этот счетчик ?
2. Как-то на уровне запросов или SSMS есть возможность ограничить память занимаемую SQL'ем, которую отображает этот параметр ? Уточню, ограничить не просто объем оперативы ( max server memory), а именно связанную с этим счетчиком.


1 - отслеживать его можно, но повлиять на него напрямую нельзя (регулируется сервером самостоятельно)
2 - есть косвенная возможность - можно писать простые запросы, без развесистых джойнов и сортировок ;)
13 май 19, 12:58    [21883272]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
Komrad, спасибо большое за ответы, и вообще всем ответившим. Приобрел для себя полезный опыт.
Вопрос по скрипту отображения информации по занятой оперативе в Buffer Pool для каждой базы.
+

SELECT DB_NAME(database_id) AS [Database Name],
COUNT(*) * 8/1024.0 AS [Cached Size (MB)]
FROM sys.dm_os_buffer_descriptors
WHERE database_id > 4 /*exclude system databases*/
AND database_id <> 32767 /*–- exclude ResourceDB */
GROUP BY DB_NAME(database_id)
ORDER BY [Cached Size (MB)] DESC;

Возможно то что спрошу на "уровне фантастики" или высказываний типа "эти пользователи хотят чтобы за них уже и кнопочки понажимали", но все же.
Можно ли на основе этого скрипта создать скрипт который будет автоматически, с задаваемым интервалом выполняться, и писать результаты выполнения в файл с таким форматом, чтобы потом можно было его открыть и построить график занимаемой базами оперативы за какой-то промежуток времени ? Может кто-то что-нибудь такое уже делал ? Было бы удобно ( ИМХО) при "разборе полетов", когда в SQL Server, например "крутится" баз 50 и временами наблюдается замедление работы, связанное с нехваткой оперативы, когда нужно "найти виновника".
13 май 19, 13:13    [21883290]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
Megabyte
Member

Откуда: ближайшее заМКАДье
Сообщений: 4812
guestfreeman
Можно ли на основе этого скрипта создать скрипт который будет автоматически, с задаваемым интервалом выполняться, и писать результаты выполнения в файл с таким форматом, чтобы потом можно было его открыть и построить график занимаемой базами оперативы за какой-то промежуток времени ? Может кто-то что-нибудь такое уже делал ? Было бы удобно ( ИМХО) при "разборе полетов", когда в SQL Server, например "крутится" баз 50 и временами наблюдается замедление работы, связанное с нехваткой оперативы, когда нужно "найти виновника".

Кто вам мешает результаты запроса сохранять в таблицу\файл в джобе по расписанию? И делайте потом с данными что хотите, отображайте как хотите...
13 май 19, 16:07    [21883543]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
Мне мешает отсутствие необходимого опыта, чтобы такой скрипт написать. Просто сохранять мало, надо сохранять в таком формате, чтобы потом по файлу с сохраненными данными график можно было построить. Поэтому и спрашиваю, может у кого уже такой опыт был, и для него мой вопрос "вчерашний день".
13 май 19, 20:01    [21883732]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2277
guestfreeman
Вопросы касаемо "Stolen Server Memory" для отвечающих в теме.
Из результатов скрипта же видно что этот счетчик состоит из большого количества мемори клерков. По сути это вся память используемая сервером кроме кэша данных.Так что отслеживать просто размер stolen memory без деталей особо смысла нет. На практике встречаются случаи когда один из клерков становится больше чем обычно что может приводить к проблемами. Видел пару раз проблемы из-за багов в самом SQL server, что обычно исправляется патчами. Ну еще могут быть всякие приколы с lock memory, ну и память используемая запросами тоже выделяется в stolen memory.
14 май 19, 02:44    [21883921]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2277
guestfreeman
Мне мешает отсутствие необходимого опыта, чтобы такой скрипт написать. Просто сохранять мало, надо сохранять в таком формате, чтобы потом по файлу с сохраненными данными график можно было построить. Поэтому и спрашиваю, может у кого уже такой опыт был, и для него мой вопрос "вчерашний день".
Сколько форматов вам приходит на ум для такой нетривиальной задачи? Я бы сохранял в зашифрованном бинарном файле в хадупе. Удобнее не придумаешь.
Ну серьезно? Сложно сделать таблицу и написать пару INSERT/SELECT запросов?
14 май 19, 02:47    [21883923]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
Mind, с помощью чего потом из данных в таблице можно строить график ?
14 май 19, 06:34    [21883944]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
Massa52
Member

Откуда:
Сообщений: 349
guestfreeman,
https://www.youtube.com/results?search_query=power bi dashboard
14 май 19, 08:11    [21883981]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
OK. Спасибо за ответы. У меня пока нет опыта чтобы написать простой на ваш взгляд скрипт и затем как-то построить график по сохраненным данным.
Но возможно я оплачу время того кто это умеет - если цена устроит все стороны. Резюмирую что мне нужно сейчас:
1. Скрипт который я могу "повесить" в задание SQL Server Agent который будет с изменяемой периодичностью (5, 10 секунд и прочее) записывать куда-нибудь данные о занятой базами памяти в Buffer Pool
2. Инструмент который построит график по данным записанным в п. 1.
3. Объяснить мне как пользоваться скриптом ( менять период, может что-то еще), и инструментом для построения графика.
- Если у кого-то есть время, опыт и желание, пишите на _sa_nya@mail.ru .
14 май 19, 08:49    [21884019]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2277
guestfreeman
OK. Спасибо за ответы. У меня пока нет опыта чтобы написать простой на ваш взгляд скрипт и затем как-то построить график по сохраненным данным.
Но возможно я оплачу время того кто это умеет - если цена устроит все стороны. Резюмирую что мне нужно сейчас:
А зачем?
14 май 19, 09:14    [21884048]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
Mind уточню ваш вопрос: зачем мне это нужно, или зачем участникам форума это нужно ?
14 май 19, 09:31    [21884057]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6420
guestfreeman
Mind уточню ваш вопрос: зачем мне это нужно, или зачем участникам форума это нужно ?

https://www.sql.ru/forum/job
14 май 19, 09:33    [21884059]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2277
guestfreeman
Mind уточню ваш вопрос: зачем мне это нужно, или зачем участникам форума это нужно ?
Зачем вам это нужно?
14 май 19, 10:18    [21884099]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
Mind. Больший объем услуг нашей компании:
1. Изменение конфигураций 1С для клиентов. В штате работают программисты.
2. Предоставление услуг хостинга БД 1С для клиентов - "1С в Облаке".

По 1-му пункту. У нас есть выделенный сервер для БД клиентов, для которых проверяется ТЗ, когда это невозможно сделать на чистой базе с CF клиента или в файловом режиме, т.е. когда используется клиент-серверный режим в связке Сервер 1С + MS SQL Server. Периодически ко мне приходят с вопросами о том что "База работает медленно, вчера работала быстро", "у нас все висит" и прочее. Частично эти вопросы связаны с тем что SQL Server занимает всю оперативу, ему разрешенную, начинает использовать файл подкачки и "поехали". Сервер у нас не старый, но тем не менее ресурсы не безграничны. Этот инструмент позволит мне выявлять базы, которые потребляют много оперативы, затем говорить об этом программистам - т.е. дальше уже не моя зона ответственности и не мои дейтсвия по решению проблемы, код буду смотреть не я
По 2-му пункту. Т.к. ресурсы сервера для облака так же не безграничны в плане оперативы, мне это необходимо чтобы понимать в подобных случаях, чья база может создавать проблемы.
14 май 19, 12:04    [21884241]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2277
guestfreeman
"База работает медленно, вчера работала быстро", "у нас все висит" и прочее. Частично эти вопросы связаны с тем что SQL Server занимает всю оперативу, ему разрешенную, начинает использовать файл подкачки и "поехали".
Наверняка для этого был проведен полноценный анализ производительности SQL сервера, чтобы прийти к таким выводам? Вот пусть тот кто делал этот анализ и напишет скрипт, я думаю у него труда это не составит.
SQL Server занимающий всю оперативу, ему разрешенную - это конечно проблема...

guestfreeman
Этот инструмент позволит мне выявлять базы, которые потребляют много оперативы, затем говорить об этом программистам - т.е. дальше уже не моя зона ответственности и не мои дейтсвия по решению проблемы, код буду смотреть не я
То есть даже если это не настоящая проблема, все равно спихнем её программерам - пусть разбираются? Т.е. давайте мне кто нибудь напишет скрипт результаты которого я буду пересылать программистам, а дальше хоть трава не расти. А что вообще тогда ваша зона ответсвенности? У вас в компании есть ДБА чтобы предоставлять услуги хостинга БД? Озвучьте название компании? На месте ваших клиентов я бы бежал сверкая пятками. Доверять свои базы тем кто не может написать пару SQL запросов это жесть
14 май 19, 20:47    [21884773]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
Mind
guestfreeman
"База работает медленно, вчера работала быстро", "у нас все висит" и прочее. Частично эти вопросы связаны с тем что SQL Server занимает всю оперативу, ему разрешенную, начинает использовать файл подкачки и "поехали".
Наверняка для этого был проведен полноценный анализ производительности SQL сервера, чтобы прийти к таким выводам? Вот пусть тот кто делал этот анализ и напишет скрипт, я думаю у него труда это не составит.
SQL Server занимающий всю оперативу, ему разрешенную - это конечно проблема...

guestfreeman
Этот инструмент позволит мне выявлять базы, которые потребляют много оперативы, затем говорить об этом программистам - т.е. дальше уже не моя зона ответственности и не мои дейтсвия по решению проблемы, код буду смотреть не я
То есть даже если это не настоящая проблема, все равно спихнем её программерам - пусть разбираются? Т.е. давайте мне кто нибудь напишет скрипт результаты которого я буду пересылать программистам, а дальше хоть трава не расти. А что вообще тогда ваша зона ответсвенности? У вас в компании есть ДБА чтобы предоставлять услуги хостинга БД? Озвучьте название компании? На месте ваших клиентов я бы бежал сверкая пятками. Доверять свои базы тем кто не может написать пару SQL запросов это жесть

- Анализ сервера делал я, и этот сервер устраивает всем параметрам, но когда в базе 1С выполняется какой-нибудь "кривой" запрос, то он может не только занять всю оперативную память, но и в принципе "повесить" службу Сервера 1С:Предприятия. В подобных ситуациях этот скрипт и нужен
- Насчет "Не настоящая проблема, спихнем программерам" - см абзац выше.
- Моя зона ответственности - бесперебойная, должным образом быстрая работа рабочих станций, серверов, служб на серверах. Если возникают проблемы, либо я их устраняю, либо диагностирую неисправность, и их устраняет тот к кому проблема относится. И дело не в "спихивании проблемы", а в кривых конфигурациях БД
"Доверять свои базы тем кто не может написать пару SQL запросов это жесть" - 1С не требует от системных администраторов фирм, предоставляющих хостинг умение профессионально писать скрипты в SQL Server'е. Если есть проблема производительности, программисты решают ее на уровне 1С и ее механизмов
"На месте ваших клиентов я бы бежал сверкая пятками." Наши клиенты как раз полностью довольны нашим сервисом. Мы следим за стабильностью работы, и большинство проблем не решаем, а предупреждаем.
На ваше месте я бы не давал таких "занозливых" советов, если вы не специалист в инфраструктуре 1С. По вашим ответам я понял что это так. В ином случае вы бы не писали свой последний пост.
15 май 19, 06:37    [21884902]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4929
guestfreeman
OK. Спасибо за ответы. У меня пока нет опыта чтобы написать простой на ваш взгляд скрипт и затем как-то построить график по сохраненным данным.
Но возможно я оплачу время того кто это умеет - если цена устроит все стороны. Резюмирую что мне нужно сейчас:
1. Скрипт который я могу "повесить" в задание SQL Server Agent который будет с изменяемой периодичностью (5, 10 секунд и прочее) записывать куда-нибудь данные о занятой базами памяти в Buffer Pool
2. Инструмент который построит график по данным записанным в п. 1.
3. Объяснить мне как пользоваться скриптом ( менять период, может что-то еще), и инструментом для построения графика.
- Если у кого-то есть время, опыт и желание, пишите на _sa_nya@mail.ru .




+ дарю


1: скрипт ниже
2: с инструментом всё просто - графики в экселе
3: последний запрос - выборка данных за текущий день
/*PREPARE: create database and table*/
create database BufferWatcher
go

alter database BufferWatcher set recovery simple
go

use BufferWatcher
go


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[BufferUsed](
	[id] numeric(8,0) identity,
	[dt] [smalldatetime] NULL,
	[db] [nvarchar](128) NULL,
	[TotalMB] numeric(8,1) NULL,
	[DirtyMB] numeric(8,1) NULL,
	[CleanMB] numeric(8,1) NULL
) ON [PRIMARY]
GO


/*run the query to save data on regular basis  */
insert into [dbo].[BufferUsed] ([dt],[db],[TotalMB],[DirtyMB],[CleanMB])
SELECT 
	convert(smalldatetime,getdate()) [dt]
	,DB_NAME(database_id) [db]
	,convert(numeric(5,1),COUNT(*)/128.0) AS [TotalMB]
	,convert(numeric(5,1),sum(convert(tinyint,is_modified)) /128.0) [DirtyMB]
	,convert(numeric(5,1),sum(case when is_modified=1 then 0 else 1 end) /128.0) [CleanMB]
FROM sys.dm_os_buffer_descriptors
WHERE database_id <> 32767 /*–- exclude ResourceDB */
GROUP BY database_id

/*get data for today*/
select [dt],[db],[TotalMB],[DirtyMB],[CleanMB]
from dbo.BufferUsed
where 
	dt between convert(date,getdate()) and convert(date,dateadd(dd,1,getdate()))
15 май 19, 11:09    [21885072]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4929
* опечатка, надо исправить в скрипте numeric(5,1) на numeric(8,1)
15 май 19, 11:13    [21885078]     Ответить | Цитировать Сообщить модератору
 Re: Размер базы в памяти  [new]
guestfreeman
Member

Откуда:
Сообщений: 91
komrad, спасибо, буду пробовать.
15 май 19, 14:42    [21885344]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Microsoft SQL Server Ответить