|
Нарушение уникальности 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 |
|
|
start [/forum/topic.php?fid=40&msg=39195709&tid=1562271]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 446ms |
0 / 0 |