Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / А можно ли в БП 8.1 удалять индексы средствами sql? / 22 сообщений из 22, страница 1 из 1
07.09.2012, 10:21
    #37947795
JohnAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
После падения СХД БД немного в неадекватном состоянии. А конкретно таблица _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
07.09.2012, 10:33
    #37947815
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
А о чем говорит вас MS SQL - о несогласованности данных, вам не приходило в голову, что на самом деле, он как-бы вообще не про индексы говорит... ?
...
Рейтинг: 0 / 0
07.09.2012, 10:43
    #37947833
JohnAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
Не пойму, что тут у всех за манера - вопросом на вопрос отвечать.
Откуда мысль, что речь не про "индексы вообще"?
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
07.09.2012, 11:10
    #37947873
AHDP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
(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
07.09.2012, 11:16
    #37947883
nicktcher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
JohnAl,

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

_AccntRegEDхх - не таблица итогов, пересчёт не поможет.
...
Рейтинг: 0 / 0
07.09.2012, 11:48
    #37947962
JohnAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
[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
07.09.2012, 12:14
    #37948015
JohnAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
Точнее, локализовать задвоенные данные средствами sql - можно. Но вот как удалять? Прямых связей между таблицами нет, каскадное удаление на уровне sql невозможно...
...
Рейтинг: 0 / 0
07.09.2012, 12:33
    #37948063
AHDP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
Заскриптовать объекты.

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
07.09.2012, 12:38
    #37948077
AHDP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
Каскадное удаление записей вам не нужно.
Пересоздать таблицу нужно, т.к. из первого сообщения об ошибках следует, что дублирование записей не единственная ошибка.
Потом можно поднять копию БД до краха и посмотреть на содержание таблиц более внимательно. Недостающие данные можно взять из архива, но стрёмно, альтернатива - перепроведение документов. :(
...
Рейтинг: 0 / 0
07.09.2012, 12:39
    #37948082
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
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
07.09.2012, 13:10
    #37948129
JohnAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
Ну почему. При вставке в новую таблицу задвоенных значений не станет. Но это не отменяет проблемы на уровне логики, ссылки на удаляемые значения могут быть в других таблицах.
...
Рейтинг: 0 / 0
07.09.2012, 13:58
    #37948232
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
JohnAlНу почему. При вставке в новую таблицу задвоенных значений не станет. Но это не отменяет проблемы на уровне логики, ссылки на удаляемые значения могут быть в других таблицах.Да потому, что не согласованность данных означает различия между данными таблицы и журнала транзакций.
...
Рейтинг: 0 / 0
07.09.2012, 14:16
    #37948288
AHDP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А можно ли в БП 8.1 удалять индексы средствами sql?
The Dim!,
И где это SQL говорит о несогласованности данных? Он говорит о крахе таблицы. А сведений о порушившихся данных уже давно может в логе и не быть...

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

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

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

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

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


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