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

Откуда:
Сообщений: 122
имеется высоконагруженный сервер MS SQL 2012 SP3 CU6.
есть основная БД, с которой работает основная система. крайне важна скорость работы этой БД. работа 7*24 с высокой нагрузкой.
и несколько дополнительных баз данных установлены на том же сервере: BI, база данных для отчётов, для статистики, старые версии со старыми данными и т. д. всего штук 12. скорость работы этих БД совершенно не важна, работают они изредка.

у основной БД проблемы с производительностью.
счетчик [Buffer Manager: Buffer cache hit ratio] во время тяжелых запросов к основной БД показывает, что чтение с диска ненормально большое;
посмотрел использование кэша из sys.dm_os_buffer_descriptors - свыше 60% отожрали дополнительные БД.
отсоединил (detach) почти все дополнительные БД, и проблемы у основной БД значительно уменьшились.
в течении нескольких часов после attach, проблемы вернулись.

то есть часть проблемы в том, что дополнительные базы данных отнимают ресурсы у основной.
вопрос - как ограничить потребление дополнительных баз данных?

идеальный вариант - перенести дополнительные базы данных на другой сервер, но это к сожалению невозможно.
поставить ещё один инстанс на тот же сервер тоже не вариант.
спасибо.

Модератор: Тема перенесена из форума "Работа".


Сообщение было отредактировано: 15 дек 16, 14:16
15 дек 16, 13:52    [20006966]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
памяти добавить тоже не вариант?
кстати, не экспресс ли, с его-то ограничением в 1 Гиг
15 дек 16, 15:03    [20007567]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
valv
Member

Откуда:
Сообщений: 122
o-o
памяти добавить тоже не вариант?
кстати, не экспресс ли, с его-то ограничением в 1 Гиг

не экспресс, standard edition.
памяти добавить можно. но хотелось бы понять, как можно ограничивать ресурсы сервера, выделяемые базе данных.
15 дек 16, 15:40    [20007861]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
valv
o-o
памяти добавить тоже не вариант?
кстати, не экспресс ли, с его-то ограничением в 1 Гиг

не экспресс, standard edition.
памяти добавить можно. но хотелось бы понять, как можно ограничивать ресурсы сервера, выделяемые базе данных.

серверу можно, если про память то вот https://msdn.microsoft.com/en-us/library/ms178067.aspx
15 дек 16, 15:45    [20007902]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
есть Resource Governor,
можно установить MIN_MEMORY_PERCENT and MAX_MEMORY_PERCENT для разных пулов.
но у вас же Standard Edition, значит не светит
15 дек 16, 15:46    [20007908]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
ну и непонятно, почему отменяется второй инстанс.
если не говернором, то между инстансами память поделить.
раз ваше BI вымывает данные OLTP, то или делить, или добавлять память
15 дек 16, 15:49    [20007933]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
aleks2
Guest
Любит же народ фантазировать...

USE Основная
go
select * from Дополнительная..Таблица

-- это какая база используется?

USE Основная
go
select * from Дополнительная..Таблица join Основная..Таблица on ...

-- а тут какая база используется?



ЗЫ. Чем мечтать - лучше запросы переписать "по человечески".
15 дек 16, 16:35    [20008195]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
aleks2
Любит же народ фантазировать...

USE Основная
go
select * from Дополнительная..Таблица

-- это какая база используется?

USE Основная
go
select * from Дополнительная..Таблица join Основная..Таблица on ...

-- а тут какая база используется?



ЗЫ. Чем мечтать - лучше запросы переписать "по человечески".

если он детачил остальные базы и ничего не упало,
значит, нет таких запросов.
+ ага, пойди, перепиши запросы.
если отчетникам надо поднимать таблицы в 400Гиг и у них на всех 35Гиг память, хоть запереписывайся
15 дек 16, 16:54    [20008309]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
ssdt_user
Member

Откуда:
Сообщений: 9
А зачем нужны все 400 ГБ данных в одном запросе? Джойны например фильтровать можно а аггрегирование лучше проводить на самых актуальных даных, а все остальное разнести по другим таблицам.
16 дек 16, 10:20    [20010193]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
komrad
Member

Откуда:
Сообщений: 5703
valv
то есть часть проблемы в том, что дополнительные базы данных отнимают ресурсы у основной.
вопрос - как ограничить потребление дополнительных баз данных?

как вариант - Resource Governor
16 дек 16, 16:08    [20012969]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
komrad
valv
то есть часть проблемы в том, что дополнительные базы данных отнимают ресурсы у основной.
вопрос - как ограничить потребление дополнительных баз данных?

как вариант - Resource Governor

да блин же
o-o
есть Resource Governor,
можно установить MIN_MEMORY_PERCENT and MAX_MEMORY_PERCENT для разных пулов.
но у вас же Standard Edition, значит не светит
16 дек 16, 16:22    [20013041]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
ssdt_user
А зачем нужны все 400 ГБ данных в одном запросе? Джойны например фильтровать можно а аггрегирование лучше проводить на самых актуальных даных, а все остальное разнести по другим таблицам.

ну надо же.
пойдите, разъясните это нашим аналистам,
копающим по всей истории практик актуального периода,
начиная с 1987 года.
и про разнос им разъясните.
как бы наоборот, ночью все, что можно, соединяется и денормализируется.
16 дек 16, 16:26    [20013063]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
komrad
Member

Откуда:
Сообщений: 5703
o-o
komrad
пропущено...

как вариант - Resource Governor

да блин же
o-o
есть Resource Governor,
можно установить MIN_MEMORY_PERCENT and MAX_MEMORY_PERCENT для разных пулов.
но у вас же Standard Edition, значит не светит

пропустил, каюсь :)
16 дек 16, 16:41    [20013140]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
зато теперь в глаза бросается и все предложения будут поступать только для Standard :)
16 дек 16, 16:45    [20013162]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
ssdt_user
Member

Откуда:
Сообщений: 9
o-o,
Мда, сюрр какой то... Ну тогда пускай ждут.
19 дек 16, 11:21    [20020660]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
они не виноваты, что на их сервере нехват памяти.
под их нужды ее надо гораздо больше, PLE вечно стремится к 0.
навешивать больше индексов не дают, т.к. на все запросы не напасешься,
таблица секционирована(хотя и криво)
есть и невыровненные индексы как раз для поиска по всей таблице целиком.
да, ждут и получают свои данные, в принципе никто не умер.
но вынос данных из памяти постоянный.
---
если бы у них на этом же инстансе жило OLTP, оно бы точно убилось
19 дек 16, 11:40    [20020751]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
o-o
komrad
пропущено...

как вариант - Resource Governor

да блин же
o-o
есть Resource Governor,
можно установить MIN_MEMORY_PERCENT and MAX_MEMORY_PERCENT для разных пулов.
но у вас же Standard Edition, значит не светит

Да даже если бы Enterprise, советчики сами когда нибудь пользовались Resource Governor? Ну или хотя бы мануал читали?
MS
MIN_MEMORY_PERCENT and MAX_MEMORY_PERCENT
These settings are the minimum and maximum amount of memory reserved for the resource pool that can not be shared with other resource pools. The memory referenced here is query execution grant memory, not buffer pool memory (for example, data and index pages).
21 дек 16, 02:47    [20029991]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
Только читали, в виде обзора, для расширения кругозора.
Похоже, диагонально
21 дек 16, 08:12    [20030092]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
ghjs
Guest
Перевести дополнительные базы в offline.
И не удалены, и не требуют ресурсов.
21 дек 16, 18:55    [20033559]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
т.е. когда они в онлайне,
это не их кто-то опрашивает,
а сам сервер от нефиг делать грузит себе данные из них?
автор
посмотрел использование кэша из sys.dm_os_buffer_descriptors - свыше 60% отожрали дополнительные БД
21 дек 16, 19:00    [20033595]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
ghjs
Перевести дополнительные базы в offline.
И не удалены, и не требуют ресурсов.

можно и в auto_close, но что там освободится если "базы не используются" не ясно.
21 дек 16, 19:10    [20033643]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
TaPaK
ghjs
Перевести дополнительные базы в offline.
И не удалены, и не требуют ресурсов.

можно и в auto_close, но что там освободится если "базы не используются" не ясно.
Да, это навернео самое подходящее решение для ТС. Если база закрыта то процедурный кэш и кэш данных должны освободится, иначе было бы очень странно. Базы нет, а память используется. Главное чтобы не было пользователей, которые открыли базу и ушли курить, домой, в отпуск...
21 дек 16, 19:55    [20033799]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
А я вот честно не понимаю, как в памяти могут висеть никем не используемые данные, да так, что 60% пула занимают.
У нас особо используемых 3 базы, вот между ними buffer pool и поделен. И даже если я обращусь к ненужной базе и вычитаю ее всю, максимум через 10 минут все ее страницы будут выкинуты из пула.
Завтра завешу точное распределение пула под базы, на все остальные спасибо, если сотня Мб наберется
21 дек 16, 20:22    [20033888]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
ghjs
Guest
Ресурсы может потреблять, например, update statistics
21 дек 16, 20:33    [20033935]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
ghjs
Ресурсы может потреблять, например, update statistics

Зачем же он станет пересчитывать статистику, если запросы не выполняются?
21 дек 16, 20:37    [20033944]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
Хотите, завтра проведу эксперимент.
Баз 50 у нас есть, но активно используются только 3.
Приду утром на работу и вывешу картинкой распределение пула.
35 гиг пула, их поделят между собой analisi, basedati_bi, coresql7.
Потом я вычитаю полностью таблицу в 24гига, живущую в базе Monitoraggio.
Покажу снова картинкой, как она повытесняет страницы тех баз. Подождем часик, и от этой базы в пуле останутся 10Мб?
21 дек 16, 20:46    [20033979]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
ghjs
Guest
o-o
ghjs
Ресурсы может потреблять, например, update statistics

Зачем же он станет пересчитывать статистику, если запросы не выполняются?

Можно посмотреть stats update date, а не гадать
use [dbName];

select [dbName] = db_name()
	,[schName] = schema_name(suo.schema_id)
	,[objName] = object_name(ss.object_id)
	,[type] = suo.type
	,[statName] = ss.name
	,[updDate] = STATS_DATE(ss.object_id, ss.stats_id)
from (select object_id, schema_id, type from sys.tables union select object_id, schema_id, type from sys.views) suo
inner join sys.stats ss
	on ss.object_id = suo.object_id
order by [updDate] desc
21 дек 16, 21:22    [20034065]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
Хорошо, завтра же посмотрю и отчитаюсь
21 дек 16, 22:10    [20034211]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
отчитываюсь.
не убедили меня рассказы о висении в памяти страниц неиспользуемых баз,
да еще чтоб это были 60% пула.
равно как и о статистике, обновляемой "просто так".

имеем: онлайновых баз 70
select count(*)
from sys.databases
where state_desc = 'online'
---
70

из них постоянно используемых 3: analisi, basedati_bi, coresql7
в 8:30 эти 3 и делили 35Гб пула, вот вам первая картинка.

заметьте, из 70 баз в пуле висят страницы 60 баз, причем неиспользуемые базы занимают жалкие мегабайты

К сообщению приложен файл. Размер - 48Kb
22 дек 16, 11:12    [20035596]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
эксперимент номер 2:
смотрю статистику по базе мониторинга.
ее только я юзаю, моя база.
лезу туда только когда у нас проблемы,
ухожу домой в 17 часов.
имеем статистику, обновленную на позавчера, 16:41.
когда читаю оттуда, тогда и обновляется.
вчера весь день не обновлялась, тк все хорошо было

К сообщению приложен файл. Размер - 31Kb
22 дек 16, 11:15    [20035611]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
последний эксперимент: читаю из Monitoraggio.
картинка меняется, страницы этой базы вытесняют страницы BASEDATI_BI.
еще кто-то полез в BASEDATI_BI_STORICI_2015,
которая реже используется, вот и число ее страниц в пуле вверх полезло.
еще в пуле уже все 70 баз, хотя последние всего по паре страниц.
это потому, что в 9 бэкап всего.
вот и поднял по паре страниц метаданных каждой базы.
еще полчаса пройдет, не будет и следа от 70 баз,
потому что все 70 никто не читает, обычно 50 юзаются
----
остаюсь при своем мнении:
если в пуле 60% страниц других баз, значит эти другие базы юзаются *постоянно*,
а не "кто-то оставил соединение открытым и ушел в отпуск".
страницы базы ушедшего в отпуск за полчаса вынесет полностью,
а может даже за 10 минут

К сообщению приложен файл. Размер - 48Kb
22 дек 16, 11:21    [20035649]     Ответить | Цитировать Сообщить модератору
 Re: ограничение ресурсов сервера для баз данных  [new]
o-o
Guest
ну и для завершения картинки.
уже вынесло полностью мое Monitoraggio,
2Мб от него осталось.
вынесло и analisi с basedati_bi,
потому что сейчас одна тетя заполняет свое s1057, черпая инфо из coresql7/coresqlark,
вот они и делят пул.
окно с соединением Monitoraggio все еще открыто,
считайте, что хозяин окна ушел в отпуск.
да, не прокатит autoclose.
но и без него неплохо: откушанные базой 2Мб погоды не делают

К сообщению приложен файл. Размер - 48Kb
22 дек 16, 11:52    [20035793]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft SQL Server Ответить