powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5.5 проблема со столбцами UTF8
25 сообщений из 61, страница 2 из 3
FB 2.5.5 проблема со столбцами UTF8
    #39989382
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svdВ столбце объявлено 100 символов utf8, в запросе заносится 36. Столбец Artikelcode имеет
размер 20 ISO8859_1. там 8 цифер всего. Остьльные строковые значения пустые. Где внесены
даты и время - используются соотвественные столбцы

На этой таблице запрос выше отработал без ошибок. Что подозрительно, в нём поля WaWiDatum
и VerfallDatum помянены местами относительно DDL. Что намекает, что таблица может быть не
совсем той.

Другая возможность - триггера на ней, в которых и происходит ошибка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989412
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 . Это может играть какую то негативную роль?
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989427
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
del
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989498
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svdно в реальности из-за миграции данных они остаются ISO8859_1
в смысле?
- я не помню, чтобы set names как-то влияло на чарсет создаваемого столбца. Это чарсет коннекта, не более того.
- чарсет у БД определяет только чарсет создаваемых тексто-блобовых столбцов, если у них при этом чарсет не указан.
Никто не запрещает указать у базы чарсет utf8, а потом создать столбец с чарсетом ISO8859_1.
- изменение чарсета у базы никак не влияет на уже созданные столбцы. Чарсет у базы - это "дефолт чарсета для вновь создаваемых столбцов".
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989501
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svdЭто может играть какую то негативную роль?

Это означает, что разработчики БД и приложения не совсем понимают что они делают и как это
работает. Да, приход северного лиса в таких обстоятельствах - вопрос времени.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989665
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Это означает, что разработчики БД и приложения не совсем понимают что они делают и как это
работает. Да, приход северного лиса в таких обстоятельствах - вопрос времени.


Судя по этому сообщению 22182137 , то разработчики именно правильно ориентировались. Основной тип текстовых данных - ISO8859_1. UTF8 выбран как вспомогательный, потому что предоставляет возможность мультибайтовых национальных символов умещать в ограниченных объемах записей уже стандартированных интерфейсов. По сравнению с использованием UTF16 это заметно.

С другой стороны замена всех символьных типов на UTF8 может привести к увеличению объема базы данных. В стандартной комплектации робота, основная база расположена на том же компьютере, где и сам робот. в зависимости от подключенного оборудования, процессор может быть от Celeron (управление одним роботом) до Core I7, Память от 1GB до 4GB. С этой стороны есть ли какие то рекомендации по использованию низкопроизводительных процессоров и небольшого объема рабочей памяти?
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989668
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В огороде бузина ...
Если вам требуется хранить "разноязычные" тексты - UTF8. При чём тут память и процессор???
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989680
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
В огороде бузина ...
Если вам требуется хранить "разноязычные" тексты - UTF8. При чём тут память и процессор???


Всегда лучше узнать мнение специалистов. О том, какая машина будет использоваться решаю не я. Для подачи совета нужен веский аргумент. Сейчас аргументом является "это дешево и работает". Когда на одной машине работает PLC, программы с графикой и стримингом видео с вебкамеры, компилированные в Embarcadero (а Дельфи создает совсем не компактный код), да еще и база данных, вопрос становится актуальным. В данный момент база сконфигурирована так, что сразу ведет запись на диск. Но может оказаться так, что проблемы вызваны именно нехваткой памяти.
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989685
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОсновной тип текстовых данных - ISO8859_1. UTF8 выбран как вспомогательный
азанах такое?
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989687
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svdПо сравнению с использованием UTF16 это заметно.

по сравнению с чем? Вы в курсе что такой кодировки в Firebird нет совсем. В последних версиях Interbase вроде есть, но как по мне она на фиг не сдалась.

Про процессор. Вы ведь в курсе что если у вас чарсет коннекта и столбца отличаются, то Firebird будет делать преобразование кодировки на лету. Это будет жрать процессор. Как по мне, то в современных условиях нужны только две кодировки UTF-8 и OCTETS для бинарных данных. Остальные оправданы разве что из за совместимости со старым ПО, которое UNICODE не поддерживает. Объём БД на диске как по мне не так критичен, во первых он не вырастет кратно, ибо записи всё равно хранятся сжатыми, а во вторых в вашем случае не каждый символ будет занимать более 1 байта.

Про память. Да потребление памяти скорее всего вырастет, но не сильно. Главный совет конфигурируйте Firebird под конкретную машину. Переходите на 3.0, там можно использовать SS с общим страничным кешем, что позволит сильно экономить потребление памяти, когда пользователей много.
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989712
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
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 много нюансов нужно учитывать при переводе базы? Есть ли где то готовое описание подобного перевода?
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989714
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd,

по миграции специфики мало. Архитектуры у 2.5 и 3.0 все те же самые, разве что суперсервер распараллеливается по ядрам, и локальное подключение (без имени сервера) это ембеддед, а не xnet.
А так - миграция как обычно - берем скрипт базы, запускаем на 3.0, проверяем. вычищаем все ошибки, составляем скрипт для модификации 2.5. модифицируем, делаем б/р. потом проверяем приложение на совместимость запросов.
По несовместимостям - читать README.incompatibilities.txt.
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989717
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd,

с 2.5 на 3.0 не так уж много надо переделывать. Все несовместимости описаны в Firebird 3.0 Release Notes в главе Compatibility Issues.
Поскольку у вас практически только SYSDBA, то и геморроя с переносом пользователей не возникнет. Возможна некоторая коррекция процедур и триггеров, которые используют AS CURSOR, если для выражений в секции SELECT не задан алиас. Ну и желательно повычищать запросы где tcnm помесь явных и неявных JOIN.

svdПереход на 3.0 уже раз обсуждался - из-за хранения пользователей в самой базе.

А вот тут есть нюансы, особенно при работе с сервисами. Ну например при восстановлении БД, вам всё равно придётся пользоваться общесерверным SYSDBA
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989720
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd,

вот на 4.0, как мне кажется, перейти будет намного сложнее из-за новых типов данных. Там конечно есть специальный параметр в конфиге и всякие SET BIND OF, но это временные решения. Лучше пилить приложение для поддержки новых типов, и править запросы со всякими CURRENT_TIMESTAMP, CURRENT_TIME
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989724
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
вот на 4.0, как мне кажется, перейти будет намного сложнее из-за новых типов данных.
с чего бы вдруг, если унаследованные приложения о них понятия не имет
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989725
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо за советы!
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989730
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
с чего бы вдруг, если унаследованные приложения о них понятия не имет
Например потому, что mon$-таблицах поменялись некоторые типы данных и надо (будет) крутить настройки совместимости для четвёрки в целом или "со стороны клиента".
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989750
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийс чего бы вдруг, если унаследованные приложения о них понятия не имет

а с того, что без выставленных настройках совместимости запросы с 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.

Так что, если не использовать режим совместимости, то компоненты доступа надо дорабатывать серьёзно.
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989756
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Мимопроходящий
с чего бы вдруг, если унаследованные приложения о них понятия не имет
Например потому, что mon$-таблицах поменялись некоторые типы данных и надо (будет) крутить настройки совместимости для четвёрки в целом или "со стороны клиента".
*зачем* прикладной аппликухе туда вообще лазить?
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989757
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
а с того, что без выставленных настройках совместимости
ну и где тут геморрой?
выставил и забыл об этом навсегда.
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989766
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
*зачем* прикладной аппликухе туда вообще лазить?
"Прикладные апликухи" бывают сильно разные.

P.S.
<тут вам не Арея> упираться, что проблемы нет.
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989769
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
"Прикладные апликухи" бывают сильно разные.
продемонстрируй насцущную необходимость
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989771
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
продемонстрируй насцущную необходимость
Отстрелить любителей уйти с работы, оставив на заблокированном рабочем столе "недосмотренный" грид.
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989773
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

да не, при включённых настройках совместимости всё будет работать. Другое дело, что рано или поздно захочется воспользоваться новыми возможностями, и вот тогда поддержку новых типов, таки придётся пилить. И сделать это не так же просто как с BOOLEAN в 3.0
...
Рейтинг: 0 / 0
FB 2.5.5 проблема со столбцами UTF8
    #39989784
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Мимопроходящий
продемонстрируй насцущную необходимость
Отстрелить любителей уйти с работы, оставив на заблокированном рабочем столе "недосмотренный" грид.
это ты называешь прикладухой?
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5.5 проблема со столбцами UTF8
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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