powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / база с таблицами InMemory долго стартует
28 сообщений из 28, показаны все 2 страниц
база с таблицами InMemory долго стартует
    #39692593
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую

Есть такая проблема, при наличии в базе таблиц InMemory (DURABILITY = SCHEMA_ONLY) значительно увеличивается время начального включения базы. Например, база размером в 500 Мб с файловой группой Inmemory (160 пустых таблиц) объемом 30 Мб стартует 11-12 секунд; если дропнуть inmemory таблицы, то практически мгновенно.
Ситуация ухудшается, если на инстансе несколько таких баз и recovery происходит параллельно. До трех баз время старта сервера растёт линейно, начиная с четырех - растёт сразу до десятков минут (на более крупных базах - до часов).

Пока базы не пришли в онлайн, sql server занимает cpu максимально, до 100%. Память свободная при этом есть

Код: plaintext
Microsoft SQL Server 2017 (RTM-CU9) (KB4341265) - 14.0.3030.27 (X64) 
флаг -t 9944 не помог, права серверу на volume maintenance tasks тоже

В связи с этим два вопроса:
1. как это лечится?
2. так как базы по одной из offline стартовать можно относительно быстро, есть ли способ после выключения сервера указать ему, чтобы на старте некоторые базы сервер сразу выводил в offline?

Спасибо
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39692647
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39692672
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39692685
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill,

Там еще TF 9944 упомянут.
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39692686
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не заметил, что TF 9944 не помог...
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39693091
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогло добавить на виртуалку много ядер, чтоб их стало больше, чем таких баз на инстансе; время старта снова стало примерно как сумма восстановления отдельных баз.
но решение явно не во всех случаях подойдет и не закрыт вопрос с тем, что база с inmemory таблицами сама по себе стартует существенно дольше, чем без них
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39693682
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill,

сервер же должен отгрузить объекты и данные с диска память и скомпилировать процедуры, как я понимаю. Не просто сервис запустить и ждать команд, как с физическими таблицами.
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39693743
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakillпомогло добавить на виртуалку много ядер, чтоб их стало больше, чем таких баз на инстансе; время старта снова стало примерно как сумма восстановления отдельных баз.
но решение явно не во всех случаях подойдет и не закрыт вопрос с тем, что база с inmemory таблицами сама по себе стартует существенно дольше, чем без них


InMemory любит процессоры
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39693950
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовсервер же должен отгрузить объекты и данные с диска память и скомпилировать процедуры, как я понимаю. Не просто сервис запустить и ждать команд, как с физическими таблицами.Только загрузить объекты и скомпилировать процедуры. Без данных, потому что DURABILITY = SCHEMA_ONLY
Не, это ненормально, когда сей процесс длится долго, при увеличении размера время растёт, а после некоего порога размера резко прыгает, и затягивается на часы и дни.
a_voroninInMemory любит процессорыА я думаю, программирование любит криворуких программистов.
Видимо, самое правильное, не использовать никакие фичи эдак после 2005го :-)
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39693988
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot alexeyvg]Владислав Колосовсервер же должен отгрузить объекты и данные с диска память и скомпилировать процедуры, как я понимаю. Не просто сервис запустить и ждать команд, как с физическими таблицами.Только загрузить объекты и скомпилировать процедуры. Без данных, потому что DURABILITY = SCHEMA_ONLY
[quot]
да, вот именно поэтому и возникают вопросы


a_voroninInMemory любит процессорыно странною любовью.

одним из выходов выглядит запретить серверу поднимать базы параллельно. но такого способа тоже не нашел
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39694935
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill,

C# тяжко компилируется, это заметно, когда идет новая установка сервера. Он несколько дней GAC пилит по-моему.
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39694948
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовShakill,

C# тяжко компилируется, это заметно, когда идет новая установка сервера. Он несколько дней GAC пилит по-моему.Очевидно, к описанной проблеме это не имеет никакого отношения.
Если один и тот же код компилится разное (в тыщи раз) время, в зависимости от каких то других параметров, то это явный баг программистов, или, в возможно, архитекторов.
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695073
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

а почему Вы решили, что нативные процедуры и "ин-мемори" объекты не компилируются в CLR код?
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695109
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовalexeyvg,

а почему Вы решили, что нативные процедуры и "ин-мемори" объекты не компилируются в CLR код?Я так не решил.

Я разве про это писал?

Ещё раз:
Я написал о том, что если у вас 2 базы, в каждой по одному пустому "ин-мемори" объекту, и в одной бавзе ещё есть табличка с заказами на 100 заказов, а в другой табличка с миллионом счетов-фактур, то эти базы должны стартовать одинаково.
Потому что количество и размер "ин-мемори" объектов одинаковые.

Но почему то вторая база стартует медленнее.

Это было признано МС багом, был выпущен фикс, но в данном случае он не подействовал.
Может, в следующем кумулятивном апдэйте его просто не добавили, может, это потерянный фикс?
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695123
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgВладислав Колосовalexeyvg,

а почему Вы решили, что нативные процедуры и "ин-мемори" объекты не компилируются в CLR код?Я так не решил.

Я разве про это писал?

Ещё раз:
Я написал о том, что если у вас 2 базы, в каждой по одному пустому "ин-мемори" объекту, и в одной бавзе ещё есть табличка с заказами на 100 заказов, а в другой табличка с миллионом счетов-фактур, то эти базы должны стартовать одинаково.
Потому что количество и размер "ин-мемори" объектов одинаковые.

Но почему то вторая база стартует медленнее.

Это было признано МС багом, был выпущен фикс, но в данном случае он не подействовал.
Может, в следующем кумулятивном апдэйте его просто не добавили, может, это потерянный фикс?

Код "нативных процедур" показывали в одном из видосов Майкрософт. Конкретно нативные процедуры компилируются в C++.
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695129
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninКод "нативных процедур" показывали в одном из видосов Майкрософт. Конкретно нативные процедуры компилируются в C++.Это как связано с вопросом? Сиквел компилирует счета-фактуры, написанные бухгалтерами на С++ ? :-)
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695130
Rankatan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninКонкретно нативные процедуры компилируются в C++.
C++ ведь не низкоуровневый язык как в него может копулироваться. Может преобразовывается в C++ а потом уже компилируется?
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695149
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rankatana_voroninКонкретно нативные процедуры компилируются в C++.
C++ ведь не низкоуровневый язык как в него может копулироваться. Может преобразовывается в C++ а потом уже компилируется?

Сначала в С++, потом в ассемблер.

На самом деле для С++ уже дано существует сильнейшая оптимизация кода. В том числе ориентированная на конкретные процессоры. Если вы хотите, чтобы было быстро, то пишите на С++.

Вот здесь есть инфа о том, как добраться до кода и как он выглядит.
https://www.mssqltips.com/sqlservertip/3394/debugging-nativelycompiled-stored-procedures-statements/
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695183
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgНо почему то вторая база стартует медленнее.

Это было признано МС багом, был выпущен фикс, но в данном случае он не подействовал.
Может, в следующем кумулятивном апдэйте его просто не добавили, может, это потерянный фикс?

более того, фиксов по похожим проблемам с разными причинами было несколько
https://support.microsoft.com/en-us/help/4055727/recovering-a-database-with-memory-optimized-tables-takes-a-long-time
https://support.microsoft.com/en-hk/help/4090789/in-memory-oltp-database-takes-a-long-time-to-recover-in-sql-server
https://support.microsoft.com/en-us/help/3171001/fix-slow-database-recovery-in-sql-server-2016-due-to-large-log-when-yo
возможно, есть ещё какой-то не покрытый заплатками случай
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695241
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakillболее того, фиксов по похожим проблемам с разными причинами было несколько
...
возможно, есть ещё какой-то не покрытый заплатками случайДа уж...
Тогда только писать про баг, и трясти МС...
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695242
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShakillВ связи с этим два вопроса:
1. как это лечится?Если это действительно критично для бизнеса, можно дропать таблицы перед перезагрузкой (вручную, или как то автоматизировать), и создавать при старте базы.
Получится хоть как то решить проблему, пока МС будет править баг :-)
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695244
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgили как то автоматизироватьНапример, попробовать половить серверным триггером на событие DROP_EVENT_SESSION, для дефаултной сессии...
В общем, тут придётся подумать...
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39695246
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill2. так как базы по одной из offline стартовать можно относительно быстро, есть ли способ после выключения сервера указать ему, чтобы на старте некоторые базы сервер сразу выводил в offline?Можно сделать отдельный мастер файл, с нужными базами в оффлайн, и стартовать сервер с ним (опции -d, -l).
Но, конечно, тогда придётся возиться с поддержкой его правильной версии.
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #39697809
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgShakillВ связи с этим два вопроса:
1. как это лечится?Если это действительно критично для бизнеса, можно дропать таблицы перед перезагрузкой (вручную, или как то автоматизировать), и создавать при старте базы.
Получится хоть как то решить проблему, пока МС будет править баг :-)
если перезагрузка плановая, то это решается выведением баз в оффлайн перед выключением сервера
а вот если с сервером что-то случилось, то выходит, что момент упущен и получаем долгий старт
спасибо за вариант с мастерфайлом, посмотрю, насколько это может быть удобно в использовании
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
база с таблицами InMemory долго стартует
    #40024119
GlebZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill
alexeyvgпропущено...
Если это действительно критично для бизнеса, можно дропать таблицы перед перезагрузкой (вручную, или как то автоматизировать), и создавать при старте базы.
Получится хоть как то решить проблему, пока МС будет править баг :-)

если перезагрузка плановая, то это решается выведением баз в оффлайн перед выключением сервера
а вот если с сервером что-то случилось, то выходит, что момент упущен и получаем долгий старт
спасибо за вариант с мастерфайлом, посмотрю, насколько это может быть удобно в использовании
А смысл? Потом их надо обратно в онлайн и они точно также будут recovering.
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #40024135
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlebZ
Shakill
пропущено...

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

А смысл? Потом их надо обратно в онлайн и они точно также будут recovering.
Смысл в том, что они потом recovering быстро. Это только при старте все вместе медленно, а по одной после старта проблем нет.
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #40024410
GlebZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
GlebZ
пропущено...

А смысл? Потом их надо обратно в онлайн и они точно также будут recovering.
Смысл в том, что они потом recovering быстро. Это только при старте все вместе медленно, а по одной после старта проблем нет.

276 баз по минуте каждая... one by one.... В паралель при перезагрузке занимает 30 минут а так полтора часа.
SQL Server 2016 (SP2-CU7-GDR) (KB4505222) - 13.0.5366.0 (X64)
...
Рейтинг: 0 / 0
база с таблицами InMemory долго стартует
    #40024491
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlebZ
alexeyvg
пропущено...
Смысл в том, что они потом recovering быстро. Это только при старте все вместе медленно, а по одной после старта проблем нет.

276 баз по минуте каждая... one by one.... В паралель при перезагрузке занимает 30 минут а так полтора часа.
SQL Server 2016 (SP2-CU7-GDR) (KB4505222) - 13.0.5366.0 (X64)
А у ТС зависимость была нелинейная.
Может, какая то разница в версиях, не знаю.
К тому же вопрос ТС разумный, если у баз разные требования к времени простоя.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / база с таблицами InMemory долго стартует
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]