powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / А можно ли в БП 8.1 удалять индексы средствами sql?
22 сообщений из 22, страница 1 из 1
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37947795
JohnAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После падения СХД БД немного в неадекватном состоянии. А конкретно таблица _AccntRegED8707 (как понял, это таблица значений субконто), проверка бд от сиквела ругается, что в индексах есть некая несогласованность, примерно так:
Msg 8977, Level 16, State 1, Line 1
Table error: Object ID 233155976, index ID 1, partition ID 72057596818227200, alloc unit ID 72057596846145536 (type In-row data). Parent node for page (4:3642948) was not encountered.
.......
There are 78052818 rows in 849504 pages for object "_AccntRegED8707".
CHECKTABLE found 0 allocation errors and 97 consistency errors in table '_AccntRegED8707' (object ID 233155976).
repair_rebuild is the minimum repair level for the errors found by DBCC CHECKTABLE

Пробовал проверить таблицу через DBCC, с перестройкой индексов - фиг, не репайрит. Пробовал перестроить индексы через ALTER INDEX ALL ON [_AccntRegED8707] REBUILD WITH (ONLINE = OFF) - нет, говорит, у тебя несогласованность данных.
Вот и думаю, может просто удалить индексы? Ну структуру-то скопировать сначала, конечно. Создать пустые и произвести ребилд средствами SQL?
Просто не знаю, как 1С к этому отнесется, а спросить не у кого.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37947815
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А о чем говорит вас MS SQL - о несогласованности данных, вам не приходило в голову, что на самом деле, он как-бы вообще не про индексы говорит... ?
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37947833
JohnAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пойму, что тут у всех за манера - вопросом на вопрос отвечать.
Откуда мысль, что речь не про "индексы вообще"?
DBCC пишет:
Msg 8935, Level 16, State 1, Line 1
Table error: Object ID 233155976, index ID 1, partition ID 72057596818227200, alloc unit ID 72057596846145536 (type In-row data). The previous link (4:3636297) on page (4:3669306) does not match the previous page (4:3674846) that the parent (1:348808), slot 57 expects for this page.

и

Msg 1505, Level 16, State 1, Line 1
The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._AccntRegED8707' and the index name '_AccntR8707_ByPeriod_TRNRN'. The duplicate key value is (Sep 4 2012 7:59PM, 0x000000b6, 0x8376001b78e276c811e1f657f021ed5a, 1, 0x8219e62adc23f46c441dcd706e1946a6, 1).
The statement has been terminated.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37947873
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(0) Индексы удалять можно.

Скопируйте данные из этой таблицы в другую, создате индексы. Из[quot JohnAl]
Msg 1505, Level 16, State 1, Line 1
The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._AccntRegED8707' and the index name '_AccntR8707_ByPeriod_TRNRN'. The duplicate key value is (Sep 4 2012 7:59PM, 0x000000b6, 0x8376001b78e276c811e1f657f021ed5a, 1, 0x8219e62adc23f46c441dcd706e1946a6, 1).
quot] следует что у вас сами данные кривые.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37947883
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnAl,

Начинайте ремонт базы 1С всегда средствами 1С.
1. Запустите "тестирование и исправление" из конфигуратора. Если это не дает результатов, тогда только можно пробовать ср-ва MS SQL.
2. Попробуйте сделать пересчет итогов для регистра бухгалтерии, с которым у Вас проблема
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37947943
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nicktcher,

_AccntRegEDхх - не таблица итогов, пересчёт не поможет.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37947962
JohnAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot AHDP](0) Индексы удалять можно.

Скопируйте данные из этой таблицы в другую, создате индексы. ИзJohnAlMsg 1505, Level 16, State 1, Line 1
The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._AccntRegED8707' and the index name '_AccntR8707_ByPeriod_TRNRN'. The duplicate key value is (Sep 4 2012 7:59PM, 0x000000b6, 0x8376001b78e276c811e1f657f021ed5a, 1, 0x8219e62adc23f46c441dcd706e1946a6, 1).
quot] следует что у вас сами данные кривые.

А , в том смысле, что индекс не создается, потому что есть дубликат ключевого значения? Проблема данных, логично...
Как бы это устранить теперь...
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948015
JohnAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее, локализовать задвоенные данные средствами sql - можно. Но вот как удалять? Прямых связей между таблицами нет, каскадное удаление на уровне sql невозможно...
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948063
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заскриптовать объекты.

Create table _AccntRegEDtest

Select into _AccntRegEDtest Distinct * from _AccntRegED8707

Drop table _AccntRegED8707

Create table _AccntRegED8707

Select into _AccntRegED8707 Distinct * from #_AccntRegED

Create Index
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948077
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каскадное удаление записей вам не нужно.
Пересоздать таблицу нужно, т.к. из первого сообщения об ошибках следует, что дублирование записей не единственная ошибка.
Потом можно поднять копию БД до краха и посмотреть на содержание таблиц более внимательно. Недостающие данные можно взять из архива, но стрёмно, альтернатива - перепроведение документов. :(
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948082
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AHDPЗаскриптовать объекты.

Create table _AccntRegEDtest

Select into _AccntRegEDtest Distinct * from _AccntRegED8707

Drop table _AccntRegED8707

Create table _AccntRegED8707

Select into _AccntRegED8707 Distinct * from #_AccntRegED

Create Index

Это не исправит не согласованность данных.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948129
JohnAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну почему. При вставке в новую таблицу задвоенных значений не станет. Но это не отменяет проблемы на уровне логики, ссылки на удаляемые значения могут быть в других таблицах.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948232
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnAlНу почему. При вставке в новую таблицу задвоенных значений не станет. Но это не отменяет проблемы на уровне логики, ссылки на удаляемые значения могут быть в других таблицах.Да потому, что не согласованность данных означает различия между данными таблицы и журнала транзакций.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948288
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The Dim!,
И где это SQL говорит о несогласованности данных? Он говорит о крахе таблицы. А сведений о порушившихся данных уже давно может в логе и не быть...

JohnAl,
Ссылок на эту таблицу не может быть. Но вот корявые итоги по ней, если порушена, 1С построит запросто.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948315
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AHDPThe Dim!,
И где это SQL говорит о несогласованности данных? Он говорит о крахе таблицы. А сведений о порушившихся данных уже давно может в логе и не быть...

первый пост ТС

JohnAl... Пробовал проверить таблицу через DBCC, с перестройкой индексов - фиг, не репайрит. Пробовал перестроить индексы через ALTER INDEX ALL ON [_AccntRegED8707] REBUILD WITH (ONLINE = OFF) - нет, г оворит, у тебя несогласованность данных. ...
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948345
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблицу он не менял, к базе подключился без ошибок... Уверен, что это вольный перевод топикстартера.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948353
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AHDPТаблицу он не менял, к базе подключился без ошибок... Уверен, что это вольный перевод топикстартера.

Даже не так :)
Это был вольный перевод, вольного перевода сообщения о ошибки MS SQL и вольного описания ситуации самим ТС. Я не придумывал - написал как прочёл сам. А что там имел в виду ТС... дык ХШ у меня нет.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948356
JohnAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лог поломался первым. БД восстанавливал из статуса суспект и т.д. Главное ж - копия резервная есть, но на утро, а крах в 14-00, не устраивает бухов, верните как было. Вот и вилы. Вообще ошибок относительно немного - 67 записей, что к 90млн общих в таблице - не так уж чтобы очень.
Про несогласованность. ALTER INDEX сообщает что не может создать индекс из-за дупликата ключа.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948411
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnAlВообще ошибок относительно немного - 67 записей, что к 90млн общих в таблице - не так уж чтобы очень.
Это только на случай, если руками исправлять будете.
Совет. Сверьте данные с таблицей из архива и перепроведите (по журналу регистрации действий пользователей) все документы, которые сегодня проводились.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948467
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удалите индекс средствами сиквела.
Найдите записи с дублем ключа запросом.
Удалите дубли командой delete (Если все поля (а не только ключевые) идентичны - фокус с Select Distinct).
Воссоздайте индекс с тем же именем.

Должно заработать.
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948539
JohnAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу, примерно так и думал. Можно еще использовать конструкцию
select ..., count(*) from ... group by ... HAVING count(*) > 1
Только потренироваться думал все ж на копии таблицы, если копировать без индексов, то по идее можно сразу искать дубли.
Но пока бэкап идет, 500гб - долго...
Спасибо всем большое за помощь
...
Рейтинг: 0 / 0
А можно ли в БП 8.1 удалять индексы средствами sql?
    #37948869
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что вы планируете делать с резульатами вашей конструкции?
С индексами не скопируете:)
500 Гб это совсем не много ;)
Удачи.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / А можно ли в БП 8.1 удалять индексы средствами sql?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]