| Предыдущий | Следующий |
| 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.
Технические ссылки
- JET_param enumeration
- Transactions and save points
- ESE files and storage paths
- ESE source repository
- Microsoft: JET_ERR enumeration
Нужно найти другой код? Найти другой код состояния или ошибки.
