Файл Windows.edb представляет собой индексную базу данных службы поиска Windows (Windows Search), которая обеспечивает пользователям быстрый поиск данных на файловой системе за счет индексирования файлов, писем в pst файлах и другого контента. Естественно, чем больше файлов в системе, тем больший размер может занимать файл Windows.edb. В некоторых случаях он может вырастать до десятков и даже сотен Гб, занимая все свободное место на системном диске.
Данный файл является скрытым и по-умолчанию хранится в каталоге C:\ProgramData\Microsoft\Search\Data\Applications\Windows\.
Например, в моем случае размер файла Windows.edb составляет более 15,5 Гб (а это почти 15% на моем 100 Гб SSD диске)
Есть несколько способов управления ростом размера файла Windows.edb
Перестройка индекса Windows Search
Самый «правильный», но не самый эффективный способ уменьшить размер файла Windows.edb – запустить процесс переиндексации данных в системе. Для этого откройте Панель Управления -> Indexing Options -> Advanced -> Rebuild (для открытия этого диалога достаточно выполнить команду rundll32.exe shell32.dll,Control_RunDLL srchadmin.dll
).
Через некоторое время (как правило довольно продолжительное), система закончит переиндексацию данных и размер edb файла несколько уменьшится.
Дефрагментация Windows.edb с помощью Esentutl
Так как индексный файл службы поиска Windows представляет собой базу в формате EDB, можно выполнить ее дефрагментацию с помощью стандартной утилитой для обслуживания таких баз esentutl.exe — Extensible Storage Engine Utilities (должна быть хорошо знакома администраторам Exchange). Дефрагментация базы выполняется в офлайн режиме (база не должна использоваться), поэтому сначала придется остановить службы поиска. Все эти операции можно объединить в один скрипт:
sc config wsearch start=disabled
sc stop wsearch
esentutl.exe /d %AllUsersProfile%\Microsoft\Search\Data\Applications\Windows\Windows.edb
sc config wsearch start=delayed-auto
sc start wsearch
Утилита esentutl в процессе работы отображает прогресс выполнения дефрагментации на экране.
"C:\Windows\SysWOW64\esentutl.exe" /d %AllUsersProfile%\Microsoft\Search\Data\Applications\Windows\Windows.edb
В моем случае размер edb файла после дефрагментации уменьшился на 30%.
Удаление и пересоздание файла Windows.edb
Если места на диске критически мало, можно безопасно удалить файл Windows.edb. Для этого, остановите службу Windows Search и удалите файл.
net stop "Windows Search"
del %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.edb
net start "Windows Search"
После перезапуска, служба Windows Search начнет процесс переиндексации системы и пересоздаст файл Windows.edb (в процессе полной переиндексации производительность системы может снизится).
Перенос файла Windows.edb на другой диск
В некоторых случаях, когда размер файла постоянно увеличивается Windows.edb, имеет смысл перенести индексную базу поиска Windows на другой том. Тем самым экстремальный рост базы не приведет к остановке системы при исчерпании свободного места на системном разделе. Как правило, это необходимо выполнять на терминальных серверах RDS, на которых пользователи активно работают с файлами, личными папками и другим индексируемым контентом.
Для смены местоположения файла откройте Control Panel\Indexing Options\Advanced\ Index location->New Location и укажите путь к новому местоположению файла Windows.edb.
Исправление для предотвращения чрезмерного роста файла Windows.edb в Windows 8 / Windows Server 2012
Для решения проблема постоянного роста размера файла Windows.edb в Windows 8 и Windows Server 2012 было выпущено специальное исправление, которое включено в состав пакета обновлений от мая 2013 года – KB 2836988. Рекомендуется скачать и установить его в данных версиях Windows.