|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Привет всем. FB 2.5 WI-V6.3.4.26856 Обнаружено нарушение уникальности первичного ключа. Фрагмент таблицы: Код: plsql 1. 2. 3. 4.
Такой запрос возвращает некое значение ID: Код: plsql 1. 2. 3. 4.
Запрос вида Код: plsql 1. 2. 3.
возвращает 2 абсолютно идентичных по значениям полей записи В логе сервера ничего криминального нет. Но это ни о чем не говорит - в какой-то момент была переустановка сервера (в смысле, самой железяки). Весьма вероятно, что эти данные были вставлены в таблицу до переустановки сервера. Правильно ли я понимаю, что гикнулся индекс первичного ключа и надо его пересоздать? С уважением, Polesov. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 12:19 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Забыл указать, что по полю ID создан первичный ключ: Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 12:23 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
индекс битый Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 12:28 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Битый индекс способен не вернуть существующую запись, но вернуть несуществующую... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:01 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Кстати, апдейт вида Код: plsql 1.
выполнился без каких-либо ошибок ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:03 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Hello, Polesov! You wrote on 18 марта 2016 г. 13:08:00: Polesov> выполнился без каких-либо ошибок читай статью о поиске дубликатов Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:08 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, зачем надо было делать апдейт? надо было индекс перестроить ALTER INDEX PK_T ACTIVE; COMMIT; ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:13 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, собственно, если в таблице и правда дубли, при перестройке индекса будет облом. на некоторое время окажешься с таблицей без контроля ПК. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:15 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdv, не помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:16 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, gfix -v -fu - что говорит ? Поле - точно INTEGER ? А может там NUMERIC ? Или (о ужас) VARCHAR\DOUBLE PRECISION ? А может там раньше был не INTEGER ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:19 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, не верю. или см. ответ hvlad. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:20 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladgfix -v -fu - что говорит ? data base file name (localhost:с:\data\db.fdb) already given hvladПоле - точно INTEGER ? А может там NUMERIC ? Или (о ужас) VARCHAR\DOUBLE PRECISION ? INTEGER hvladА может там раньше был не INTEGER ? Вот этого не знаю - БД была создана давно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:29 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdvPolesov, не верю. или см. ответ hvlad. Да я сам не верю ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:30 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
В таблице есть поле, хранящее GUID в текстовом виде. Был сделан бекап БД в GBK-файле осуществлен поиск этого GUID. Найдено 2 совпадения - говорит ли это о том, что в БД данная запись присутствует 2 раза? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:33 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Hello, Polesov! You wrote on 18 марта 2016 г. 13:36:20: Polesov> В таблице есть поле, хранящее GUID в текстовом виде. > Был сделан бекап БД в GBK-файле осуществлен поиск этого GUID. > Найдено 2 совпадения - говорит ли это о том, что в БД данная запись присутствует 2 раза? это говорит о том, что в огороде бузина. а в киеве - дядька. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:36 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesovhvladgfix -v -fu - что говорит ? data base file name (localhost:с:\data\db.fdb) already givenМне начинать ругаться или ты уже сам понял свою ошибку и пошёл читать синтаксис вызова gfix ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:38 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladА может там раньше был не INTEGER ? Вот этого не знаю - БД была создана давно. Кстати, в таблице есть тайм-стамп когда данные были добавлены. Инсерт был 23 ноября 2015 года - на тот момент поле точно было INTEGER NOT NULL PRIMARY KEY И еще, как раз в тот период наблюдались аппаратные проблемы с сервером (чуть позже физически посыпались 2 HDD) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:39 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
[/quot]Мне начинать ругаться...[/quot] В конце поставил точку с запятой и не мог понять, что не так... Код: powershell 1. 2.
Пересоздание индекса помогло: - удаляем все FK, указывающие на эту таблицу - удаляем двойные записи - удаляем PK - восстанавливаем PK - восстанавливаем удаленные записи-двойники в единственном экземпляре - восстанавливаем все FK на эту таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 14:15 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Мимопроходящийэто говорит о том, что в огороде бузина. В бд в залезли НЕХ-редактором и изменили значение текстового поля одной из записей-двойников: в селекте 2 поля с отличием измененного текстового поля ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 14:19 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Hello, Polesov! You wrote on 18 марта 2016 г. 14:21:05: Polesov> В бд в залезли НЕХ-редактором и изменили значение текстового полязаписи на странице данных пакуются. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 14:21 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Мимопроходящийзаписи на странице данных пакуются. Были изменены символы в значении поля, было ABC - стало ZZZ. Длина не менялась. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 14:25 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Hello, Polesov! You wrote on 18 марта 2016 г. 14:27:37: Polesov> Были изменены символы в значении поля, было ABC - стало ZZZ. Длина не менялась. При наличии отсутствия пропитанных шпал, — кричал Виктор Михайлович на весь двор, — это будет не трамвай, а одно горе! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 14:27 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
МимопроходящийПри наличии отсутствия пропитанных шпал, — кричал Виктор Михайлович Ну, да - это вам не ешака купить. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 14:32 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovБыли изменены символы в значении поля, было ABC - стало ZZZ. Длина не менялась.Похоже, не догоняешь. Перевожу: возьми zip-архив, и поменяй что-то в нём, не меняя длины. О результатах распаковки доложи. Пример грубый, но наглядный. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 15:11 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
WildSery, Данные менялись в копии БД, а не бэкапе. Или FB при записи данных их сжимает, а при чтении - разжимает? Я думал, что упакованные данные - это хранение VARCHAR актуальных данных, а не всей объявленной длины. Или я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 15:16 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
WildSeryПохоже, не догоняешь. Да нет, тут есть элемент везения: заменить одну несжимаемую последовательность на любую другую можно весьма легко. В отличии от архива, БД использует примитивный RLE и контрольные суммы там отсутствуют от слова "совсем". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 15:18 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Hello, Dimitry Sibiryakov! You wrote on 18 марта 2016 г. 15:21:48: Dimitry Sibiryakov> Да нет, тут есть элемент везения: заменить одну несжимаемую последовательность на любую > другую можно весьма легко. В отличии от архива, БД использует примитивный RLE и > контрольные суммы там отсутствуют от слова "совсем".текстовое представление GUID жмётся даже RLE Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 15:22 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Мимопроходящийтекстовое представление GUID жмётся даже RLE Продемонстрируешь как? А то у меня оно что-то не желает... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 15:42 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovПересоздание индекса помогло: а типа, alter index active - не помогло? Тогда и пересоздание индекса "не помогло". Потому что это одно и то же. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 15:43 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Hello, Dimitry Sibiryakov! You wrote on 18 марта 2016 г. 15:46:57: Dimitry Sibiryakov> Продемонстрируешь как? А то у меня оно что-то не желает... а как у тебя не получается? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 15:46 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Hello, Kdv! You wrote on 18 марта 2016 г. 15:47:32: Kdv> а типа, alter index active - не помогло?Дим, у него ж PK Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 15:50 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Мимопроходящийа как у тебя не получается? Вот так у меня не получается: Код: sql 1.
gstat упорно выдаёт, что средний размер сжатой записи на странице больше, чем это единственное поле в таблице. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 15:50 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
МимопроходящийДим, у него ж PK ты знаешь, я много лет верил, что перестроить индекс без удаления можно только alter index inactive/active. Естественно, что inactive для индексов по констрейнтам не работает. А потом вышел dimitr, и заявил, что inactive нафиг не нужен, по active оно само. Я проверил - работает! Только Полесову я же специально написал, COMMIT! Он, видать, не знает, что индексы строятся или перестраиваются по коммиту, а не по ddl. p.s. пример alter index rdb$primary161 active Prepare time = 0ms Execute time = 0ms commit Transaction commited... (3167 ms) три секунды - миллион записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 16:00 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdvPolesovПересоздание индекса помогло: а типа, alter index active - не помогло? Тогда и пересоздание индекса "не помогло". Потому что это одно и то же. Между удалением индекса и его созданием было удаление дубликата записи. Все таки дубликат записи был - без PK запрос тоже выдал 2 записи. Так совпало - был дубликат записи и ошибка индексной страницы. P.S. я уже говорил, в момент занесения данных в БД были аппаратные проблемы с сервером. Но можно только предполагать... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 16:07 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdvТолько Полесову я же специально написал, COMMIT! Я делал COMMIT - не помогло. Видимо, дело в наличии физического дубликата записи (писал об этом выше) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 16:11 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Если gfix говорит Код: powershell 1. 2.
как определить, какие именно индексы битые? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 16:34 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Hello, Dimitry Sibiryakov! You wrote on 18 марта 2016 г. 16:46:09: Dimitry Sibiryakov> gstat упорно выдаёт, что средний размер сжатой записи на странице больше, чем это > единственное поле в таблице.таки да. беру свои слова обратно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 16:46 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesovкакие именно индексы битые?У вас, я так понимаю, 2.5.4 ? Тогда так: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 16:48 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovkdvТолько Полесову я же специально написал, COMMIT! Я делал COMMIT - не помогло. Видимо, дело в наличии физического дубликата записи (писал об этом выше)Индекс не построится, если есть дубликаты ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 17:20 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovЕсли gfix говорит Код: powershell 1. 2.
как определить, какие именно индексы битые?Читать firebird.log ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 17:20 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Таблоид, спасибо, все получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 17:21 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladИндекс не построится, если есть дубликаты Правильно ли я понимаю, что если есть дубликаты, то Код: plsql 1.
выдаст ошибку? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 17:24 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov не помогло не помогло - это как? если у тебя на диске есть 2 записи по индексируемому ПК столбцу, то alter index active по коммиту выдаст ошибку, что индекс не может быть создан, т.к. есть дубликаты. Если же индекс был создан без ошибки, это значит, что данные, находящиеся на диске, и то, что ты видишь - не одно и то же. То есть, для индекса никаких дубликатов нет. А при выводе ты видишь "дубликаты" только для конкретного формата вывода - это означает, что хранимые данные и выводимые данные отличаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 18:29 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovПравильно ли я понимаю, что если есть дубликаты, то ё-мое. alter index inactive/active (или просто active) это в отношении содержимого эквивалент пары drop index / create index, только с сохранением информации об индексе в системных таблицах. "Неактивный" индекс есть только в rdb$indices и rdb$index_segments, страниц индекса в базе нет. А при active или create индекс строится, с нуля, совершенно одинаковым в обоих случаях способом. И ошибку про дубликаты (и другое) будет выдавать тоже одинаково. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 18:33 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, чего я вообще дурака валяю http://www.ibase.ru/files/firebird/Firebird_2_5_Language_Reference_RUS.pdf стр 118 и далее (alter index). все написано РУССКИМ языком, и даже специальная пометка на тему active в отношении pk, fk и unique есть (как я понимаю, благодаря мне). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 18:38 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovИли FB при записи данных их сжимает, а при чтении - разжимает?Да. Сжимается целиком строка, а при чтении разжимается. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 18:52 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdvPolesov не помогло не помогло - это как? если у тебя на диске есть 2 записи по индексируемому ПК столбцу, то alter index active по коммиту выдаст ошибку, что индекс не может быть создан, т.к. есть дубликаты. Если же индекс был создан без ошибки, это значит, что данные, находящиеся на диске, и то, что ты видишь - не одно и то же. То есть, для индекса никаких дубликатов нет. А при выводе ты видишь "дубликаты" только для конкретного формата вывода - это означает, что хранимые данные и выводимые данные отличаются. Вот сейчас проделаю все операции на копии БД, содержащей ошибку: GFIX: Код: powershell 1. 2.
Запрос: Код: plsql 1. 2. 3. 4.
Результат: 123, 2 Запрос: Код: plsql 1. 2. 3.
Результат: 2 абсолютно идентичных записи Выполняю: Код: powershell 1. 2. 3.
Имя индекса совпадает с именем PK. Вроде бы тут на перестроение индекса должна быть ругань? Запрос: Код: plsql 1. 2. 3.
Результат: 2 абсолютно идентичных записи GFIX: Код: powershell 1. 2.
Что я делаю не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:02 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
WildSeryСжимается целиком строка, а при чтении разжимается. Тогда как объяснить, что мне в файле БД обычном фар-ом удалось найти занчение текстового гуида? Более того, после изменения в текстовом значении поля непосредственно в файле БД эти изменения стали видны при SQL-запросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:06 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Hello, Polesov! You wrote on 18 марта 2016 г. 19:08:19: Polesov> Тогда как объяснить, что мне в файле БД обычном фар-ом удалось найти занчение текстового гуида? > Более того, после изменения в текстовом значении поля непосредственно в файле БД эти изменения стали видны при SQL-запросе. вполне возможно то что ты пишешь. проверено экспериментально. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:08 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovhvladИндекс не построится, если есть дубликаты Правильно ли я понимаю, что если есть дубликаты, то Код: plsql 1.
выдаст ошибку?Нет. Ошибку выдаст commit. Правда, если выполнять это в isql, то он сделает коммит сам (если ему явно не запретить) и будет казаться, что ошибку выдал ALTER ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:10 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovТогда как объяснить, что мне в файле БД обычном фар-ом удалось найти занчение текстового гуида?Если я правильно путаю, то сравнивается размер сжатой и нормальной записи, и если сжатая больше, пишется без сжатия. Почему-то я так помню, искать лень, поправьте, коллеги. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:11 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovВот сейчас проделаю все операции на копии БД, содержащей ошибку: GFIX: Код: powershell 1. 2.
Где соотв. сообщение из firebird.log ? PolesovЧто я делаю не так?Мне отсюда не видно. Например я понятия не имею - что такое PK_T, какое отношение он имеет к T и где у тебя INT, а где GUID. Давай сюда DDL таблицы, индексов и сообщение из firebird.log ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:13 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladОшибку выдаст commit. Правда, если выполнять это в isql, то он сделает коммит сам (если ему явно не запретить) и будет казаться, что ошибку выдал ALTER Делал и в isql, и в ibe - никаких ошибок не было. Ни до commit, ни после. Готов рассмотреть возможность передачи экземпляра БД. Если удалить данные из других таблиц, повлияет ли это на наличие ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:14 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
МимопроходящийHello, Polesov! You wrote on 18 марта 2016 г. 19:08:19: Polesov> Тогда как объяснить, что мне в файле БД обычном фар-ом удалось найти занчение текстового гуида? > Более того, после изменения в текстовом значении поля непосредственно в файле БД эти изменения стали видны при SQL-запросе. вполне возможно то что ты пишешь. проверено экспериментально. Значит, в моем случае все же было 2 записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:16 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
WildSeryЕсли я правильно путаю Неправильно ты путаешь. Это делается для дельты. Сжатие безусловно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:17 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladДавай сюда DDL таблицы, индексов и сообщение из firebird.log firebird.log Код: powershell 1. 2. 3.
Фрагмент таблицы: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:28 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovЧто я делаю не так? для полноты эксперимента - надо посмотреть, что пишется в firebird.log на тему этого битого индекса. Может это и не про этот индекс. - надо попробовать alter table drop constraint pk, и опять создать pk, без удаления "дубликатов". я не знаю, каким образом получается, что индекс создается уже битый, причем без ошибки (см. выше, может, гфикс вообще не про тот индекс тебе сообщает). А вот про "на диске не то, что выводится" - я уже говорил. Поэтому индексирование будет успешным, и физически дубликатов там нет. а ты их якобы видишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:39 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovIndex 16 is corrupt см. rdb$indices, ищи там индекс с номером 16 для таблицы T, и потом давай ddl этого индекса. p.s. че-то я начинаю терять нить разговора. накой черт тут про исправление гуида на диске hex-едитором, если приведены два уникальных индекса для integer-столбцов??? Где, ёп, индекс по guid ? :-) Вот зачем людям голову морочить лишней информацией? Polesovrecord 0 have missing entriesв данном случае что-то не индексируется. Могу тогда разве что поставить на то, что на диске данные настолько для движка кривые, что он их читает, но не индексирует, и даже ошибку не выдает. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:45 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdvнакой черт тут про исправление гуида на диске hex-едитором, если приведены два уникальных индекса для integer-столбцов? для того, чтобы одному из них поменять PK-ID обычным UPDATE ... WHERE GUID = xxxxx хотя, конечно, можно было бы и к RDB$DB_KEY привязаться и через курсор замутить, и наверное через генератор тоже... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 19:55 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, я не вижу 17 индексов в этом DDL. Так что какой из них сломан - остаётся загадкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 22:39 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Вопрос, м.б. и дилетантский, но: Почему бы не создать новую (пустую) базу, а затем не перелить в нее данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2016, 13:19 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Привет всем. На текущий момент из БД удалены все объекты, кроме таблицы с проблемным PK. В этой таблице оставлено 2 поля (DDL получен в IBE): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Был сделан бэкап/ресторе - база получилась 118 MB. GFIX ошибок не находит. Запрос вида Код: plsql 1. 2. 3. 4.
по прежнему возвращает Код: powershell 1. 2.
P.S. Интересующимся могу выслать базу по запросу. С уважением, Polesov. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 13:37 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, высылай (не саму БД есс-но, ссылку на место загрузки) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 13:45 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
_Читатель_Почему бы не создать новую (пустую) базу, а затем не перелить в нее данные? Если БД имеет большой объем, время переливки может быть весьма значительным. Гораздо проще (и быстрее) удалить все FK на проблемную таблицу, удалить PK, избавиться от записи-дубля, и восстановить PK и все удаленные FK. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 13:46 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, да, и ещё : а) проверь на 2.5.5 (лучше на текущем снапшоте 2.5.6), а не на 2.5.4 б) что выдаст такой запрос ? Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 13:47 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladда, и ещё : а) проверь на 2.5.5 (лучше на текущем снапшоте 2.5.6), а не на 2.5.4 Проверял на: Код: powershell 1. 2. 3. 4. 5. 6. 7. 8.
hvladб) что выдаст такой запрос ? Код: sql 1. 2. 3. 4.
Тоже самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 13:55 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovЗапрос: Код: plsql 1. 2. 3.
Результат: 2 абсолютно идентичных записи А план какой? может он у тебя по другому индексу отбирает, не по PK_T придумался ещё один весьма экзотичный, но гипотетически возможный баг: в индексе реально создаются два листа для одной записи, и при отборе именно по индексу запись задваивается, в отличие от " ...WHERE (ID+0) = 123" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 13:59 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Кстати, имя индекса отличается от имени PK. Вот что показывает IBE: Код: powershell 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 14:09 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
AriochА план какой? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: plsql 1. 2. 3. 4. 5. 6.
Оба запроса возвращают 2 записи ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 14:12 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Ariochпридумался ещё один весьма экзотичный, но гипотетически возможный баг Этот баг совсем не гипотетический и совсем не экзотичный. Он живёт в сервере с версии 1.0 или 1.5, но не приводит к такому результату, поскольку в битовой карте бит не может быть установлен дважды. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 14:17 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Удалил PK и создал его заново - никаких ошибок. Дубликат PK остался. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 14:22 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovAriochпридумался ещё один весьма экзотичный, но гипотетически возможный баг Этот баг совсем не гипотетический и совсем не экзотичный. Он живёт в сервере с версии 1.0 или 1.5, но не приводит к такому результату, поскольку в битовой карте бит не может быть установлен дважды. то есть записи возвращаются из таблицы не напрямую по индексу, а через промежуточное построение битовой карты, даже если никаких джойнов нет и в помине? не знал... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 14:27 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Arioch, битовая карта не строится только в одном случае, когда идёт навигация по индексу ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 14:31 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovКстати, имя индекса отличается от имени PK. это значит, что или констрейнт ПК не был поименован при создании, или что даже если был именован, был создан в ФБ ниже версии 1.5. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 14:52 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Ariochне знал... значит на курсах у меня ты не был. :-) более того, список номеров записей перед вытаскиванием записей еще и сортируется, чтобы чтение было упорядочено по страницам данных, а не по ключам. Иначе io будет в десятки раз выше. Как например, при "навигации по индексу". http://ibaseforum.ru/viewtopic.php?f=4&t=4175 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 14:56 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, у меня на твоём файле воспроизвелось. По DDL вроде всё нормально. Уж не знаю что там произошло. Странно что ALTER INDEX ... ACTIVE COMMIT действительно не даёт никаких ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 14:59 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdv, не был, "раньше котлеты не подгорали" :-) я уже глянул в dataaccesspaths на эту тему с неверсионными индексами в целом разумно но всё же первая мысль "а вот сейчас карта большой таблицы каааак вылезет за пределы оперативки отпущенной серверу" :-) если бы заранее оценивать размер выборки - большой он или маленький ожидается - и что будет дешевле в итоге, строить карту или рисковать вытеснением уже прочитанных страниц из кэша.... то есть для уникальных индексов Where x=y запрос явно будет дешевле без промежуточного картирования для неуникальных индексов с хорошей селективностью - тоже а если отбор ещё условно "для грида" и до конца фетчиться никогда не будет - то держать в память карту просто попусту тратить память :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 15:14 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Симонов Денис, AS. цикл active->inactive->active тоже ? у вас там вроде есть инструменты напрямую в fbk-файлах ковыряться? ещё одна сумасшедшая идея, что изначально ID был другим целым числом, например int16, а не int32, или ещё каким-нибудь numeric/decimal и поэтому в этих экземплярах записи хотя значения и одно, храниться оно разными битами ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 15:17 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Arioch, по словам ТСа он даже PK пересоздал. Так что у меня нет даже предположений что случилось. А копанием во внутренностях я не занимаюсь, не путай меня с kdv. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 15:25 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, Баг подтверждаю, регрессия в 2.5.3 :( В трекер занесёшь ? PS 7z сказать где лежит ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 15:28 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Ariochно всё же первая мысль "а вот сейчас карта большой таблицы каааак вылезет за пределы оперативки отпущенной серверу" :-) если бы заранее оценивать размер выборки - большой он или маленький ожидается - и что будет дешевле в итоге, строить карту или рисковать вытеснением уже прочитанных страниц из кэша.... то есть для уникальных индексов Where x=y запрос явно будет дешевле без промежуточного картирования для уникальных индексов и индексов с хорошей селективностью карта большой не будет. Другое дело что будет большое количество выделений и освобождений памяти. Так что для уникальных индексов её действительно дешевле не строить, всё равно уникальный индекс даст не более одной записи, а остальные индексы скорее всего задействованы не будут. А вот насчёт неуникальных с хорошей селективностью вопрос спорный. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 15:31 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladБаг подтверждаю, баг-то в чем? волшебное значение столбца, для которого может быть создано N ключей (больше 1) в уникальном индексе? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 15:43 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Ariochа вот сейчас карта большой таблицы каааак вылезет за пределы оперативки отпущенной серверу к примеру, таблица с 2 760 304 951 записей, занимает 249 гиг. Индекс (их много) по одному столбцу, в зависимости от распределения значений - в среднем 100 гиг (от 63 до 122). Но если в качестве "битовой карты" даже использовать просто массив номеров записей, то Record_count * 8 = 21 гиг. Да, может не влезть. Но как-то никто пока не жаловался. :-) А для настоящей битовой карты будет Record_count / 8, то есть 329 мб. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 15:53 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Ariochс неверсионными индексами в целом разумно при чем тут "неверсионные" индексы? речь про выборку записей по найденным в индексе их номерам. Хоть с версиями, хоть без, надо сначала номера записей из ключей выбрать. А потом уже можно или по этим номерам записей ехать по data pages, или "склеивать" такие массивы номеров как битовые, при and/or и прочем. Некоторые сервера могут выдавать данные и без обращения к таблице, это уже "индексное покрытие", другая тема. Вот в ней уже "неверсионность" индекса является определяющей. p.s. по поводу ключей с номерами транзакций. 28.10.2014 [Firebird-devel] Indexes - things to think about for V 3) Transaction IDs in index keys Someone mentioned including transaction ids in the index key to avoid reading record data when using an index that provides all needed information. Those situations are real - count of customers in Mexico, junction records for M to M relationships, etc. In some cases, two transaction ids are required - one for the transaction that created entry and the transaction superseded it. That's potentially 16 bytes subtracted from the key size. OK, maybe not so big a problem, but it also means that when a key changes, the change must be made in two places. But you know all those arguments. Jim's going to hate this. Might it be possible to have a second sort of index specifically for those cases where the read efficiency outweighs the storage and management overhead? Yes, one more place where the application designer can be blamed for poor performance. короче, полная шляпа. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 16:03 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladPolesov, Баг подтверждаю, регрессия в 2.5.3 :( В трекер занесёшь ? А что именно написать? Файл БД надо прикладывать? P.S. Про то, что файл не сжал - извиняюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 16:06 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladВ трекер занесёшь ? CORE-5161 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 16:31 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, спасибо ! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 16:42 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Polesov, что же ты туда архивированную БД не приложил? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 16:50 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Симонов Денис, тест я сейчас сделаю ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 17:23 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdvА для настоящей битовой карты будет Record_count / 8, то есть 329 мб. Ну да, и если там реально надо форму заполнить для юзера с 20-40 строками, и 99% что пользователь больше и не будет смотреть, то как ни странно 40 fetch page по памяти бы куда дешевле влезло. Теперь представить десяток таких пользователей и открытыекурсоры (для тех немногих, кто все же начнет прокручивать грид вниз).... И на сильно загруженном сервере эта радость начнет весело пейджиться. вспомнилось, к вопросу об анекдотах, у клиента начались дикие тормоза, вот вообще FB не жил, при том что никаких нехваток ресурсов его процессу не было даже близко. Довольно быстро выяснилось, что всю память загрёб MSI Installer закачавший патчи для MS SQL и терпеливо ждущий перезагрузки. Но тормоза почему-то проявились из всего крутившегося на сервере именно на FB С памятью кэшей, настраиваемой в firebird.conf битовые карты не пересекаются? а то ещё и кэш вытеснять начнут... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 20:33 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Симонов Денисдля уникальных индексов и индексов с хорошей селективностью карта большой не будет. почему? размер битовой карты зависит исключительно от "грязного" количества записей в таблице, сами индексы (их характеристики) тут не при чём ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 20:34 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdv, ну Jim вообще в итоге от версионности ушел, точнее решил, что версии нужны только в памяти ,но не на диске ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 20:42 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Arioch, битовая карта - это разреженный массив битов. В таком массиве неустановленные элементы не хранятся (хотя зависит от реализации). Если я правильно понял исходники, то для индексов битовая карта объявлена здесь /src/jrd/sbm.h а сам разреженный массив битов здесь /src/common/classes/sparce_bitmap.h Сама по себе структура очень экономная. И максимум памяти будет занимать только когда ключ будет указывать на все записи, т.е. когда индекс будет иметь отвратительную селективность. AriochС памятью кэшей, настраиваемой в firebird.conf битовые карты не пересекаются битовые карты и кэш вещи перпендикулярные ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2016, 21:46 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Симонов ДенисArioch, битовая карта - это разреженный массив битов. В таком массиве неустановленные элементы не хранятся (хотя зависит от реализации). .... Нет. [cencored] ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 20:39 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Siemargl, ты не знаешь способы организации разреженных массивов? Вот одна из них http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/23/2303.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 20:58 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Симонов Денис, Тебе как документописателю недопустимо путать понятия https://ru.wikipedia.org/wiki/Битовая_карта ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 21:01 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Siemargl, вот жеж не верующий. Я тебе даже файлы привел с исходниками /src/jrd/sbm.h Код: plaintext 1. 2. 3. 4.
второй файл приводить не буду. Если интересно сам посмотришь. Но суть в том что это как раз разреженный массив сделаный с помощью бинарного дерева /src/common/classes/sparce_bitmap.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 21:13 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Siemargl, в Firebird битовые карты действительно разрежены. Внутреннее представление основано на b+ дереве, а не на сплошном массиве, если об этом идёт речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 21:14 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvlad, да. Именно это я и пытался объяснить ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 21:16 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvlad, Ну да, вы храните дерево непустых бинарных карт. А совсем не то, что написал Денис первоначально. А то я уже хотел предложить на Нобелевку за сжатие битов выдвинуть ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 21:30 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Siemargl, блин каких битов? Смысл того что я писал не в сжатии битов. Я говорил не про один кусок карты (естественно его ты не сожмёшь), а про карту в целом. Мой пост был о том, что если ключ ссылается на одну единственную запись, то битовая карта не будет занимать RecordCount/8, как это писал Arioch. А всего лишь один узел дерева в котором хранится два 64 битных числа. Или ты решил докопаться до определения битовая карта. Так я тут противоречий не вижу. wikipediaБитовая карта (англ. bitmap, bitset, bit array) — набор последовательно записанных двоичных разрядов, то есть последовательность ( массив ) битов. Я про массив в целом и писал. Уж как он там внутри сделан дело десятое. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 21:45 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Симонов Денис, Ты написал бред, я тебе его процитировал. Выражайся точнее. Модератор: А ты поаккуратнее с прилагательным "эротический". Ведь можно и канделябром. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2016, 22:25 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
SiemarglТы написал бред, я тебе его процитировал. Выражайся точнее. мне кажется, ты запутался. и вместо того, чтобы извиниться, начинаешь других обвинять в бреде. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2016, 01:59 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Привет всем. Сегодня опять вылезла ошибка с нарушением уникальности PK. Вроде бы вышел снапшот 2.5.6, в котором баг пофиксен, но руководство считает, что ставить снапшот в продакшн несколько авантюрно. Вопросы разработчикам: - планируется ли выпуск релиза 2.5.5 с исправленной ошибкой? - если нет, то когда можно ожидать выпуск релиза 2.5.6? С уважением, Polesov. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2016, 16:19 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
PolesovВроде бы вышел снапшот 2.5.6, в котором баг пофиксенКакой именно баг имеется в виду ? PolesovВопросы разработчикам: - планируется ли выпуск релиза 2.5.5 с исправленной ошибкой?Релиз 2.5.5 уже выпущен Polesov- если нет, то когда можно ожидать выпуск релиза 2.5.6? http://www.firebirdsql.org/en/roadmap/ roadmapv2.5.6 is the next point release to come, it's scheduled for Q2 2016. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2016, 16:55 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvladКакой именно баг имеется в виду ? PolesovСегодня опять вылезла ошибка с нарушением уникальности PK roadmapv2.5.6 is the next point release to come, it's scheduled for Q2 2016. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2016, 17:01 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
Ещё раз, медленно, - что именно считается багом ? Сам факт появления дупликата в индексе ? Где и кем это исправлено ? Или тот факт, что PK может быть построен на не уникальных данных ? Это как раз исправлено. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2016, 18:31 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvlad, имелось ввиду PK может быть построен на не уникальных данных ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2016, 18:57 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
hvlad, Влад, так в чем там баг-то? волшебные значения, или вообще? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 10:50 |
|
Нарушение уникальности PK
|
|||
---|---|---|---|
#18+
kdvВлад, так в чем там баг-то? волшебные значения, или вообще?Я же написал в трекере: http://tracker.firebirdsql.org/browse/CORE-5161 The problem occurs when records with same keys fall into separate sort run's and that run's not merged until final phase of index creation (fast_load) Т.е. если записи с одинаковыми ключами достаточно далеко друг от друга, чтобы не попасть в один и тот же sort run И кол-во sort run's таково, что они не сливаются до окончательной фазы построения индекса. Это случайно отломили в 2.5.3, раньше всё было ок ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 11:07 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1562271]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
103ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 202ms |
0 / 0 |