Назад | Перейти на главную страницу

SQL Server Express 2012 - необъяснимая постоянная активность диска

Я установил Microsoft SQL Server Express 2012 на рабочий стол под Windows 8.1, чтобы научиться SQL (и в конечном итоге работать с некоторыми данными). Я также использую SQL Server Management Studio.

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

Вот что я знаю точно:

1. Дисковая активность останавливается, если я останавливаю SQL Server из командной строки (net stop mssqlserver).

2. Дисковая активность НЕ возобновляется, если я перезапускаю SQL Server из командной строки (net start mssqlserver) и я не в SQL Server Management Studio.

3. Дисковая активность НЕ возобновляется, если я открываю SQL Server Management Studio, подключаюсь к серверу (который является рабочим столом) и больше ничего не делаю.

4. Дисковая активность начинается, как только я открываю окно запроса (с кнопкой «Новый запрос»), прежде чем я сделаю что-нибудь еще. И если я закрою окно, ничего не делая, активность диска продолжится.

5. В Activity Monitor в SSMS я вижу один запущенный процесс: SELECT в базе данных tempdb. Но я не запустил ни одного запроса.

Есть идеи, что может происходить? Я не хочу, чтобы мой жесткий диск постоянно изнашивался бессмысленно, просто чтобы запустить SQL Server Express, ничего не делая.

ОБНОВЛЕНИЕ: помимо «Системных баз данных», показанных в SSMS, у меня есть только три базы данных. Одна из них - база данных AdventureWorks2012 от Microsoft для обучения. Другой - это база данных почти без данных, которая также основана на книге. Третий - это два текстовых файла, которые я загрузил в базу данных.

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

Я пытаюсь сказать, что SQL Server постоянно ударяет по моему диску, когда я НИЧЕГО не делаю. Я не выполнял ни одного запроса. Все, что я сделал, это запустил SQL Server, запустил SSMS и открыл новое окно запроса. Тогда происходит постоянная дисковая активность.

Монитор активности показывает некоторые «Последние дорогостоящие запросы», которые должны быть инициированы системой, потому что я не инициировал их, но я не могу опубликовать снимок экрана, потому что я новичок.

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

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

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

Дисковый ввод-вывод: SQL почти постоянно записывает в журналы транзакций. Список записанных вещей включает:

  • Начало и конец каждой транзакции.
  • Каждое изменение данных (вставка, обновление или удаление). Это включает изменения с помощью системных хранимых процедур или операторов языка определения данных (DDL) в любой таблице, включая системные таблицы.
  • Каждый экстент и выделение или освобождение страниц.
  • Создание или удаление таблицы или индекса.

У Брента Озара есть действительно хорошая статья о том, как SQL Server хранит данные. Вот.

Что касается SQL Server Management Studio, когда вы подключаетесь к SQL Server через SSMS, он запрашивает сервер для создания списка баз данных и т. Д.

Короче говоря, без дополнительной информации я не удивлен, что SQL использует ваш жесткий диск. Чтобы получить дополнительную информацию о том, что работает, sp_WhoIsActive является удивительным. Если действительно происходит что-то странное, это может помочь вам найти это.