|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
svdВ столбце объявлено 100 символов utf8, в запросе заносится 36. Столбец Artikelcode имеет размер 20 ISO8859_1. там 8 цифер всего. Остьльные строковые значения пустые. Где внесены даты и время - используются соотвественные столбцы На этой таблице запрос выше отработал без ошибок. Что подозрительно, в нём поля WaWiDatum и VerfallDatum помянены местами относительно DDL. Что намекает, что таблица может быть не совсем той. Другая возможность - триггера на ней, в которых и происходит ошибка. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 14:43 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov На этой таблице запрос выше отработал без ошибок. Что подозрительно, в нём поля WaWiDatum и VerfallDatum помянены местами относительно DDL. Что намекает, что таблица может быть не совсем той. да, он отрабатывает на все 100%. Коллеги исправили ошибку, удалив таблицу командой drop и пересоздав ее через DDL-команду. То есть по логике не внесли никаких изменений в метаданные. Dimitry Sibiryakov Другая возможность - триггера на ней, в которых и происходит ошибка. Проверил зависимости - вообще никаких нет. Спасабо, Дмитрий, за вашу помощь. Все это уже становится гаданьем на кофейной гуще. Дождусь следующего инцидента с таблицей и попытаюсь вытащить базу данных для исследований. Тогда опубликую еще раз сообщения. Пока ограничусь отпиской, что FB-Team рекомендует сменить версию сервиса. PS to Kdv: Дмитрий еще раз перечитал ваши рекомендации по переходу на Юникод. Хоть мы используем "старый способ", но отличие у наших баз только одно: хоть в скриптах создания базы и описано set names и create databse default character set как UTF8 , но в реальности из-за миграции данных они остаются ISO8859_1 . Это может играть какую то негативную роль? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 15:48 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
del ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 16:15 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
svdно в реальности из-за миграции данных они остаются ISO8859_1 в смысле? - я не помню, чтобы set names как-то влияло на чарсет создаваемого столбца. Это чарсет коннекта, не более того. - чарсет у БД определяет только чарсет создаваемых тексто-блобовых столбцов, если у них при этом чарсет не указан. Никто не запрещает указать у базы чарсет utf8, а потом создать столбец с чарсетом ISO8859_1. - изменение чарсета у базы никак не влияет на уже созданные столбцы. Чарсет у базы - это "дефолт чарсета для вновь создаваемых столбцов". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 18:57 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
svdЭто может играть какую то негативную роль? Это означает, что разработчики БД и приложения не совсем понимают что они делают и как это работает. Да, приход северного лиса в таких обстоятельствах - вопрос времени. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 19:01 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Это означает, что разработчики БД и приложения не совсем понимают что они делают и как это работает. Да, приход северного лиса в таких обстоятельствах - вопрос времени. Судя по этому сообщению 22182137 , то разработчики именно правильно ориентировались. Основной тип текстовых данных - ISO8859_1. UTF8 выбран как вспомогательный, потому что предоставляет возможность мультибайтовых национальных символов умещать в ограниченных объемах записей уже стандартированных интерфейсов. По сравнению с использованием UTF16 это заметно. С другой стороны замена всех символьных типов на UTF8 может привести к увеличению объема базы данных. В стандартной комплектации робота, основная база расположена на том же компьютере, где и сам робот. в зависимости от подключенного оборудования, процессор может быть от Celeron (управление одним роботом) до Core I7, Память от 1GB до 4GB. С этой стороны есть ли какие то рекомендации по использованию низкопроизводительных процессоров и небольшого объема рабочей памяти? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 09:25 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
В огороде бузина ... Если вам требуется хранить "разноязычные" тексты - UTF8. При чём тут память и процессор??? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 09:36 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Basil A. Sidorov В огороде бузина ... Если вам требуется хранить "разноязычные" тексты - UTF8. При чём тут память и процессор??? Всегда лучше узнать мнение специалистов. О том, какая машина будет использоваться решаю не я. Для подачи совета нужен веский аргумент. Сейчас аргументом является "это дешево и работает". Когда на одной машине работает PLC, программы с графикой и стримингом видео с вебкамеры, компилированные в Embarcadero (а Дельфи создает совсем не компактный код), да еще и база данных, вопрос становится актуальным. В данный момент база сконфигурирована так, что сразу ведет запись на диск. Но может оказаться так, что проблемы вызваны именно нехваткой памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 09:58 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
авторОсновной тип текстовых данных - ISO8859_1. UTF8 выбран как вспомогательный азанах такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 10:08 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
svdПо сравнению с использованием UTF16 это заметно. по сравнению с чем? Вы в курсе что такой кодировки в Firebird нет совсем. В последних версиях Interbase вроде есть, но как по мне она на фиг не сдалась. Про процессор. Вы ведь в курсе что если у вас чарсет коннекта и столбца отличаются, то Firebird будет делать преобразование кодировки на лету. Это будет жрать процессор. Как по мне, то в современных условиях нужны только две кодировки UTF-8 и OCTETS для бинарных данных. Остальные оправданы разве что из за совместимости со старым ПО, которое UNICODE не поддерживает. Объём БД на диске как по мне не так критичен, во первых он не вырастет кратно, ибо записи всё равно хранятся сжатыми, а во вторых в вашем случае не каждый символ будет занимать более 1 байта. Про память. Да потребление памяти скорее всего вырастет, но не сильно. Главный совет конфигурируйте Firebird под конкретную машину. Переходите на 3.0, там можно использовать SS с общим страничным кешем, что позволит сильно экономить потребление памяти, когда пользователей много. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 10:13 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Симонов Денис svdПо сравнению с использованием UTF16 это заметно. по сравнению с чем? Вы в курсе что такой кодировки в Firebird нет совсем. В последних версиях Interbase вроде есть, но как по мне она на фиг не сдалась. Про процессор. Вы ведь в курсе что если у вас чарсет коннекта и столбца отличаются, то Firebird будет делать преобразование кодировки на лету. Это будет жрать процессор. Как по мне, то в современных условиях нужны только две кодировки UTF-8 и OCTETS для бинарных данных. Остальные оправданы разве что из за совместимости со старым ПО, которое UNICODE не поддерживает. Объём БД на диске как по мне не так критичен, во первых он не вырастет кратно, ибо записи всё равно хранятся сжатыми, а во вторых в вашем случае не каждый символ будет занимать более 1 байта. Про память. Да потребление памяти скорее всего вырастет, но не сильно. Главный совет конфигурируйте Firebird под конкретную машину. Переходите на 3.0, там можно использовать SS с общим страничным кешем, что позволит сильно экономить потребление памяти, когда пользователей много. Большое спасибо! Дельные рекомендации. В данный момент чарсет коннекта utf8, а столбцов с ISO на порядок больше, чем UTF8. Полный перевод всей базы на UTF8 потребует использования дополнительной программы обновления. Переход на 3.0 уже раз обсуждался - из-за хранения пользователей в самой базе. Вот еще один аргумент скорейшего перехода. Пользователь используется всего один - sysdba. Хотя есть конфигурации с репликациями - там еще один добавляется. Но одновременных соединений от 39 до 60. Так же зависит от конфигурации: заспускаются различные треды, каждый со своим коннектом. Еще пара вопросов: при миграции с 2.5 на 3 много нюансов нужно учитывать при переводе базы? Есть ли где то готовое описание подобного перевода? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:06 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
svd, по миграции специфики мало. Архитектуры у 2.5 и 3.0 все те же самые, разве что суперсервер распараллеливается по ядрам, и локальное подключение (без имени сервера) это ембеддед, а не xnet. А так - миграция как обычно - берем скрипт базы, запускаем на 3.0, проверяем. вычищаем все ошибки, составляем скрипт для модификации 2.5. модифицируем, делаем б/р. потом проверяем приложение на совместимость запросов. По несовместимостям - читать README.incompatibilities.txt. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:12 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
svd, с 2.5 на 3.0 не так уж много надо переделывать. Все несовместимости описаны в Firebird 3.0 Release Notes в главе Compatibility Issues. Поскольку у вас практически только SYSDBA, то и геморроя с переносом пользователей не возникнет. Возможна некоторая коррекция процедур и триггеров, которые используют AS CURSOR, если для выражений в секции SELECT не задан алиас. Ну и желательно повычищать запросы где tcnm помесь явных и неявных JOIN. svdПереход на 3.0 уже раз обсуждался - из-за хранения пользователей в самой базе. А вот тут есть нюансы, особенно при работе с сервисами. Ну например при восстановлении БД, вам всё равно придётся пользоваться общесерверным SYSDBA ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:20 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
svd, вот на 4.0, как мне кажется, перейти будет намного сложнее из-за новых типов данных. Там конечно есть специальный параметр в конфиге и всякие SET BIND OF, но это временные решения. Лучше пилить приложение для поддержки новых типов, и править запросы со всякими CURRENT_TIMESTAMP, CURRENT_TIME ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:28 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Симонов Денис вот на 4.0, как мне кажется, перейти будет намного сложнее из-за новых типов данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:32 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Всем спасибо за советы! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:33 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Мимопроходящий с чего бы вдруг, если унаследованные приложения о них понятия не имет ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:40 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Мимопроходящийс чего бы вдруг, если унаследованные приложения о них понятия не имет а с того, что без выставленных настройках совместимости запросы с CURRENT_TIMESTAMP, CURRENT_TIME будут выдавать типы TIMESTAMP WITH TIMEZONE и TIME WITH TIMEZONE. Тут либо править эти запросы и менять на LOCALTIMESTAMP, LOCALTIME, либо ставить режим совместимости, либо юзать SET BIND OF. Ну это я ещё в тройке CURRENT_TIMESTAMP на LOCALTIMESTAMP поменял, когда их ввели. Далее всякие SUM, AVG и выражения с BIGINT/NUMERIC(18, x) могут неожиданно вернуть тип INT128/NUMERIC(38, x) о которых приложение не в курсе. Опять же либо включаем режим совместимости, либо SET BIND OF. Так что, если не использовать режим совместимости, то компоненты доступа надо дорабатывать серьёзно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:53 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Мимопроходящий с чего бы вдруг, если унаследованные приложения о них понятия не имет ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:58 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Симонов Денис а с того, что без выставленных настройках совместимости выставил и забыл об этом навсегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:59 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Мимопроходящий *зачем* прикладной аппликухе туда вообще лазить? P.S. <тут вам не Арея> упираться, что проблемы нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 12:20 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Basil A. Sidorov "Прикладные апликухи" бывают сильно разные. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 12:23 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Мимопроходящий продемонстрируй насцущную необходимость ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 12:25 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, да не, при включённых настройках совместимости всё будет работать. Другое дело, что рано или поздно захочется воспользоваться новыми возможностями, и вот тогда поддержку новых типов, таки придётся пилить. И сделать это не так же просто как с BOOLEAN в 3.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 12:30 |
|
FB 2.5.5 проблема со столбцами UTF8
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Мимопроходящий продемонстрируй насцущную необходимость ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 12:46 |
|
|
start [/forum/topic.php?fid=40&msg=39989717&tid=1560059]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
126ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 254ms |
total: | 483ms |
0 / 0 |