Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI / 25 сообщений из 145, страница 1 из 6
30.03.2011, 16:02
    #37190533
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
Имеем FB2.0.3, IBExpert от 08.10.2010
(аналогичное поведение на FB2.5 и последнем IBExpert)

Не спрашивайте зачем мне это надо, но создаем БД в UTF8
размер страницы 16к.

В ней создаем таблицу

CREATE TABLE TEST_ASCI (
ID INTEGER NOT NULL,
ASCI_1 VARCHAR(32760) CHARACTER SET ASCII,
ASCI_2 VARCHAR(8185) CHARACTER SET ASCII
);

И вот парадокс, длина поля ASCI_2 не может быть больше 8185,
иначе при заходе на закладку Data в IBExperte вылезает ошибка
block size exceeds implementation restriction.
Почему? Поля в ASCI, соответственно длина всей записи
(не учитывая служебные) 4+32760+8185=40949, это сильно
меньше ограничения в 64к.
Причем никакое поле больше впихнуть в эту таблицу нельзя.

Причем, если увеличить ASCI_2 до 8186 (на единицу),
то ошибка вылезает, а если увеличить ASCI_1 до
32761 (на единицу) то ошибки нет.
...
Рейтинг: 0 / 0
30.03.2011, 16:10
    #37190563
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
Connection charset?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.03.2011, 16:18
    #37190590
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
UTF8
...
Рейтинг: 0 / 0
30.03.2011, 16:37
    #37190653
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
У тебя лимит в 64к преодолел конечный result set, который уже в кодировке utf8.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.03.2011, 16:39
    #37190656
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
А как быть, если мне нужно два поля в таблице по 30кб? BLOB не могу использовать ввиду низкой производительности. На базе в 1251 все работало и летало. Проба использовать BLOB показала жуткие тормоза.
...
Рейтинг: 0 / 0
30.03.2011, 16:42
    #37190661
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
Не использовать utf8 на клиенте.

TMDeveloperПроба использовать BLOB показала жуткие тормоза.

Значит ты неправильно его использовал.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.03.2011, 16:47
    #37190674
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
TMDeveloperА как быть, если мне нужно два поля в таблице по 30кб? Не упоминать их в одном запросе.
...
Рейтинг: 0 / 0
30.03.2011, 16:48
    #37190682
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
TMDeveloper. Проба использовать BLOB показала жуткие тормоза.
а шо там за серверотрясение? Блобы - не пуля, конечно, но все-таки...
...
Рейтинг: 0 / 0
30.03.2011, 16:52
    #37190697
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
>> Не использовать utf8 на клиенте.

Надо.

>>Значит ты неправильно его использовал.

Несколько сот записей за раз загружаются, 1,2,3 записи могут содержать один документ (картинка) - результат сразу пакуется и по tcp/ip отправляется на сервер. Т.е. экспорт.
BLOB всяко тестировался, т.к. очевидно, что он удобнее, но хранение построчно документа в base64 дает сильное преимущество по производительности при выгрузке да и вообще даже при отображении одной картинки.

Когда наконец не будет ограничений 32к и 64к??
...
Рейтинг: 0 / 0
30.03.2011, 16:57
    #37190714
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
TMDeveloperрезультат сразу пакуется и по tcp/ip отправляется на сервер. Т.е. экспорт. BLOB всяко
тестировался

Я чую дот-нет провайдер...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.03.2011, 17:04
    #37190733
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
TMDeveloper1,2,3 записи могут содержать один документ (картинка) - результат сразу пакуется и по tcp/ip отправляется на сервер. Т.е. экспорт.
как бы хорошо не звучало "блоб медленный", но еще лучше звучит "хранить картинки в варчаре - изврат".
TMDeveloperКогда наконец не будет ограничений 32к и 64к??
чтобы хранить мегабайтные картинки в варчаре? да ты болен :-)
...
Рейтинг: 0 / 0
30.03.2011, 17:05
    #37190735
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
> Я чую дот-нет провайдер...

:-)

Нет, FIBPlus 7.0.15, Delphi XE Prof.
Тормоза из-за массовости. Понятно, что загрузка 2-3 картинок из блоба не покажется юзеру утомительной, но если их 100...

Попробую не упоминать оба поля в одном запросе. Т.е. по два запроса на запись будет. Если результат покажет сравнимое с BLOB время, то видимо придется юзать BLOB.

А вот если б небыло ограничения в 32 и 64к, то таких проблем небыло бы. 21 век, 64-разрядные процы о ОС... а у нас 64к.. Ппц, так и сидим в 1980х. :-(
...
Рейтинг: 0 / 0
30.03.2011, 17:07
    #37190741
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
2 kdv

Сам болен ;-)

Нужна максимальная производительность и практика показывает, что хранение в варчарах самое быстрое с точки зрения извлечения! Потестируй сам.
...
Рейтинг: 0 / 0
30.03.2011, 17:10
    #37190744
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
я не собираюсь тестировать, и так понятно. Тем не менее, пихать картинки в варчар - это надевать штаны на голову.
...
Рейтинг: 0 / 0
30.03.2011, 17:11
    #37190749
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
> чтобы хранить мегабайтные картинки в варчаре? да ты болен :-)

Картинки как раз по 10-100кб примерно. На самою большую, которая пока была, уходило 2 записи с двума варчарами.
...
Рейтинг: 0 / 0
30.03.2011, 17:14
    #37190760
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
TMDeveloperНет, FIBPlus 7.0.15, Delphi XE Prof.

Ох, что-то ты делаешь не так... При таком размере блоба не должно быть разницы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.03.2011, 17:17
    #37190767
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
кстати, ну пакуется картинка. ну отправляется по tcp. В дремучем 1997 году я долбал InterBase 5.0 блобами, хранил там текстовые документы (можно было любые), и база была 24 гига. Так вот, задолбать InterBase не удалось, потому что из-за "массовости" (а каждый блоб был где-то по 8 килобайт) просто заткнулся сетевой канал.

дальше, что с варчарами, что с блобами, картинка в 100к будет на диске занимать те же 100к. То есть, дисковый io тут практически ни при чем, более того, таблица оказывается вусмерть забита этими самыми варчарами, и сервер собирает запись из фрагментов с разных страниц. Вопрос - может, что-то у вас не так с вытаскиванием картинок из блобов?
...
Рейтинг: 0 / 0
30.03.2011, 17:20
    #37190774
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
> Ох, что-то ты делаешь не так... При таком размере блоба не должно быть разницы.

Есть. Большинство картинок умещается в одну запись с двумя варчарами. Поэтому на извлечение одной картинки уходит одно обращение к серверу. При этом открыв pFIBQuery и слизав оттуда одну за другой картинки сильно быстрее. В один запрос все сразу. А как извлекается блоб? Фактически в два обращения к серверу! Т.е. на каждую заголовочную запись картинки еще идет обращение за содержимым блоба. Вот и разница.

Я не прав?
...
Рейтинг: 0 / 0
30.03.2011, 17:27
    #37190791
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
TMDeveloperкаждую заголовочную запись картинки еще идет обращение за содержимым блоба. Вот и разница.
ну и что? какие то два несчастных tcp пакета в ЛОКАЛЬНОЙ системе замедляют работу прямо жуть? Переходи на ФБ 2.5...
Ты же пишешь, что РЕЗУЛЬТАТ ВЫБОРКИ отправляешь клиенту по tcp. То есть, блоб или варчар ты вытаскиваешь локально. И скорость соединения твоей проги с ФБ не ограничена скоростью соединения клиента с твоей прогой.

Потестить, конечно, можно. Например, хранить куски по 30-20к на страницах 8к, и посмотреть, что будет быстрее, блобы и варчары, и насколько. Варчары будут быстрее конечно, но думаю, не так чтобы адски.
...
Рейтинг: 0 / 0
30.03.2011, 17:32
    #37190804
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
TMDeveloperЯ не прав?
Неправ.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.03.2011, 17:35
    #37190813
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
2 kdv

> какие то два несчастных tcp пакета в ЛОКАЛЬНОЙ системе замедляют работу прямо жуть?

Логика: Юзер жмет кнопку "Экспорт". Программа выводит modal-окно с индикатором, быстренько готовит пакет, ложит его на диск, закрывает окно с индикатором и запускает отдельный TThread, который и уже гонит в фоне данные через интернет. Если юзер будет ждать пока данные онлайн из базы через инет перекачаются на сервер, то он курить замучается.
Т.е. речь идет о том, чтобы быстро приготовить данные и запустить их отправку уже в фоне.

Короче, спасиба всем. Ваши мысли я понял. Сеня действительно попробую сделать просто одну таблицу с одним полем варчар 32к вместо блоба и попробую так, т.е. на картинку будет уходить по 2-4 записи в таблице. И тоже самое с использованием блоба. Время засеку, тут выложу. Посмотрим.
...
Рейтинг: 0 / 0
30.03.2011, 17:35
    #37190816
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
2 Dimitry Sibiryakov

Не прав в чем именно?
...
Рейтинг: 0 / 0
30.03.2011, 17:40
    #37190829
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
Если кто-то спросит почему нельзя готовить пакет в фоне, отвечаю, потому что логика такая, не должен юзер во время подготовки пакета ничего изменять, поэтому modal окно с индикатором. Программа не сетевая.
...
Рейтинг: 0 / 0
30.03.2011, 17:40
    #37190830
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
TMDeveloperНе прав в чем именно?

В подсчёте обращений к серверу.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.03.2011, 17:41
    #37190834
TMDeveloper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI
2 Dimitry Sibiryakov

Тогда чем объяснить, что блоб медленнее варчара? Реально медленнее - факт!
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Длины полей и ограничения. Не понятно или глюк. FB2.5, IBExpert, UTF8+ASCI / 25 сообщений из 145, страница 1 из 6
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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