|
|
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeПо существу говори :) Прикреплённая тема, ссылка дохлая, но всё же копий в сети как грязи: http://segfault.kiev.ua/smart-questions-ru.html#goal Я вопрос задал именно тот, который интересен. Применить этот Quote можно например если хочется быстро закачивать большие датасеты на клиента, если не по локалке работать. Код: sql 1. Это может быть драматически медленно :) Заменяем на: Код: sql 1. Получаем профит. На клиент придёт одна запись из 7 блобов, без большого кол-ва "туда-сюда пакетов". Нужно будет извлечь данные полей, что даже для миллиона записей будет менее одной секунды. В полях Address, Phones и Description могут быть как запятые, так и кавычки. Поэтому в запросе мы используем функцию Quote, мегасупербыструю и универсальную (о ней я тебя и спрашиваю). Код на клиенте примерно такой: Код: pascal 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. Ещё его можно применить когда нужно выгрузить данные для экспорта куда-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 00:16 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDeeНа клиент придёт одна запись из 7 блобов, без большого кол-ва "туда-сюда пакетов". Вот только 7 блобов это и есть "большое количество туда-сюда пакетов". Гораздо быстрее будет на той стороне выгрузить все данные в файл и уже этот файл упаковать и передавать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 00:30 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeНа клиент придёт одна запись из 7 блобов, без большого кол-ва "туда-сюда пакетов". Вот только 7 блобов это и есть "большое количество туда-сюда пакетов". Гораздо быстрее будет на той стороне выгрузить все данные в файл и уже этот файл упаковать и передавать. если между list поставить "|| ASCII_CHAR(13) || ASCII_CHAR(10) ||", то получится один блоб. Разве один блоб тоже будет неэффективно передан? Про упаковать согласен. Ещё функцию Pack в select добавить, и чтобы возвращала бинарный блоб. Вот кстати для выгрузки в csv: Код: sql 1. 2. 3. Поэтому вынь да положь нам быстрый Quote :) Или ещё примеров накидать? :) Это уже тогда троллинг будет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:03 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDeeРазве один блоб тоже будет неэффективно передан? Да, он будет передан менее эффективно чем упакованный файл по HTTP протоколу. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:13 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeРазве один блоб тоже будет неэффективно передан? Да, он будет передан менее эффективно чем упакованный файл по HTTP протоколу. А если блоб тоже будет упакован? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:17 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDeeА если блоб тоже будет упакован? Закачка в несколько потоков, восстановление при разрыве - всё это умеет HTTP, но не Firebird. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:18 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeА если блоб тоже будет упакован? Закачка в несколько потоков, восстановление при разрыве - всё это умеет HTTP, но не Firebird. Но ведь сервер может положить блоб в табличку. А клиент может скачать этот блоб из таблички в несколько потоков, разве нет? И при разрыве связи продолжить скачивать с нужного места... раз уж мы начали мыслить широко :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:25 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDeeА клиент может скачать этот блоб из таблички в несколько потоков, разве нет? Нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:26 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDee> Заменяем на: Ты умудрился исгадить насущную, в общем-то, необходимость совершенно идиотским примером. Именно в таких случаях и говорят, что нефиг, ибо голову расшибёте. (с) > На клиент придёт одна запись из 7 блобов, без большого кол-ва "туда-сюда пакетов" Как уже сказали - ошибаешься. Ещё интересно, зачем решать несколько другую задачу такими непредназначенными для неё методами, вместо накопления блобов/бинарников/ХМЛ и пр., поклонниками которых ты являешься. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:27 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDee> А клиент может скачать этот блоб из таблички в несколько потоков, разве нет? Точно нет. NickDee> И при разрыве связи продолжить скачивать с нужного места Тоже нет. Вернее, это зависит не совсем от FB, а скорее от сетевой подсистемы, настроек и пр. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:28 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамТы умудрился исгадить насущную, в общем-то, необходимость совершенно идиотским примером. Вот же хороший пример про экспорт: 16486456 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:29 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамNickDee> А клиент может скачать этот блоб из таблички в несколько потоков, разве нет? Точно нет. NickDee> И при разрыве связи продолжить скачивать с нужного места Тоже нет. Вернее, это зависит не совсем от FB, а скорее от сетевой подсистемы, настроек и пр. Т.е. я не смогу создать 10 коннектов и утянуть в каждом по 1/10 блоба? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:31 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDeeГаджимурадов РустамТы умудрился исгадить насущную, в общем-то, необходимость совершенно идиотским примером. Вот же хороший пример про экспорт: 16486456 Да и не думаю я что насущность может быть изгажена неудачным примером. Насущность никуда не делась. Или ты всё-таки чувствуешь что "всё, пипец, не надо. Говнопример всё испортил"? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:39 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDeeНасущность никуда не делась. Она давно уже не существует. С появления утильки под названием FBExport. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:42 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeНасущность никуда не делась. Она давно уже не существует. С появления утильки под названием FBExport. ты уже троллишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:48 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDee> Вот же хороший пример про экспорт: 16486456 Я его видел. Та же чепуха. NickDee> Т.е. я не смогу создать 10 коннектов и утянуть в каждом по 1/10 блоба? Ааа, ты таким макаром имел в виду. ХитрО, в твоём стиле. Но нет, сегментированные точно не получится, а потоковые - не знаю, ими вроде итак никто не пользуется (это надо уже у Влада/ДЕ уточнять - можно ли расшарить БЛОБ или читать кусками с указанием нужного смещения, думаю что нельзя). NickDee> Или ты всё-таки чувствуешь Нет, я сказал то, что сказал - не каждой обезьяне можно доверить гранату. Даже игрушечную. :) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 01:59 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамНет, я сказал то, что сказал - не каждой обезьяне можно доверить гранату. Даже игрушечную. :) Тролльнуть решил напоследок? :) Что за ночь блин :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 02:22 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
NickDeeбез разницы по чему сортировать, хоть по ID, всё-равно запись в памяти хранится по объявленной в метаданных длине.В общем, это... товарищ NickDee! Уламывай как сможешь dimitr'a, чтобы он портировал фикс к CORE-4528 в 2.5. Вот тебе достаточно широкая таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И вот два варианта получения из неё кортежей, упорядоченных по полю `y`: var-1. Революцьонная сортировка с join'ом по rdb$db_key: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. var-2. Обычный стиральный порошок: Код: plaintext 1. 2. 3. 4. 5. 6. 7. И получаем: trace для var-1 : 4942 ms, без всякого превышения TempCacheLimit'a Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 8073 ms, общий расход TempSpace - около 3 Гб Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Ну, и напоследок - результаты в isql (mon$memory_usage.max_memory_xxx): var-1: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. var-2: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Как говорится: кому надо - сам поймёт, куда дальше строчить письмена... ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2014, 14:40 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
ТаблоидУламывай как сможешь dimitr'a, чтобы он портировал фикс к CORE-4528 в 2.5.Кажись, не надо уламывать :-) Судя по SF.net SVN: firebird:[59999] firebird/branches/B2_5_Release: автор+ 2014-08-25 13:40 dimitr + M src/jrd/Optimizer.cpp +Fixed CORE-4530: DB_KEY based join of two tables may be ineffective.- всё теперь там будет хорошо, заживём по-новому! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2014, 18:36 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Таблоидзаживём по-новому это только тебя, извращенца, интересуют обходные пути. Все остальные в этом топике хотят, чтобы летало "искаропки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2014, 18:48 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Hello, Dimitr! You wrote on 26 августа 2014 г. 19:04:49: DimitrТаблоид> заживём по-новому > это только тебя, извращенца, интересуют обходные пути. Все остальные в > этом топике хотят, чтобы летало "искаропки". я даже больше скажу. восходит на востоке, заходит на западе - НИЧЕГО НЕ НАДО ТРОГАТЬ. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2014, 19:07 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
> Автор: NickDee > > Т.е. я не смогу создать 10 коннектов и утянуть в каждом по 1/10 блоба? > substring ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 23:54 |
|
||
|
Опять про varchar(n)
|
|||
|---|---|---|---|
|
#18+
Сисдба Мастеркеевич> substring ? Это будут 10 отдельных разных БЛОБов, а не оригинальный. Хотя технически - да, на клиенте их можно будет склеить и получить идентичный (по содержимому) с оригиналом (но всё равно другой). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 01:49 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38727737&tid=1563372]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
178ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 486ms |

| 0 / 0 |
