
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
06.04.2014, 16:24:06
|
|||
|---|---|---|---|
isql паддинг столбов: странный результат для LPAD('', integer_expression, 'X') |
|||
|
#18+
hi all Запустите у себя вот это вот: Код: plaintext 1. 2. 3. 4. 5. У мну на Код: plaintext 1. 2. - получится файлик размеров примерно в 65 К - см аттач. :-) В нём строки номер 12 и 14 имеют длину по 32 Кб. Это отчего такое с ними случилось ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2014, 16:42:39
|
|||
|---|---|---|---|
isql паддинг столбов: странный результат для LPAD('', integer_expression, 'X') |
|||
|
#18+
Не хватает функции, возвращающей тип данных по выражению. Если бы такая была, то её вызов для "lpad('1', 2+1, '0')||'<'" вернул бы "varchar(32765) character set ...". IBExpert в хинте на заголовке колонки отображает тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2014, 17:24:42
|
|||
|---|---|---|---|
|
|||
isql паддинг столбов: странный результат для LPAD('', integer_expression, 'X') |
|||
|
#18+
NickDeeНе хватает функции, возвращающей тип данных по выражению. Открой для себя SET SQLDA_DISPLAY ON; Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2014, 17:27:07
|
|||
|---|---|---|---|
isql паддинг столбов: странный результат для LPAD('', integer_expression, 'X') |
|||
|
#18+
Таблоид, результат PAD-функций с неконстантным вторым аргументом является строка максимальной длины (32К). Выражение из операторов-констант не считается константным (парсер / оптимизатор никогда не вычисляют выражения). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2014, 17:49:54
|
|||
|---|---|---|---|
isql паддинг столбов: странный результат для LPAD('', integer_expression, 'X') |
|||
|
#18+
Код: sql 1. 2. 3. Проблема ровно одна: движку нужно заранее знать какого размера выделять буфер. Верней не так... Работа с памятью в движке на сегодня устроена так, что требует не только указывать длину строковых полей в БД, но и имеет некоторые другие неудобные архитектурные последствия. Пока не будет придумана и реализована эффективная работа с резиновым varchar, придётся считаться с некоторыми ограничениями и несуразностями. В delphi например есть оба типа, string(N) и string, причём второй со счётчиком ссылок. И работает всё крайне быстро (например при присваивании одной переменной в другую (или при передаче string-параметра в функцию) не происходит выделения памяти под строку и копирования данных, а происходит лишь увеличение на 1 счётчика ссылок). В firebird же, насколько я понимаю, при присваивании и передаче в функцию всегда происходит alloc(+zero_allocated_memory)+move. Всё это сказывается на отжоре памяти и тактах cpu, например при: Код: sql 1. будут выделены и перелопачены лишние мегабайты памяти, причём не только при самом селекте, но и при сортировке. Хотя тут достаточно одного стринга длиной 3 байта, и счётчика ссылок на него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2014, 18:00:09
|
|||
|---|---|---|---|
isql паддинг столбов: странный результат для LPAD('', integer_expression, 'X') |
|||
|
#18+
NickDeeэффективная работа с резиновым varchar спасибо, поржал NickDeeВ firebird же, насколько я понимаю, при присваивании и передаче в функцию всегда происходит alloc(+zero_allocated_memory)+move неправильно считаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&mobile=1&tid=1563737]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 453ms |

| 0 / 0 |
