搜尋索引器 CPU 偏高時,該等、縮小還是重建
SearchIndexer.exe 是 Windows 搜尋服務(WSearch)在讀你的檔案、郵件和其他內容,好讓開始功能表、檔案總管和 Outlook 能馬上搜到東西。剛裝完或升級完系統、加了一個很大的資料夾、或者重建過索引以後,它佔一陣 CPU 和磁碟是正常的。真正的問題是它一直做不完、反覆從頭開始,或者索引已經大到超出它能順暢處理的範圍。所以先看索引狀態。大多數辦法是把索引變小,而不是把搜尋關掉。
索引器在做什麼
微軟的索引常見問題把索引解釋為查看電腦上的檔案、郵件和其他內容,並把它們的資訊編成目錄。第一次執行可能要花上幾個小時,之後就在背景進行,只重新索引有變化的資料。
工作量有多大,要看索引了多少項。微軟的搜尋效能排查說明給了一個量級:
| 已索引項目數 | 微軟的說法 |
|---|---|
| 少於 30,000 | 一般使用者的電腦 |
| 最多 300,000 | 重度使用者的電腦 |
| 超過 400,000 | 可能開始出現效能問題 |
| 約 100 萬 | 上限,再往上可能失敗,或者造成 CPU、記憶體、磁碟佔用過高 |
同一篇還提到,電腦上的 Outlook 信箱預設也會被索引。一個信箱超過 600 萬項時,索引器的效能可能下降。
改設定之前,先看狀態
Windows 11 在設定 › 隱私權與安全性 › 搜尋 Windows 裡,看已索引的項目數。Windows 10 在設定 › 搜尋 › 搜尋 Windows。較新的 Windows 11 版本把這一頁叫作「搜尋」,索引選項放在「尋找我的檔案」下面。
狀態提示能告訴你眼前是哪一種活動。下表第一欄是英文介面的原文,中文系統顯示的是對應譯文:
| 狀態 | 意思 | 怎麼辦 |
|---|---|---|
| Indexing complete | 索引已經建好 | 現在的 CPU 偏高是別的原因,回工作管理員再看 |
| Indexing in progress | 正在加入新增或改動的檔案 | 讓電腦開著並接上電源,等幾個小時 |
| Indexing speed is reduced because of user activity | 在工作,但你用電腦時會放慢 | 等著,或者讓電腦接著電源閒置一會 |
| Index is performing maintenance | 正在復原或最佳化索引資料庫 | 最多等 30 分鐘,反覆出現就檢查硬碟 |
| Indexing is not running | 服務停了或者被停用 | 檢查 Windows Search 服務 |
微軟對維護這一項加了一句提醒。寫入索引出問題往往出現在硬碟故障之前。這條提示反覆出現的話,先確認個人資料已經備份。查磁碟活動那篇可以幫你分清是索引在忙,還是硬碟本身在吃力。
首次索引還是死循環
首次索引或者重建,看著嚇人,但總有結束的時候。微軟說重建可能要 24 小時。這段時間裡已索引的數字一直往上漲,狀態顯示正在索引。你打字或者前景工作讓 CPU、磁碟很忙時,索引器會主動讓路。
死循環看起來不一樣。連著好幾天都到不了索引完成,已索引的數字掉下去又漲回來,或者維護提示一再出現。下結論之前,連續兩三天每天記一次項目數。
傳統還是增強
常見問題裡說了兩種範圍:
- 傳統:預設索引文件、圖片、音樂資料夾和桌面,在搜尋效能和資源佔用之間取得平衡。
- 增強:索引整台電腦,包括所有使用者資料夾和檔案,可能佔用更多系統資源。
電腦上有大型專案目錄、照片庫或者遊戲安裝目錄時,開著增強模式很容易把項目數推到微軟說會出問題的區間。換回傳統,只加上自己真正會搜的資料夾,往往就夠了。
排除不需要搜尋的資料夾
微軟的排查說明給了兩種縮小索引的辦法:
- 整個資料夾排除:設定 › 隱私權與安全性 › 搜尋 Windows › 新增要排除的資料夾。Windows 10 在設定 › 搜尋 › 搜尋 Windows。
- 精確選位置:在同一頁點「進階索引選項」。Windows 10 叫「進階搜尋索引器設定」。然後在索引選項裡點「修改」,勾選或取消勾選要索引的位置。
適合排除的是那些你從不按名稱或內容去搜的資料夾。開發專案裡的建置產物和相依目錄、虛擬機器磁碟、遊戲庫、只當封存留著的大批下載。索引選項 › 進階 › 檔案類型裡,還能調整某種副檔名的處理方式。
用 Outlook 的話,微軟建議把郵件同步時間範圍從預設的一年改短一些,減少需要索引的內容。
看看索引到底多大
索引資料庫在 C:\ProgramData\Microsoft\Search\Data\Applications\Windows 裡。Windows 11 是 Windows.db,Windows 10 是 Windows.edb。微軟說要看檔案「內容」裡的「佔用空間」,不要看檔案總管裡的大小。因為索引器對稀疏檔案做了壓縮,清單裡顯示的大小不準。資料庫很大,說明該縮小索引範圍,而不是去刪這個檔案。
先疑難排解,再重建
Windows 10 內建「搜尋和索引」疑難排解。微軟把它列在正在移除的舊版疑難排解裡。較新的 Windows 11 會改為引導到設定 › 系統 › 疑難排解 › 其他疑難排解裡的「取得說明」。
重建放在最後。改完索引範圍以後重建一次,正好讓索引和新的選擇對上。Windows 11 的路徑是設定 › 隱私權與安全性 › 搜尋 Windows › 進階索引選項 › 進階 › 重建。Windows 10 的同一個按鈕在進階搜尋索引器設定 › 進階裡。之後最多 24 小時內搜尋結果可能不全,索引器也會很忙。所以最好晚上開始,電腦接著電源。
不要這樣做
- 不要為了壓住 CPU 就停用 Windows Search 服務。開始功能表、檔案總管和 Outlook 的搜尋都會變慢或搜不全。微軟提到有些防毒軟體和「最佳化電腦」類工具會停用它,並建議想用搜尋就別執行這類工具。
- 不要反覆重建。每次重建都要從頭再跑一遍漫長的首次索引。先改範圍,再重建一次。
- 不要刪
C:\ProgramData\Microsoft\Search\Data裡的內容。微軟只在設定頁整頁變灰、服務已經無法啟動的情況下才這樣處理。 - 不要在工作管理員裡結束
SearchIndexer.exe來解決問題。索引不會因此變小。剩下的工作在服務下次執行時還在那裡等著。
Mole for Windows 不碰索引本身。最佳化頁在這裡只有一項「啟動 Windows 搜尋」,只在服務設為自動啟動、卻已經停掉的時候出現,也就是當機之後的樣子。你自己有意關掉的 Windows Search 會保持關閉。Mole 不會重建、刪除或者調整索引大小。狀態頁裡也不給索引器提供結束處理程序的選項,因為它是從 Windows 資料夾裡執行的。
其他背景負載可以看 Windows CPU 佔用偏高 和 Windows 最佳化到底做了什麼。
常見問題
Windows 搜尋索引器為什麼 CPU 佔用這麼高?
通常是在建立或更新索引,例如剛裝完或升級完系統、加了很多檔案、或者剛重建過。去設定 › 隱私權與安全性 › 搜尋 Windows 看一下。顯示正在索引就讓它跑完。一直完成不了就縮小索引範圍。
Windows 建索引要多久?
微軟說首次索引可能要幾個小時,重建最多 24 小時。超過 40 萬項的大索引會更久,也正是從這個量級開始容易出現效能問題。
關掉 Windows 搜尋索引安全嗎?
不會損壞系統,但開始功能表、檔案總管和 Outlook 的搜尋會變慢或搜不全。排除一些資料夾,或者從增強換回傳統,通常就能壓下 CPU,搜尋也照常能用。
需要重建搜尋索引嗎?
只在狀態顯示的問題等不好,或者你改了索引哪些資料夾以後再重建。每次重建都會從頭開始索引。