Задача: Исправить ошибку при попытке выборки логической страницы или сбой выполнения запроса “ALTER INDEX…
Идентификация ошибки
1) Так выглядит ошибка в конфигураторе 1С, проявлялась при выгрузке dt.
Ошибка СУБД:
Microsoft OLE DB Driver for SQL Server: Ошибка при попытке выборки логической страницы (1:14065176) в базе данных 8.
Она принадлежит единице распределения 72057598119313408, а не 72057598048534528.
HRESULT=80004005, SQLSrvr: SQLSTATE=HY000, state=3, Severity=15, native=605, line=1.
или
2) Так выглядит ошибка в журнале событий
Сбой выполнения запроса “ALTER INDEX [_InfoRg94272_2X1] ON [dbo].[_InfoRg94272X1]” со следующей ошибкой:
Ошибка при попытке выборки логической страницы (1:14065176) в базе данных 8.
Она принадлежит единице распределения 72057599555010560, а не 72057598048534528.
Выполнение данной инструкции было прервано.
Возможные причины сбоя:
Проблемы с этим запросом, свойство “ResultSet” установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.
В первую очередь надо определить название базы данных для идентификатора 8, который фигурирует в ошибке:
SELECT database_id, name FROM sys.databases;
Этот запрос вернет список всех баз данных и их идентификаторов на текущем сервере.
Предварительно делаем полную резервную копию базы данных средствами SQL
В нашем случае, мы столкнулись с проблемой при попытке изменить индекс _InfoRg94272_2X1 в таблице [dbo].[_InfoRg94272X1]. Для диагностики проблемы мы использовали следующий запрос, который помог нам получить подробную информацию об индексе (предварительно выбираем нашу базу, в которой была выявлена ошибка:
SELECT
i.name AS IndexName,
t.name AS TableName,
c.name AS ColumnName,
ic.key_ordinal AS KeyOrder,
i.type_desc AS IndexType,
i.is_unique AS IsUnique
FROM
sys.indexes i
JOIN
sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
JOIN
sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
JOIN
sys.tables t ON i.object_id = t.object_id
WHERE
i.name = '_InfoRg94272_2X1';
Результат запроса показал, что индекс существует, является кластерным и принадлежит таблице _InfoRg94272X1, при этом в запросе ALTER INDEX была указана таблица [dbo].[_InfoRg94272X1]
Решение проблемы
Необходимо удалить индекс:
DROP INDEX [_InfoRg94272_2X1] ON [dbo]._InfoRg94272X1;
После успешного удаления мы создадим его заново:
CREATE UNIQUE CLUSTERED INDEX [_InfoRg94272_2X1]
ON [dbo]._InfoRg94272X1 (
[_Fld94273RRef],
[_Fld94274],
[_Fld94275],
[_Fld94276],
[_Period]
);
Доверьте решение сложных технических проблем профессионалам Kamensky-lab. Мы обеспечим надежную диагностику и восстановление вашей базы данных 1С, минимизируя простои и повышая эффективность работы вашей системы. Наш опыт и индивидуальный подход гарантируют качественное обслуживание и поддержку вашего бизнеса.
Решение ошибки логической страницы и сбоя ALTER INDEX в 1С (Ошибка СУБД индексы)
Задача: Исправить ошибку при попытке выборки логической страницы или сбой выполнения запроса “ALTER INDEX…
Идентификация ошибки
1) Так выглядит ошибка в конфигураторе 1С, проявлялась при выгрузке dt.
Ошибка СУБД:
Microsoft OLE DB Driver for SQL Server: Ошибка при попытке выборки логической страницы (1:14065176) в базе данных 8.
Она принадлежит единице распределения 72057598119313408, а не 72057598048534528.
HRESULT=80004005, SQLSrvr: SQLSTATE=HY000, state=3, Severity=15, native=605, line=1.
или
2) Так выглядит ошибка в журнале событий
Сбой выполнения запроса “ALTER INDEX [_InfoRg94272_2X1] ON [dbo].[_InfoRg94272X1]” со следующей ошибкой:
Ошибка при попытке выборки логической страницы (1:14065176) в базе данных 8.
Она принадлежит единице распределения 72057599555010560, а не 72057598048534528.
Выполнение данной инструкции было прервано.
Возможные причины сбоя:
Проблемы с этим запросом, свойство “ResultSet” установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.
В первую очередь надо определить название базы данных для идентификатора 8, который фигурирует в ошибке:
SELECT database_id, name FROM sys.databases;
Этот запрос вернет список всех баз данных и их идентификаторов на текущем сервере.
Предварительно делаем полную резервную копию базы данных средствами SQL
В нашем случае, мы столкнулись с проблемой при попытке изменить индекс _InfoRg94272_2X1 в таблице [dbo].[_InfoRg94272X1]. Для диагностики проблемы мы использовали следующий запрос, который помог нам получить подробную информацию об индексе (предварительно выбираем нашу базу, в которой была выявлена ошибка:
Результат запроса показал, что индекс существует, является кластерным и принадлежит таблице _InfoRg94272X1, при этом в запросе ALTER INDEX была указана таблица [dbo].[_InfoRg94272X1]
Решение проблемы
Необходимо удалить индекс:
После успешного удаления мы создадим его заново:
Рубрики
Свежие записи