Я установил 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 является удивительным. Если действительно происходит что-то странное, это может помочь вам найти это.