Что означает код HRESULT 0xC8000582 (hrTooManyOpenIndexes)?

 
Предыдущий Следующий
hrIndexHasClustered hrColumnLong

hrTooManyOpenIndexes

Что означает hrTooManyOpenIndexes

hrTooManyOpenIndexes (0xC8000582) — не осталось блоков описания индексов.

Что проверить

Зафиксируйте базу, таблицу или сессию ESE и первый API Jet/ESENT, который вернул hrTooManyOpenIndexes.

  • Проверьте состояние базы и журналов ESE, свободные ресурсы процесса и состояние активной транзакции именно в момент отказа.
  • Если ошибка возникла при восстановлении или работе с журналами, сопоставьте поколения журналов, контрольную точку и выбранный набор файлов; не подменяйте восстановление простым повтором операции.

Практический смысл и диагностика

  • Движок исчерпал index descriptor blocks из-за чрезмерного числа открытых или часто переключаемых indexes.
  • `hrTooManyOpenDatabases` означает превышение числа одновременно открытых databases для session/instance.
  • Главное отличие от `hrTooManyIndexes`: тот код относится к schema limit, а `hrTooManyOpenIndexes` — к runtime descriptor pressure.
  • `hrTooManyOpenTables` относится к exhaustion открытых table/cursor resources.
  • `hrTooManyAttachedDatabases` означает достижение instance limit на attached databases.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.