Привет!

> Еще хочу уточнить: результат SUBSTRING - BLOB, но тип описанного
> вычисляемого поля у меня в IBManager показан как VARCHAR(100). Вот я и
> подумал, что если такое поле сделать, то указанные раньше негативные
> моменты отпадут. Не так?

IBManager и все остальные показывают тебе результат. Но. Как мне
совсем недавно объяснил ДЕ, substring создает ВРЕМЕННЫЙ блоб, который
сервер до коммита где-то должен хранить. Вот он его и хранит.
Минимальный размер, который хаваецца - 1 страница. Вот и посчитай,
сколько памяти потребуется для временных блобов при размере страницы
16 кб и при селекте 1000 таких блобов.

>> И вычисляться эти поля будут при каждом селекте из таблицы. А триггер будет
>> срабатывать только на update или insert.

> Я так понимаю, не при "каждом селекте", а при "каждом селекте, который
> обращается к указанному вычисляемому полю" ? Или я неправильно
> представляю работу сервера по выборке данных?

Вот тут я не уверен, врать не буду. Кажется тот же ДЕ (или нет?)
говорил, что читается минимум 1 страница из таблички - даже при select
1 from table. Разворачиваются при этом вычисляемые поля или нет - хз,
можешь поэкспериментировать и нам рассказать.

> По специфике моей базы ВСЕ селекты нуждаются в указанном поле, в то
> время как апдейты чаще всего затрагивают другие поля, не меняя БЛОБ.
> Потому у меня и возникла идея- зачем при каждом обновлении (которое не
> меняет БЛОБ) заново вычислять в тригере строку, которая не изменилась?

Ну и сравни в триггере, изменился ли дескриптор блоба. Если не
изменился - ничего не обновляй.


-- 
Best regards,
 Sergey                            mailto:[EMAIL PROTECTED]


Ответить