Файл Windows.edb представляет собой индексную базу данных службы поиска Windows (Windows Search). Поисковый индекс позволяет пользователям выполнять быстрый поиск данных и файлов на диске по индексной базе файлов, электронных писем в pst файлах и другого контента. Индексирование выполняется в фоновом режиме процессом
SearchIndexer.exe
. Естественно, чем больше файлов в системе, тем больший размер может быть у файла Windows.edb. В некоторых случаях он может вырастать до десятков и даже сотен Гб, занимая все свободное место на системном диске.
Файл Windows.edb является скрытым и по-умолчанию хранится в каталоге C:\ProgramData\Microsoft\Search\Data\Applications\Windows\.
Например, в моем случае файла Windows.edb вырос до 15,5 Гб (а это почти 15% на моем 100 Гб SSD диске).
Текущий размер файла Windows.edb в Windows можно получить следующей командой PowerShell:
((Get-Item $env:programdata'\Microsoft\Search\Data\Applications\Windows\Windows.edb').length/1GB)
Далее рассмотрим, как уменьшить размер индексного файла Windows.edb службы поиска Windows.
- Перестройка поискового индекса WindowsSearch
- Уменьшаем размер Windows.edb дефрагментацией с помощью утилиты Esentutl
- Удаление и пересоздание файла Windows.edb
- Перенос файла Windows.edb на другой диск
- Патч для предотвращения чрезмерного роста файла Windows.edb в Windows 8 / Windows Server 2012
- Почему сильно растет размер файла Windows.edb
Перестройка поискового индекса WindowsSearch
Самый “правильный”, но не самый эффективный способ уменьшить размер файла Windows.edb – выполнить переиндексацию данных на диске. Для этого откройте Панель Управления -> Indexing Options -> Advanced и нажмите кнопку Rebuild (для открытия этого диалогового окна достаточно выполнить команду:
Control srchadmin.dll
).
Через некоторое, 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
При работе утилита esentutl выводит прогресс выполнения дефрагментации файла EDB на экран.
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 после дефрагментации уменьшился на 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 8 / Windows Server 2012
Для решения проблема постоянного роста размера файла Windows.edb в Windows 8 и Windows Server 2012 было выпущено специальное исправление, которое включено в состав пакета обновлений от мая 2013 года – KB 2836988. Рекомендуется вручную скачать и установить его в данных версиях Windows. Обратите внимание, что обновление не уменьшает текущий размер файла Windows.edb, а только исправляет проблемы, вызывающие его чрезмерный рост. Для уменьшения размера edb файла вам нужно перестроить поисковый индекс или выполнить дефрагментацию как описано выше.
Почему сильно растет размер файла Windows.edb
Если после дефрагментации и/или перестройки поискового индекса, его размер опять начинает сильно расти, попробуйте следуующие методики, которые могут помочь решить проблему.
- Запустите встроенное средство исправления неполадок поиска Windows 10 (Search and Indexing Troubleshooter). Чтобы запустить его, выполните команду:
msdt.exe -ep SystemSettings_Troubleshoot_L2 -id SearchDiagnostic
. В списке проблем выберите, что поиск или индексация выполняется медленно (Search or indexing is slow). Далее мастер устранения неполадок попробуем вернуть службу Windows Search в нормальное состояние; - Старайтесь индексировать только необходимые контент. Исключайте из поискового индекса элементы, поиск в которых вы не используете. Нажмите кнопку Modify в настройках индексирования и в окне Indexing Location отключите пути и приложения, которые не нужно индексировать. После изменения настроек путей индексирования нужно каждый раз перестраивать индекс Advanced -> Rebuild; Также обратите внимание, что размер файла Windows.edb в Windows 10/8.1 растёт гораздо быстрее, чем в Windows 7. Дело в том, что в современных версиях Windows индексируются все содержимое файлов, не зависимо от их размеров. А Windows 7 индексировалась только первая часть больших документов.
- Если вы используете на компьютере Outlook с PST файлами, то при их индексировании размер файла Windows.edb растет пропорционально размеру PST файлов. Это может привести к исчерпанию места на диске и проблемам с производительностью. В этом случае Microsoft рекомендует исключить Outlook из списка индексируемых элементов.
Естественно при это в Outlook перестанет работать поиск (это не будет проблема, если вы храните своя ящик на сервере Exchange с включенным поисковым индексом).
- Если ничего не помогает, и размер файла постоянно растет, вы можете полностью отключить службу wsearch, или настроить логон скрипт, который сбрасывает поисковый индекс при каждой загрузке компьютера.
Все хорошо, один вопрос. Накой индексировать ссд диск ?!
Ну в этом нет ничего страшного. А вот есть умельцы, которые файл подкачки делают на SSD — это уже серьезно )))
И что — файл подкачки на SSD? Что не так? Совсем его отключить? Не вариант — есть масса программ, которые не работают корректно, ели своп-файла нет вовсе!
Я с этим сталкивался, и знаю, о чем говорю.
Перенести расположение свопа на другой, «тормозной» раздел на HDD? А оно нам надо, ели система стоит на быстром SSD?
Так что не так с файлом подкачки, жестко зафиксированным в размерах (скажем, 2 Гб), и расположенном на быстром SSD диске?
Что скажете, «умельцы»?
Не так то, что содержимое файла подкачки постоянно изменяется (т.е. происходит перезапись)
Это логично. А проблема-то в чём?
Если ты про то, что изнашивается SSD, то какую альтернативу предлагаешь? Отключить файл подкачки? Тогда рано или поздно столкнёшься с ошибкой нехватки памяти (даже если у тебя 64 гига оперативки). Перенести его на медленный жёсткий диск? Тогда система начнёт тормозить и от SSD станет мало толку.
Ты уж либо поставил SSD, чтобы система быстро работала, либо работай на черепахе, зато износ меньше.
Да ничего там не изнашивается… Умереть можно быстрее, чем на ssd хотя бы 10% ресурса израсходуется из-за файла подкачки. Исключение- какие-то частные случаи, когда какие-то программы, которые активно работают с диском, из-за багов и кривого кода в тысячи раз чаще что-то пишут на диск. Наслушаются по сарафанному радио какой-то чуши не разобравшись в вопросе и дальше эту дичь распространяют
Уже 7 лет файл подкачки постоянного размера 1024MiB на SSD и нет никаких заметных отрицательных последствий. Можешь сам убедиться, что запмсь на системных диск мизерная, те мболее в файл подкачки.
C:\Windows\SysWOW64\esentutl.exe — это 32-bit-word architecture. Вы сами читаете то что пишете
Жаль, что Вы читаете невнимательно. В статье написано про 64-бит системы тоже.
Ну предположим статью я прочитал, и не давал никаких оценочных комментариев, а лишь указал конкретно на эту часть:
Если тут ничего не смущает, то пусть и висит как есть…
Да, вы правы. Спасибо, что читаете мои статьи внимательно 🙂 Внес именения в статью.
Приветствую, помогите с проблемой, перенес индекс с диска С на диск D, после переноса обратно на диск С, автоматически создается папка Indexing на диске D, даже после удаления этой папки, инструкция «Удаление и пересоздание файла Windows.edb» не помогла, как вернуть все на свои места? система w10.
У вас все было верно написано
Приветствую, помогите с проблемой, перенес индекс с диска С на диск D, после переноса обратно на диск С, автоматически создается папка Indexing на диске D, даже после удаления этой папки, инструкция «Удаление и пересоздание файла Windows.edb» не помогла, как вернуть все на свои места? система w10.
Какой путь к индексу пишет в настройках? И где лежит активный файл windows.edb
Пробовали средство исправления неполадок поиска Windows 10 ?
В настройках индексирования «C:\ProgramData\Microsoft» сам .edb в «C:\ProgramData\Microsoft\Search\Data\Applications\Windows» пробовал не помогло, менял диск с другим D, по инструкции тут тоже не помогает, сейчас на D пустая папка с папками «D:\Indexing\Search\Data\Temp\usgthrsvc» не хотелось бы конечно из за этого переустанавливать ОС.
Т.е. сам индекс перенесен на C:, но создается какая-то временная папка на D:
Готового решения не знаю. А вы с симлинками не игрались?
dir /AL /S C:\ | find "SYMLINK"
Нет, можно вообще еще что то придумать?)
У меня «лежит» bat-файл для удаления windows.ebd, который здесь описан. Время от времени пользуюсь, полезно. Вот сегодня 20 ГБ памяти освободил. Важное замечание — bat необходимо запускать от имени администратора, иначе не сработает.