Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
RedBird Member Откуда: Москва Сообщений: 162 |
В давно работающей БД получено сообщение вида: Не удается вставить повторяющуюся строку ключа в объект "dbo..." с уникальным индексом "Имя индекса". Повторяющееся значение ключа: (92, -2, 78101). Проверено: что индекс не уникальный при выполнении UPDATE на таблицу Формально ошибка не должна возникать, т.к. индекс не уникальный. Просьба дать совет, что еще можно проверить и/или сделать чтобы решить/диагностировать проблему. ВАЖНО: сервер и БД нельзя выводить из эксплуатации. |
17 июл 17, 11:03 [20649497] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
RedBird, строку создания индекса "Имя индекса" покажите |
17 июл 17, 11:11 [20649529] Ответить | Цитировать Сообщить модератору |
RedBird Member Откуда: Москва Сообщений: 162 |
CREATE NONCLUSTERED INDEX [Track_StorageID_TimeBegin] ON [dbo].[Track] ( [StorageID] ASC, [TimeBegin] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) |
17 июл 17, 11:27 [20649588] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
RedBird, а в ошибке я виду 3 поля, давайте правильный индекс указанный в ошибке |
17 июл 17, 11:29 [20649593] Ответить | Цитировать Сообщить модератору |
RedBird Member Откуда: Москва Сообщений: 162 |
TaPaK, В том то и дело, что это рабочий индекс... Поэтому и нужны идеи что еще можно проветить |
17 июл 17, 11:34 [20649605] Ответить | Цитировать Сообщить модератору |
RedBird Member Откуда: Москва Сообщений: 162 |
TaPaK, Пока вылечилось путем удаления индекса и его повторного создания. Меня интересовал вопрос что было сломано и как это определить. |
17 июл 17, 11:38 [20649623] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
згначить вы не туда смотрите, заберите скрипт индекса конкретно с той бд на которой ошибки |
||
17 июл 17, 11:38 [20649624] Ответить | Цитировать Сообщить модератору |
RedBird Member Откуда: Москва Сообщений: 162 |
TaPaK, К сожалению я смотрю туда, куда пишет сообщение... То что индекс был сломан это факт, т.к. его повторное создание проблему решило. Вопрос был в том как понять что и почему было сломано. |
17 июл 17, 11:40 [20649641] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
подняли новый индекс |
||
17 июл 17, 11:53 [20649693] Ответить | Цитировать Сообщить модератору |
Addx Member Откуда: Сообщений: 957 |
Это не факт, а Ваше мнение. Вы просто удалили один индекс, а создали другой. TaPaK правильно указал на список полей в ошибке, но проще всего свалить вину на "глючный SQL Server". |
||
17 июл 17, 12:10 [20649785] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
это вы типа сервер обвиняете? ну ну :) если default trace не отключён можете посмотрет кто что с индексами делал DECLARE @filename NVARCHAR(4000); SELECT @filename = REVERSE(SUBSTRING(REVERSE([path]), CHARINDEX('\', REVERSE([path])), 260)) + N'log.trc' FROM sys.traces WHERE is_default = 1; SELECT * FROM sys.fn_trace_gettable(@filename, DEFAULT) WHERE IndexID IS NOT NULL AND ObjectID = object_id('TABLENAME') AND DatabaseId = DB_ID('DBNAME') ORDER BY StartTime DESC; |
||
17 июл 17, 12:17 [20649810] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
базу давно проверяли(dbcc checkdb)? |
17 июл 17, 12:27 [20649835] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |