|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
На официальном сайте в технической спецификации ( https://firebirdsql.org/en/firebird-technical-specifications ) сказано, что максимальный размер BLOB'а - 32 ГБ. При этом в pdf-документации и для 2.5 и для 3 написано, что максимальный размер - 4 ГБ. Скорее всего, ограничение 32 - это имеется в виду ограничение самого типа данных , а не конкретной реализации этого типа в СУБД. По хорошему надо хотя бы в комментарии сказать и не вводить людей в заблуждение. Программисту сказать - сам дурак, документацию не читал - можно, а вот, например, коммерсанту, выбирающему продукт - нельзя. А вообще, это замечание навеяно тем, что я не могу скачать с помощью FireDAC даже файл 2.78 GB. Топик в соседнем форуме. P.S. А вот успешно загружаю и 7 ГБ и даже больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2020, 22:26 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
nicholaos P.S. А вот успешно загружаю и 7 ГБ и даже больше. Как ты узнал, что "успешно"? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2020, 23:20 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
размер да 32 Гб. Но при таком размере не все функции работают. Там какие проблемы были с определением размера блоба, и с потоковыми блобами есть проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2020, 23:24 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
Симонов Денис, Так, может, настало время таки разобраться, и даже, не побоюсь смелости этого предложения, полечить?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2020, 23:28 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
ъъъъъ, Сделал бэкап-рестор, выполнил валидацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2020, 23:40 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
nicholaos ъъъъъ, Сделал бэкап-рестор, выполнил валидацию. И таким образом ты понял, что данные (блобы > 7 Гб) оказались в базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 00:16 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
ъъъъъ, По размеру файла базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 00:34 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
nicholaos, вообще, размер блоба ограничен размером страницы БД. В доке написано, что для размера страницы 4к лимит это 2 гиг блоба (524к страниц по 4к). Ссылки на блоб, насколько я в курсе, 64битные (4 байта) https://www.firebirdsql.org/pdfmanual/html/fbint-page-5.html https://www.firebirdsql.org/pdfmanual/html/fbint-page-8.html При этом, если на страницу данных блоб не влазит, туда ставятся ссылки на страницы блобов. По идее, на страницу 16к влазит чуть меньше чем 256 ссылок. Ссылки могут быть на страницы блобов уровня 1, где либо данные либо опять ссылки, которые ссылаются на уровень 2, где уже сами блобы. Простым подсчетом у меня как-то не очень получается, типа 256 ссылок * 256 ссылок * 16384 = 1 гиг. Что-то я не то считаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 01:28 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
nicholaos ъъъъъ, По размеру файла базы. Оставь на время FireDAC, проведи опыт по выкачиванию, якобы закачанного, на IBX. Сравним результаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 10:55 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
kdvСсылки на блоб, насколько я в курсе, 64битные (4 байта) 64 бита - это 8 байт ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 10:58 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
Vlad F, Ответил в исходной теме. Результаты интересные, похоже использование ISC API напрямую мне не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 12:09 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
nicholaos похоже использование ISC API напрямую мне не поможет ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 12:20 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
Симонов Денис, упс. тогда 512*512*16384 = 4 гиг. для 8к - 256*256*8192 = 0,5 гиг для 4к - 128*128*4096 = 67мб. что-то не сходится. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 12:31 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
hvlad, Так его используют компоненты доступа IBX. При вызове напрямую можно попробовать читать до упора. Есть пример использования ISC API на Delphi? Понятно, что таким примером является сам IBX.IBIntf.pas или FireDAC.Phys.IBWrapper.pas/FireDAC.Phys.IBCli.pas, но из них сложно сделать минимальный пример. Я нашел только на C++ и они требуют зависимость от C:\Program Files (x86)\Firebird\Firebird_2_5\include и C:\Program Files (x86)\Firebird\Firebird_2_5\lib. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 12:36 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
nicholaos Есть пример использования ISC API на Delphi? Понятно, что таким примером является сам IBX.IBIntf.pas или FireDAC.Phys.IBWrapper.pas/FireDAC.Phys.IBCli.pas, но из них сложно сделать минимальный пример. Я нашел только на C++ и они требуют зависимость от C:\Program Files (x86)\Firebird\Firebird_2_5\include и C:\Program Files (x86)\Firebird\Firebird_2_5\lib. Неужели так сложно пример на C перевести на Pascal ? Тем более, что примеров на Pascal - вагон (тот же IBX) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 12:46 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
kdv, я вообще не понимаю что ты считаешь. Ну рассказывали же уже 100500 раз как хранятся блобы, какие у них есть уровни и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 12:47 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
hvlad, давай тогда начнем с конца, причем сразу оговорим, что у нас здоровенный блоб, для которого есть страницы уровня 1 и 2. Уровень 2 - это "конечная" страница блоба, где хранятся данные. Так? Уровень 1 - страница со ссылками на эти самые страницы. На страницу 16к влазит 512 32битных ссылок. Значит, одна страница 1 уровня может адресовать 8 мегабайт блоба (512*16384) на страницах 2 уровня. Теперь, ссылки в записи на 1 уровень страниц блоба. Вот я не знаю, сколько их может быть. Если 1 страница, то это опять 512 ссылок (максимум), но запись же может быть фрагментирована? Если только одна страница 16к, значит 512*8мб = 4 гиг. А если 64к фрагментированых на 4 страницы по 16к, тогда уже 16 гиг. Но это всё равно не стыкуется с "тех данными" которые в доке. Значит, чего-то я не учитываю (или считаю неправильно, что одно и то же). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 13:17 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
kdv Уровень 2 - это "конечная" страница блоба, где хранятся данные. Так? kdv На страницу 16к влазит 512 32битных ссылок Любой блоб любого уровня начинается с записи о блобе. Запись таблицы содержит номер эаписи о блобе (blob_id) - он 8-ми битный. В этой записи о блобе находится его заголовок, длина, кол-во сегментов и прочая мета инф-ция, а также данные блоба. Для блоба 0 уровня все его данные находятся в записи о блобе. Для блоба 1 уровня в записи о блобе находится массив номеров страниц в которых находятся данные блоба. Для блоба 2 уровня в записи о блобе находится массив номеров страниц в которых находится массив номеров страниц в которых находятся данные блоба. По аналогии можно придумать и 3-ий уровень и т.д., но это не нужно на практике. Дальше сам посчитаешь ? PS Напомню, что 16КБ содержит 4096 4-х байтных (32-битных) эл-тов, никак не 512 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 13:55 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
Ну, кто-нибудь скажет, каков максимальный размер блоба на самом деле? Не в ODS, а доступный через кондовые библиотеки доступа. А потом мы на это сообщение ссылаться будем, раз в документации до сих пор противоречия. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 14:09 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
ъъъъъдоступный через кондовые библиотеки доступа. А это, видишь ли, зависит от степени кривизны рук кондового автора конкретной библиотеки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 14:28 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
nicholaos Vlad F, Ответил в исходной теме. Результаты интересные, похоже использование ISC API напрямую мне не поможет. Понятно. Древние разработчики в таких случаях говорили, - Видит око, да зуб не ймёт.)) P.S. А приведи здесь полностью тот метод FireDAC из первого поста, в котором поднимается AV при вызове API. Не исключено, что его помогут подправить в нужном направлении ("чтения до упора")) раз уж тяжёлая артиллерия подключилась.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 14:29 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
hvladДля блоба 2 уровня в записи о блобе находится массив номеров страниц я думал что 2 - это конечная страница данных блоба. hvladНапомню, что 16КБ содержит 4096 4-х байтных тьфу, блин, я байты на биты делил... :-) Так-то да, получается для страницы 4к = 1024*1024*4096 = 4 гиг. А для страницы 16к - 274 гиг. Для 8к - 34 гиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 14:30 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
Vlad F, function TIBBlob.Read (FireDAC.Phys.IBWrapper.pas) Код: 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
AV на Lib.Fisc_get_segment. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 14:44 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
nicholaosAV на Lib.Fisc_get_segment. Такое может быть только если вызывающий код скармливает кривой указатель. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 15:27 |
|
Техническая спецификация на официальном сайте и максимальный размер BLOB'а
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Вызывающий код (из основной темы ) BLOBToFile Код: 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.
Падает на CreateBlobStream, только для больших файлов (>2ГБ). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2020, 15:48 |
|
|
start [/forum/topic.php?fid=40&msg=39937486&tid=1560409]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
131ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 248ms |
0 / 0 |