Файл Windows.edb (Windows.db в Windows 11) хранит индексную базу данных службы поиска Windows (Windows Search). Поисковый индекс позволяет пользователям выполнять быстрый поиск файлов, электронных писем в pst файлах и другого контента на диске. Индексирование файлов выполняется в фоновом режиме процессом
SearchIndexer.exe
. При большом количестве файлов на диске размер файла Windows.edb может вырастать до десятков и даже сотен Гб, занимая все свободное место на системном диске.
Файл Windows.edb является скрытым и по-умолчанию хранится в каталоге C:\ProgramData\Microsoft\Search\Data\Applications\Windows\.
Чтобы быстро узнать текущий размер файла Windows.edb можно воспользоваться PoweShell командой:
((Get-Item $env:programdata'\Microsoft\Search\Data\Applications\Windows\Windows.edb').length/1GB)
В моем примере при поиске больших файлов на диске, я обнаружил что размер файла Windows.edb вырос до 15,5 Гб (а это почти 15% на моем 100 Гб SSD диске).
Далее рассмотрим, как уменьшить размер индексного файла Windows.edb службы поиска Windows.
Сбросить поисковый индекса службы Windows Search
Для уменьшения размера файла Windows.edb можно использовать встроенную функцию Windows Search, которая выполняет полную переиндексации содержимого диска.
- Откройте панель Settings -> Search -> Searching Windows -> Advanced Search Indexer Settings (в классической Control Panel перейдите в Indexing Options, или выполните команду
сontrol srchadmin.dll
); - Нажмите кнопку Advanced -> Rebuild;
- Windows Search удалит старый файл Windows.edb, выполнит сканирование диск, переоздаст и перестроит индексный файл. Этот процесс может занять длительное время в зависимости от количества файлов на диске.
Уменьшаем размер файла Windows.edb с помощью дефрагментации
Индексный файл службы поиска Windows представляет собой базу в формате EDB. Можно выполнить офлайн дефрагментацию EDB базы с помощью встроенной утилиты esentutl.exe (Extensible Storage Engine Utility), хорошо знакомой администраторам Exchange. Воспользуйтесь готовым BAT скриптом для остановки службы Windows Search и офлайн дефрагментации файла Windows.edb:
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
Дефрагментации позволяет уменьшить размер базы поиска на 20-50 процентов
Этот способ можно применить для дефрагментации файла службы поиска на всех версиях Windows, кроме Windows 11. В Windows 11 вместо файла Windows.edb с типом базы данных JET, используется новый формат файла Windows.db. Это база данных на базе SQLite, которую нельзя индексировать с помощью esentutl.exe.
Ручное удаление и пересоздание файла 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
указывает службе Windows Search, что нужно восстановить настройки по-умолчанию.После перезапуска, служба Windows Search начнет процесс переиндексации данных на дисках компьютера и пересоздаст файл Windows.edb (в процессе полной переиндексации производительность системы может снизится).
Перенос файла Windows.edb на другой диск
В некоторых сценариях пользователи могут активно использовать поиск на диске через Windows Search (например, пользователи терминального RDS сервера часто используют поиск в папках и личных PST файлах). В таком случае, если вы не можете кардинально уменьшить размер файла Windows.edb или постоянно сбрасывать поисковые индексы, вы можете перенести его с системного раздела на другой диск.
Для смены местоположения файла перейдите в Control Panel –> Indexing Options -> Advanced -> Index location-> New Location и укажите путь к новому местоположению файла Windows.edb и нажмите OK.
Перезапустите службу поиска:
Restart-Service wsearch
Почему сильно растет размер файла Windows.edb
Если после дефрагментации и/или перестройки поискового индекса, его размер опять начинает сильно расти, попробуйте следующие методики, которые могут помочь решить проблему.
- Запустите встроенное средство исправления неполадок поиска Windows (Search and Indexing Troubleshooter). Выполните команду:
msdt.exe -ep SystemSettings_Troubleshoot_L2 -id SearchDiagnostic
. В списке проблем выберите, что поиск или индексация выполняется медленно (Search or indexing is slow). Далее мастер устранения неполадок попробуем вернуть службу Windows Search в нормальное состояние; - Старайтесь индексировать только необходимые контент. Исключайте из поискового индекса элементы, поиск в которых вы не используете. Нажмите кнопку Modify в настройках индексирования и в окне Indexing Location отключите пути и приложения, которые не нужно индексировать. После изменения настроек путей индексирования перестройте индекс Advanced -> Rebuild;
- Если вы используете на компьютере 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 необходимо запускать от имени администратора, иначе не сработает.