Миграция огромных объемов данных в SQL - PullRequest
3 голосов
/ 16 февраля 2009

Мне нужно перенести чрезвычайно большие объемы данных (миллионы файлов, терабайты данных) в кластер SQL. Процесс миграции разделен на еженедельные миграции с несколькими сотнями новых пользователей (т.е. генераторов запросов) каждую неделю.

Пока все шло довольно гладко, но в последнее время я обнаружил, что кластер SQL начал работать довольно странно. Загрузка ЦП стабильна и составляет около 20%, но SQL-процесс постоянно выделяет новую память, пока не останется ничего (около 12 ГБ). Когда это происходит, процесс «сбрасывает» всю память и снова начинает увеличиваться до 12 ГБ. Во время этого дампа часто случается, что сервер перестает отвечать на запросы и, в конечном итоге, время ожидания истекает, что не может произойти во время этой недели.

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

Просматривая журналы событий, я обнаружил некоторое предупреждение WMI, предшествующее тайм-ауту. Мы используем System Center Operations Manager 2007 для просмотра системы. Может ли это объяснить такое поведение?

Благодарю за любую помощь!

1 Ответ

1 голос
/ 16 февраля 2009

Нет, это ненормальное поведение.

SQL Server будет динамически выделять память по мере необходимости и освобождает память соответствующим образом, когда на нее оказывается давление. Однако он не должен сбрасывать все содержимое.

Не могли бы вы предоставить более подробную информацию о вашей среде и уточнить, какая у вас конфигурация памяти SQL.

Если вам требуется подробная помощь, не стесняйтесь, напишите мне по электронной почте и предоставьте результаты команды DBCC.

DBCC memorystatus
...