Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
stavgreengo Member Откуда: Сообщений: 710 |
Добрый день, коллеги.
У меня в продакшине организована выноска tempdb на RAM диск. ОЗУ на сервере 16ГБ, базы большие, работа с ними плотная, а архитектура приложения дурная, поэтому размер диска RAM я подобрал исходя из продолжительной реальной пользовательской нагрузки по объёму для tempdb +20%. Далее разбил tempdb в соответствии с суммарным числом ядер на сервере + ещё один файл в той же ФГ с размером в 1Мб поместил на жёсткий диск. В результате такого "хода конём" у меня отпала проблема в том что сервер станет колом в случае незапланированной большой нагрузке на tempdb, а в тоже самое время файл на жёстком диске фактически не используется когда для работы хватает объёма tempdb на RAM диске. Но в последние время периодически некоторые нерадивые пользователи всё таки запускают тяжёлые для tempdb запросы, так вот вопрос. Что будет если я всё таки уберу свой файл с жёсткого диска и запустят такой вот тяжёлый запрос ? Отвалится ли пользовательский коннект потом по ошибке, что естественно приведёт к очищению его данных в tempdb и все смогут работать дальше, а пострадает только один искомый пользователь или всё таки все сразу серьёзно и надолго колом станут ? |
||
9 апр 13, 12:49 [14156057] Ответить | Цитировать Сообщить модератору |
stavgreengo Member Откуда: Сообщений: 710 |
А да, почему это меня особо стало беспокоить, потому что размер файла на жёстком диске бывает вырастает после таких запросов до 3Гб и MS SQL начинает писать по большому счёту потом только в него при работе c tempdb. А так как моя система ERP достаточна требовательна к скоростной работе tempdb то все сразу начинают ощущать эффект торможения :( Шринкануть файл на жёстком диске я на ходу не могу из-за активной пользовательской работы. Может мне проще будет файл на жёстком диске перенести в отдельную ФГ, а потом при надобности просто шринковать его методом переноса информации между ФГ ? |
9 апр 13, 12:56 [14156095] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Ваш вопрос о том, что будет, если в tempdb закончится свободное место что ли ? |
||
9 апр 13, 13:02 [14156118] Ответить | Цитировать Сообщить модератору |
stavgreengo Member Откуда: Сообщений: 710 |
Ну то что ничего хорошего это точно :) но есть слабая надежда что коннект запроса который привёл к большому потреблению места на tempdb потом всё таки упёршись в невозможность дальнейшего расширения отвалится по ошибке, а соответственно очистятся его в tempdb данные и все смогут работать дальше. Или это я уже нафантазировал, вообщем разъясните немножко ситуацию, как оно будет на практике ? |
||||
9 апр 13, 13:15 [14156190] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Отвалится любой запрос, которому не хватит места в tempdb
Если вы про временные объекты, то да, они автоматически удалятся |
||||
9 апр 13, 13:18 [14156221] Ответить | Цитировать Сообщить модератору |
stavgreengo Member Откуда: Сообщений: 710 |
Glory, спасибо. Ну и второй вопрос, как будет лучше оставить всё как есть, то есть чтобы файл на жёстком диске входил в ту же ФГ что и остальные файлы tempdb на RAM или вынести его отдельно в свою ФГ на жёсткий диск ? |
9 апр 13, 13:45 [14156462] Ответить | Цитировать Сообщить модератору |
rahzer Member Откуда: Сообщений: 2297 |
Купить 2 SSD гигов на 200 не выход? Они дешевле, чем оперативу наращивать серверную, хотя не известно, поддерживает ли Ваша ОС SSD и контроллер |
9 апр 13, 13:56 [14156530] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
А как вы заставите сервер создавать объекты в этой ФГ ? |
||
9 апр 13, 14:04 [14156570] Ответить | Цитировать Сообщить модератору |
stavgreengo Member Откуда: Сообщений: 710 |
а точно, там же работа со 2 ФГ, запрещена. Забыл уже почему именно так сделал :) Ещё раз спасибо. |
||||
9 апр 13, 15:21 [14157068] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |