Боремся с ростом файла Windows.edb службы поиска Windows

Файл Windows.edb представляет собой индексную базу данных службы поиска Windows (Windows Search). Поисковый индекс позволяет пользователям выполнять быстрый поиск данных и файлов на диске по индексной базе файлов, электронных писем в pst файлах и другого контента. Индексирование выполняется в фоновом режиме процессом SearchIndexer.exe. Естественно, чем больше файлов в системе, тем больший размер может быть у файла Windows.edb. В некоторых случаях он может вырастать до десятков и даже сотен Гб, занимая все свободное место на системном диске.

Файл Windows.edb является скрытым и по-умолчанию хранится в каталоге C:\ProgramData\Microsoft\Search\Data\Applications\Windows\.

Примечание. Файл Windows.edb есть во всех современных клиентских и серверных ОС Microsoft: от Windows 7/Server 2008 R2 до Windows 10/Server 2019.

Например, в моем случае файла Windows.edb вырос до 15,5 Гб (а это почти 15% на моем 100 Гб SSD диске).

Большой размер файла Windows.edb на диске

Текущий размер файла Windows.edb в Windows можно получить следующей командой PowerShell:

((Get-Item $env:programdata'\Microsoft\Search\Data\Applications\Windows\Windows.edb').length/1GB)

powershell команда чтобы узнать размер файла windows.edb в windows 10

С помощью простого PowerShell скрипта вы можете найти все большие файлы на диске.

Далее рассмотрим, как уменьшить размер индексного файла Windows.edb службы поиска Windows.

Перестройка поискового индекса WindowsSearch

Самый “правильный”, но не самый эффективный способ уменьшить размер файла Windows.edb – выполнить переиндексацию данных на диске. Для этого откройте Панель Управления -> Indexing Options -> Advanced и нажмите кнопку Rebuild (для открытия этого диалогового окна достаточно выполнить команду: Control srchadmin.dll). Переиндексация базы Windows Search

Через некоторое, Windows Search закончит полную переиндексацию данных на диске и размер edb файла несколько уменьшится время (у меня на компьютере ребилд поискового индекса занял несколько часов).

Уменьшаем размер Windows.edb дефрагментацией с помощью утилиты Esentutl

Индексный файл службы поиска Windows представляет собой базу в формате EDB. Вы можете выполнить дефрагментацию EDB базы с помощью стандартной утилиты обслуживания таких баз — esentutl.exe (Extensible Storage Engine Utilities — должна быть хорошо знакома администраторам Exchange). Дефрагментация базы выполняется в офлайн режиме (база не должна использоваться), поэтому сначала придется остановить службы поиска. Все эти операции можно объединить в один bat/cmd скрипт:

sc config wsearch start=disabled
sc stop wsearch
esentutl.exe /d %ProgramData%\Microsoft\Search\Data\Applications\Windows\Windows.edb
sc config wsearch start=delayed-auto
sc start wsearch

Совет. Для выполнения дефрагментации EDB базы на диске должно быть достаточно свободного места, т.к. будет создана копия edb файла.

При работе утилита esentutl выводит прогресс выполнения дефрагментации файла EDB на экран.

Примечание. Если при выполнении команды esentutl появляется ошибка:

Operation terminated with error -1213 (JET_errPageSizeMismatch, The database page size does not match the engine) after 10.125 seconds

Это означает что ваша система 64 битная и для выполнения дефрагментации нужно использовать x32 версию esentutl. В этом случае третья команда будет выглядеть так:
"C:\Windows\SysWOW64\esentutl.exe" /d %AllUsersProfile%\Microsoft\Search\Data\Applications\Windows\Windows.edb

дефрагментация базы windows.edb с помощью esentutl.exe

В моем случае размер файла Windows.edb после дефрагментации уменьшился на 30%.

Удаление и пересоздание файла Windows.edb

Если места на диске критически мало, можно удалить файл Windows.edb. Это действие безопасно, т.к. вы не теряете никакие данные, сбрасывается только поисковый индекс. Для удаления файла Windows.edb остановите службу Windows Search, затем удалите файл и запустите службу.

net stop "Windows Search"
REG ADD "HKLM\SOFTWARE\Microsoft\Windows Search" /v SetupCompletedSuccessfully /t REG_DWORD /d 0 /f
del %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.edb
net start "Windows Search"

Значение параметра реестра SetupCompletedSuccessfully = 0 в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search заставляет службу Windows Search при следующем запуске сбросить текущие настройки и пути индексирования, восстановит стандартные параметры wsearch и добавит пути для индексирования по-умолчанию.

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

Перенос файла Windows.edb на другой диск

В некоторых случаях, когда размер файла постоянно увеличивается Windows.edb, имеет смысл перенести индексную базу поиска Windows на другой диск (раздел). Тем самым экстремальный рост поисковой базы не приведет к остановке ОС из-за исчерпания свободного места на системном разделе. Довольно часто файл Windows.edb переносят на на терминальных серверах RDS, на которых пользователи активно работают с файлами, личными папками и другим индексируемым контентом.

Для смены местоположения файла перейдите в Control Panel –> Indexing Options -> Advanced -> Index location-> New Location и укажите путь к новому местоположению файла Windows.edb и нажмите OK.

Перезапустите службу поиска:
Restart-Service wsearch

Перенос файла windows.edb на другой диск

Патч для предотвращения чрезмерного роста файла Windows.edb в Windows 8 / Windows Server 2012

Для решения проблема постоянного роста размера файла Windows.edb в Windows 8 и Windows Server 2012  было выпущено специальное исправление, которое включено в состав пакета обновлений от мая 2013 года – KB 2836988.  Рекомендуется вручную скачать и установить его в данных версиях Windows. Обратите внимание, что обновление не уменьшает текущий размер файла Windows.edb, а только исправляет проблемы, вызывающие его чрезмерный рост. Для уменьшения размера edb файла вам нужно перестроить поисковый индекс или  выполнить дефрагментацию как описано выше.

Почему сильно растет размер файла Windows.edb

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

  1. Запустите встроенное средство исправления неполадок поиска Windows 10 (Search and Indexing Troubleshooter). Чтобы запустить его, выполните команду: msdt.exe -ep SystemSettings_Troubleshoot_L2 -id SearchDiagnostic . В списке проблем выберите, что поиск или индексация выполняется медленно (Search or indexing is slow). Далее мастер устранения неполадок попробуем вернуть службу Windows Search в нормальное состояние;windows средство исправления проблем службы поиска windows search
  2. Старайтесь индексировать только необходимые контент. Исключайте из поискового индекса элементы, поиск в которых вы не используете. Нажмите кнопку Modify в настройках индексирования и в окне Indexing Location отключите пути и приложения, которые не нужно индексировать. После изменения настроек путей индексирования нужно каждый раз перестраивать индекс Advanced -> Rebuild; исключить элементы индексирования службы поиска windows
    Также обратите внимание, что размер файла Windows.edb в Windows 10/8.1 растёт гораздо быстрее, чем в Windows 7. Дело в том, что в современных версиях Windows индексируются все содержимое файлов, не зависимо от их размеров. А Windows 7 индексировалась только первая часть больших документов.
  3. Если вы используете на компьютере Outlook с PST файлами, то при их индексировании размер файла Windows.edb растет пропорционально размеру PST файлов. Это может привести к исчерпанию места на диске и проблемам с производительностью. В этом случае Microsoft рекомендует исключить Outlook из списка индексируемых элементов. отключить outlook из индексации службой windows searchЕстественно при это в Outlook перестанет работать поиск (это не будет проблема, если вы храните своя ящик на сервере Exchange с включенным поисковым индексом).
  4. Если ничего не помогает, и размер файла постоянно растет, вы можете полностью отключить службу wsearch, или настроить логон скрипт, который сбрасывает поисковый индекс при каждой загрузке компьютера.

Предыдущая статья Следующая статья


Комментариев: 15 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)