Наша база данных приложений вендоров очень интенсивно использует TempDB.
Сервер является виртуальным (VMWare) с 40 ядрами и 768 ГБ ОЗУ под управлением SQL 2012 Enterprise SP3.
Все базы данных, включая TempDB, находятся на SSD уровня 1 в сети SAN. У нас есть 10 файлов данных tempdb, каждый предварительно увеличен до 1 ГБ, и они никогда не растут автоматически. То же самое с лог-файлом 70 ГБ. Флаги трассировки 1117 и 1118 уже установлены.
sys.dm_io_virtual_file_stats показывает более 50 терабайт, прочитанных / записанных в файлы данных и журналов tempdb за прошедший месяц, с совокупным значением io_stall 250 часов или 10 дней.
За последние 2 года мы уже настроили код поставщика и SP.
Теперь мы думаем о размещении файлов tempdb на RAM-диске, так как у нас есть тонна памяти. Так как tempdb уничтожается / воссоздается при перезагрузке сервера, он является идеальным кандидатом для размещения в энергозависимой памяти, которая также сбрасывается при перезагрузке сервера.
Я проверил это в более низкой среде, и это привело к более быстрому времени запроса, но увеличило использование ЦП, потому что ЦП выполняет больше работы вместо ожидания на медленном диске tempdb.
Кто-нибудь еще помещал свои базы данных tempdb в ОЗУ в системах с высоким oltp? Есть ли существенный недостаток? Есть ли какие-либо поставщики, чтобы специально выбрать или избежать?