|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
sysdba22, даже если бы такой флаг был сделан, то возможен он только в новом API (о чём в принципе и говорит DS), а это потребует переписать компоненты доступа ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 12:08 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Симонов Денисвозможен он только в новом API (о чём в принципе и говорит DS) Нет, даже там с этим облом. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 12:20 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, я и не сказал что оно есть. Но теоретически может быть. Что может помешать? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 12:25 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Симонов ДенисНо теоретически может быть. Что может помешать? Я же уже сказал: проклятый вопрос выделения буферов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 12:27 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Ни API, ни форматы буферов менять не надо. Указание серверу можно дать с помощью хинта (подсказки) в самом запросе. Такая методика применяется в других серверах. Например: /* @@load_blob_inplace: имя_поля */ SELECT ... FROM ... Блобы передаются в месте с выборкой и размещаются в оперативной памяти клиентской библиотеки. Обращение к ним остается таким же -- через вызовы API функций по БЛОБ ІД. Просто теперь эти вызовы не приводят к трафику по сети, а берут данные из переданного БЛОБа, сохраненного в памяти клиентской библиотеки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 13:42 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Hello, Sysdba22! You wrote on 25 августа 2015 г. 13:46:11: Sysdba22> Ни API, ни форматы буферов менять не надо. не люблю школьников. даже если им за 40. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 13:46 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
sysdba22, прежде чем что-то утверждать наверное следовало бы хоть чуток знать как это устроено сейчас. И таки что будет делать бедный 32 битный клиент если какой-то чудик запросит хотя бы 1000 строк с блобами каждый из которых занимает по 1 гигабайту? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 14:02 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Симонов Денисfb userКак? есть такая агрегатная функция LIST Я знаю. Но не вижу как её можно использовать. Давайте на примере: Код: sql 1.
В табличке 10000 записей. В каждой записи три непустых блоба, итого 30000 лишних пакетов. С пингом в 10мс получается 300 секунд (думаю на самом деле будет много хуже). Расскажите как LIST поможет. Как это сделать на UDF, универсально, для всех возможных запросов и параметров и типов данных, я представляю, т.к. реализовал такую функцию для трёхзвенки. Туда можно хоть EXECUTE BLOCK передать, который набор данных возвращает. Симонов ДенисЯ тебя конкретно спрашивал про UDR (внешние функции/процедуры/триггеры) которые ты упомянул. Пишутся они совершенно иначе. Хоть одну скомпилировал? Лично я пробовал два раза хотя бы скомпилировать примеры. И пока не очень удачно. Ибо почему-то, то что содержится в include не достаточно и приходится тащить чуть ли не половину исходников FB. Не знаю может сейчас это и поправлено. Попробую ещё раз как время будет.Я предлагаю использовать UDR, если только их можно использовать хоть для чего-то. Вообще разницы нет что использовать, хоть UDF, хоть UDR. На скорость влиять не должно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 15:34 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
sysdba22, можно использовать SQL. операции слияния, преобразования в текст. если блобы мелкие - свалить их в одно текстовое поле и вывалить клиенту. Если блобов слишком много, они большие и ненужные, то не парить моск разработчикам, а выполнить СВОЮ работу и переделать структуру БД на удобоваримую. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 15:44 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
fb user, пример хреновый. Не понимаю на хрена тебе исходный код всех 10000 процедур. Ну ладно предположим для экспорта метаданных в скрипт. Но для этого нужна инфа только из одного из блоб полей, а не из трёх. Ну если брать ещё коммент, то из двух. Ибо остальные BLOBы нужны исключительно движку. Зафигачить всё это в один BLOB LISTом я могу, только мне лень. Там с составлением заголовка процедуры много мороки. примерчик использования LIST сильно упрощенно. Но понять можно. Не собирается заголовок и не учитываются зависимости. Тут по хорошему сначала надо одни хидеры процедур делать. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53.
Использовать для этого UDF, да ещё в трёхзвенке это как из пушки по воробьям. Ибо если ты делаешь трёхзвенку, то либо у тебя сервер приложений стоит на том же сервере где и СУБД, либо как минимум соединена по нормальному каналу. А уж тонкому клиенту ты можешь отдавать инфу в каком угодно виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 16:39 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Симонов Денис, вы похоже мыслите конкретно, в то время как я предпочитаю мыслить абстрактно. Вы пишите решение для конкретного запроса, а я для всех. И ещё. Вы не верно меня поняли. В моей трёхзвенке нет такой UDF. Но там есть то что я описал выше, т.е. реализованный универсальный алгоритм (который вполне можно заиспользовать и для UDF и для UDR, или чтобы просто результат запроса положить в строку (для любых нужд)). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 17:33 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Hello, Fb User! You wrote on 25 августа 2015 г. 17:57:48: Fb User> В моей трёхзвенке нет такой UDF. и трехзвенки тоже никакой нет... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 17:57 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
fb user, а понятно. Вы результат запроса сериализуете в XML или JSON. Ну так этому не место в UDF ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 18:11 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Симонов Дениса понятно. Вы результат запроса сериализуете в XML или JSON. Ну так этому не место в UDF Не понтяно вам. Не в XML и не в JSON. В свой формат, с упором на скорость парсинга. Чему не место в UDF? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 22:37 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
fb user, любой сериализации. Legacy UDF устроены таким образом, что контекст текущего коннекта там не получить. Таким образом придётся внутри UDF делать ещё одно подключение. В общем нафиг, нафиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 22:58 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Симонов ДенисТаким образом придётся внутри UDF делать ещё одно подключение. В общем нафиг, нафиг. Если бы я реализовывал, то передал бы хэндлы сессии и текущей транзакции в UDF. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2015, 23:09 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Какие UDF, XML и т.д.? Все делается проще: 1. добавляем calculated поле, в которое кастуем блоб если он короче некоторой величины. 2. на клиенте добавляем вычисляемое поле, которое смотрит сперва поле из п.1, а если оно null то дергает уже исходный блоб. Изменений и в БД, и на клиенте минимум, а на каналах с большими задержками ускорение заметно невооруженным глазом, если мелких блобов в разы больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2015, 00:03 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
fb userпередал бы хэндлы сессии и текущей транзакции в UDF. Прэлееестно... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2015, 00:27 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
Hello, Dimitry Sibiryakov! You wrote on 26 августа 2015 г. 10:42:48: Dimitry Sibiryakovfb user> передал бы хэндлы сессии и текущей транзакции в UDF. > Прэлееестно...per anus ad astra! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2015, 10:45 |
|
FireBird 3 выборка и Блоб
|
|||
---|---|---|---|
#18+
MikeDDКакие UDF, XML и т.д.? Все делается проще: 1. добавляем calculated поле, в которое кастуем блоб если он короче некоторой величины. 2. на клиенте добавляем вычисляемое поле, которое смотрит сперва поле из п.1, а если оно null то дергает уже исходный блоб. Изменений и в БД, и на клиенте минимум, а на каналах с большими задержками ускорение заметно невооруженным глазом, если мелких блобов в разы больше. толково, надо будет попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2015, 10:53 |
|
|
start [/forum/search_topic.php?author=pirat_new&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 1148ms |
total: | 1326ms |
0 / 0 |