|
|
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Имеется: сервер с Windows 7 x64 и Firebird 2.5.3 База данных формируется ежемесячно. Объем около 40 ГБ. Есть тенденция на ее увеличение. Таблиц всего 39, одна таблица является основной и содержит 150 - 200 млн. записей. Соответственно это количество тоже может увеличиваться. Изначально Firebird был x86, потом пришлось перейти на x64 Суть проблемы. Когда БД была около 10 ГБ бэкап и восстановление происходили без проблем. При достижении 30 ГБ столкнулся с нехваткой оперативной памяти при восстановлении бэкапа. Беглое изучение проблемы показало, что нехватка памяти возникает именно в процессе восстановления большой таблицы (одна большая транзакция?) и предел памяти в 2 гига на процесс просто напросто выбирался. Пришлось перейти на x64. Мониторинг ресурсов сервера указывает, что высвобождение памяти (коммит?) происходит после восстановления большой таблицы. В документации про эту особенность рестора ничего не нашел. Также не нашел упоминаний об этом среди результатов поиска. Это баг или фича? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 07:06 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Есть небольшое дополнение. В текущий момент восстанавливается БД размером 44 ГБ Восстановлено около 170 млн. записей Процесс сервера Firebird занимает в памяти 3,8 ГБ ЗЫ. Проверил момент высвобождения ресурсов. Ресурсы высвобождаются в момент завершения всей процедуры восстановления, а не после восстановления отдельной таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 09:59 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory K,хм,а можно глупый вопрос - память кто скушивает, fb? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 10:37 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
1. DDL таблицы покажите. 2. Попробуйте опцию рестора -one_at_a_time ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 10:40 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
GallemarGregory K,хм,а можно глупый вопрос - память кто скушивает, fb? Ага, он ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 10:58 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvlad1. DDL таблицы покажите. Боюсь, что в структуре этой самой большой таблицы ничего примечательного. Реальные названия полей заменены (полагаю, что это не важно). В основном это отсылки на ID связанных мелких табличек. Код: 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. Индексы есть, но строятся они вручную после восстановления. Первичный ключ по полю ID раньше был, но я потом от него отказался. Есть триггер на вставку записи для генерации ID Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 11:14 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvlad2. Попробуйте опцию рестора -one_at_a_time gbak на восстановление вызываю так: gbak -c -USE_ -REP -v -se localhost:service_mgr -user sysdba -pas masterkey db.fbk db.fdb -y log.log Соответственно сейчас пробую так (это займет какое-то время): gbak -c -one_at_a_time -USE_ -REP -v -se localhost:service_mgr -user sysdba -pas masterkey db.fbk db.fdb -y log.log Ключ -USE_ использую в связи с тем, что внесение изменений в БД после бэкап/рестора не планируются и хочу максимально компактного размещения БД на диске ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 11:24 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory Kсервер с Windows 7 x64 и Firebird 2.5.3 Какие параметры конфига менял? Gregory KПроцесс сервера Firebird занимает в памяти 3,8 ГБ Чем смотрел и какую именно память? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 12:05 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory Khvlad1. DDL таблицы покажите. Боюсь, что в структуре этой самой большой таблицы ничего примечательного. Ну почему же - ничего примечательного. Есть блоб и это наводит на мысли... Если есть возможность отресторить такую таблицу без этого поля, или с нуллами в нём - было бы весьма интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 12:10 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvlad1. DDL таблицы покажите. 2. Попробуйте опцию рестора -one_at_a_time Так если у него одна большая таблица, то разве это повлияет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 12:19 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКакие параметры конфига менял? Конфиг не менял Dimitry SibiryakovЧем смотрел и какую именно память? Простой Task manager Колонка Memory (Private working set) Соответственно кривая Physical Memory Usage History на вкладке Perfomance ведет себя соответственно (т.е. ползет вверх). Также в период использования fb x86 непосредственно своими глазами наблюдал как память у процесса fb достигает предела в 2 гига после чего процесс падал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 12:37 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvladНу почему же - ничего примечательного. Есть блоб и это наводит на мысли... Если есть возможность отресторить такую таблицу без этого поля, или с нуллами в нём - было бы весьма интересно. В блобе данных сравнительно не много. Можно собрать статистику Он используется потому, что длина строки, которая хранится в этом поле ну совсем не поддается никакому прогнозу Для эксперимента могу попробовать бэкапнуть и отресторить без нее Кусок лога рестора наводит на мысль, что это все же из-за одной большой транзакции. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 12:43 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory KВ блобе данных сравнительно не много.Это не важно. Все блобы, созданные в тр-ции, учитываются до её окончания. Для этого в памяти создаётся небольшая структура - BlobIndex. Её размер 24 байта. Посчитаем, сколько памяти займут 170млн таких структур ? А ведь их тоже нужно где-то хранить, и это минимум 8 байт (указатель) на каждую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 12:58 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
NikolayV81hvlad1. DDL таблицы покажите. 2. Попробуйте опцию рестора -one_at_a_time Так если у него одна большая таблица, то разве это повлияет?На общее потребление памяти - не сильно. На момент освобождения памяти - должно быть весьма заметно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 12:59 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvladЭто не важно. Все блобы, созданные в тр-ции, учитываются до её окончания. Для этого в памяти создаётся небольшая структура - BlobIndex. Её размер 24 байта. Посчитаем, сколько памяти займут 170млн таких структур ? А ведь их тоже нужно где-то хранить, и это минимум 8 байт (указатель) на каждую. Хм. Для меня это новость. Спасибо. Покопаю в этом направлении А для других типов в пределах транзакции до ее окончания память не выделяется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 13:04 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 13:42 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
[quot Gregory K]hvlad Код: plaintext 1. Вы бы мил человек на таких объемах не скоромились. Ставьте уже 16к на страничку, не мучайте птичку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 13:54 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
kdvпараметры от балды пишем? http://www.ibase.ru/devinfo/gbak.htm А что не так? Нельзя перезаписывать БД или нельзя использовать полное заполнение страниц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 13:57 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
pastorВы бы мил человек на таких объемах не скоромились. Ставьте уже 16к на страничку, не мучайте птичку. Сарказм? Помнится не очень давно (в рамках другого проекта) у меня были безуспешные попытки указать страницу меньшего размера. При ресторе в любом случае меньше 4096 получить не удавалось несмотря на явное на то указание. Это, видимо, тоже фича. Ну или кривые ручки. Что вернее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 14:03 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory K,меньше с больше путаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 14:06 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
GallemarGregory K,меньше с больше путаешь Я просто указал, что не смог изменить страницу в меньшую сторону. И спасибо за совет. Обязательно попробую увеличить страницу. Однако полагаю, что к описанной выше проблеме это не имеет отношение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 14:09 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory KА что не так? Нельзя перезаписывать БД или нельзя использовать полное заполнение страниц? У тебя база read-only? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 14:23 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory KОднако полагаю, что к описанной выше проблеме это не имеет отношение не имеет отношения, да, но зато будет быстрее. Gregory KА что не так? Нельзя перезаписывать БД ты бы вместо того, чтобы задавать вопрос, прочитал документ. -c -rep это совершенно идиотское сочетание взаимоисключающих опций. Откуда ты это взял - неизвестно. Пишется либо только -c, либо только -rep (или -r o). И, да, в любом случае опцию -rep никогда не рекомендуется использовать, потому что ты можешь остаться без БД. Бывшую опцию -r не зря в -rep переименовали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 15:18 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory KGallemarGregory K,меньше с больше путаешь Я просто указал, что не смог изменить страницу в меньшую сторону. И спасибо за совет. Обязательно попробую увеличить страницу. Однако полагаю, что к описанной выше проблеме это не имеет отношение будет. если запись больше 4к, или глубина индексов более 4х. опять же, легко проверить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 15:57 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
kdvты бы вместо того, чтобы задавать вопрос, прочитал документ. -c -rep это совершенно идиотское сочетание взаимоисключающих опций. Откуда ты это взял - неизвестно. Пишется либо только -c, либо только -rep (или -r o). И, да, в любом случае опцию -rep никогда не рекомендуется использовать, потому что ты можешь остаться без БД. Бывшую опцию -r не зря в -rep переименовали. Давайте все же на Вы. Если не трудно. Я понимаю, что нас, идиотов тут немеренно, но капелька уважения никогда не повредит. Теперь по существу. Во-первых в руководстве явно указано про неоднозначность сочетания -c -r, а вот про -с -rep я не увидел. Упоминается лишь про то, что -rep пришло на смену -r. Я считал, что -c я восстановлю базу, а -rep - это ответ на вопрос что делать, если база уже существует. Во-вторых если это сочетание недопустимо (а оно, судя по всему, допустимо, но режет глаз), почему бы об этом сразу в консоли не сказать? Ну типа "ты, уважаемый, определись, что ты хочешь - просто восстановить или перезаписать" и что одновременно это указывать нельзя. Раз гбаку понятно, что я хочу и я получаю нужный мне результат, то по-моему все в порядке. В-третьих непонятно с чего вы решили, что я ресторю в боевую базу? Я намерено не стал грузить окружающих полной логикой работы всей системы. На самом деле, если интересно, оперативная запись данных идет в текущую месячную базу. Но поскольку индексов в ней нет, я по ночам делаю бэкап и последующий рестор в другую базу, назовем ее operate.gdb. Она всегда так называется и поэтому ее надо всегда перезаписывать без вопросов. По ней же и строю индексы и утром получаю состояние на вчерашний день со всеми индексами и прочими плюхами. Ну и спасибо за советы. Послезавтра буду пробовать. Отпишусь. ЗЫ. -c обязуюсь убрать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 16:26 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory KА для других типов в пределах транзакции до ее окончания память не выделяется?Массивы и блобы - близнецы братья (в этом смысле). Для остальных типов данных нет нужды что-то ещё учитывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 17:05 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory K> Во-первых в руководстве явно указано про неоднозначность сочетания -c -r, Gregory K> а вот про -с -rep я не увидел. Упоминается лишь про то, что -rep пришло на смену -r. Неоднозначность та же самая, пришло на смену вместе с ней. Gregory K> Я считал, что -c я восстановлю базу, а -rep - это Gregory K> ответ на вопрос что делать, если база уже существует. Ну или -rep или лучше -r o (так явнее ИМХО). > почему бы об этом сразу в консоли не сказать? Если ты о справке, то IIRC в 2.5 (или 2.1 не помню) это поправили. Если же ты про результат работы утилиты - он ошибку выдаёт только если она возникает, а не что-то ему не нравится :) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 17:13 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory KВ-третьих непонятно с чего вы решили, что я ресторю в боевую базу? Я намерено не стал грузить окружающих полной логикой работы всей системы. На самом деле, если интересно, оперативная запись данных идет в текущую месячную базу. Но поскольку индексов в ней нет, я по ночам делаю бэкап и последующий рестор в другую базу, назовем ее operate.gdb. Она всегда так называется и поэтому ее надо всегда перезаписывать без вопросов... на мой взгляд если не жалко места на диске, лучше восстанавливать в opearte.new.gdb и в случае удачи переименовывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 17:41 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovУ тебя база read-only? База не read-only, хотя и планировалось Система ещё строится и могут быть изменения структуры и логики хранимых процедур. Но данные в ней не меняются после завершения месячного накопления ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 17:42 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvladМассивы и блобы - близнецы братья (в этом смысле). Для остальных типов данных нет нужды что-то ещё учитывать. К сожалению предположение с блобами смогу проверить только послезавтра. Но ручки чешутся) С другой стороны, бэкап тоже в рамках транзакции делается, но с ним такой проблемы нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 17:48 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory KС другой стороны, бэкап тоже в рамках транзакции делается, но с ним такой проблемы нетБекап не создаёт блобы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 17:55 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory Kоперативная запись данных идет в текущую месячную базу. Но поскольку индексов в ней нет, я по ночам делаю бэкап и последующий рестор в другую базу, назовем ее operate.gdb. Она всегда так называется и поэтому ее надо всегда перезаписывать без вопросов. По ней же и строю индексы и утром получаю состояние на вчерашний день со всеми индексами и прочими плюхами. Ужоснах. Более неуклюжую попытку завести аналитическую базу трудно представить. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 17:59 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov> Ужоснах. Более неуклюжую попытку Dimitry Sibiryakov> завести аналитическую базу трудно представить. Да ладно, я тупо ресторил свежую/вчерашнюю БД, не заморачиваясь над репликаторами и пр. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 18:08 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory KВ-третьих непонятно с чего вы решили, что я ресторю в боевую базу? да хоть в какую. -rep это как плохая привычка - обязательно вылезет в самый неподходящий момент, просто потому что ВЫ привыкли так делать. Как следствие - холодный пот на лбу, ужас в глазах, и так далее. Gregory KВо-вторых если это сочетание недопустимо надо читать документацию и статьи, а не лепить в командной строке что попало. допустимость указания обоих опций не извиняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 18:27 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
kdv, а по существу проблемы есть идеи? Или останавливаемся на блобах как на источнике проблем? Хорошо, когда есть достаточно оперативы, но вдруг завтра надо будет миллиард записей восстановить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 18:45 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory KХорошо, когда есть достаточно оперативы, но вдруг завтра надо будет миллиард записей восстановить Прикупишь ещё оперативы. Она дешевле чем DBA и разработчик БД вместе взятые. БД перестаёт быть маленькой, когда backup-restore с помощью gbak перестаёт укладываться в технологическое окно. После этого следует переход на использование nbackup. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 18:51 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovУжоснах. Более неуклюжую попытку завести аналитическую базу трудно представить. Ну что есть, то есть. Делает что нужно, денег не просит. Буду пилить, может быть что-то путное родится. Готов выслушать про менее неуклюжий вариант С трудом представляю откуда вы знаете исходную задачу и преследуемую цель И вообще это офтоп вроде как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 18:54 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory Kа по существу проблемы есть идеи? по существу уже все сказал hvlad. до кучи Gregory KBLOB SUB_TYPE 1 SEGMENT SIZE 16 , http://www.ibase.ru/ibfaq.htm#bss ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 18:56 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory Kkdv, а по существу проблемы есть идеи? Или останавливаемся на блобах как на источнике проблем? Хорошо, когда есть достаточно оперативы, но вдруг завтра надо будет миллиард записей восстановить есть выход, delete * и что-нить по типу ibpump ( помнится раньше такой был ) ;) ИМХО можно заняться патчем, добавляющим функционал gbak ( ещё один ключ ), что-то вроде количества строк в таблице, после которого идёт commit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 19:08 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
NikolayV81> ИМХО можно заняться патчем, добавляющим функционал gbak ( ещё один ключ ), NikolayV81> что-то вроде количества строк в таблице, после которого идёт commit +1 Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 19:31 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Еще раз всем спасибо за участие. По результатам отпишусь. С наступающим рождеством. Пошел смотреть великого уравнителя) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 19:37 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Изменил тип поля с varchar на varchar и fb при ресторе память жрать перестал. Проблема решена. В общем блобы при криворуком использовании - это зло. Еще раз всем спасибо. В особенности hvlad-у ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 12:40 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Gregory K> Изменил тип поля с varchar на varchar C БЛОБ на варчар Вы хотели сказать? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 14:58 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам C БЛОБ на варчар Вы хотели сказать? Да, конечно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 18:13 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
с версии 2.1 или 2.5 минимальный размер страницы - 4к. сам недавно напоролся на это, кхм, нехорошее ограничение, долго не мог понять, почему не работает указание в 1к при ресторе hvladБекап не создаёт блобы.не нужно недооценивать пользователей 14893468 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 18:14 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
fd00ch, а нафига тебе нужно меньше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 18:59 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, чтобы хранить кучу мелких блобов без большого оверхеда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 19:26 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
fd00chкхм, нехорошее ограничение очень хорошее ограничение. Потому что даже на базе в 100мб страница 4к уже много лет работает быстрее, чем 1 и 2 к. Это факт для подавляющего большинства баз данных. p.s. с ФБ 2.0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 21:49 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
kdv, вот только мне нужен минимальный размер БД, а не максимальное быстродействие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 21:52 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
fd00chСимонов Денис, чтобы хранить кучу мелких блобов без большого оверхедаМелких - это каких ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 22:47 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvlad, 10-15 КБ 16570142 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 22:52 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
fd00chhvlad, 10-15 КБ 16570142 Тогда тебе нужна страница в 16КБ. OFF: если там действительно fd00chhtml-разметка то одинакова, но текст в этой разметке разной длины ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 23:16 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvlad, по мне, средний оверхед в 0.5к на блоб (при странице в 1к) будет меньше, чем средний в 2-3к при странице 16к и хранении блоба внутри строки. про различные варианты оптимизаций понимаю, но смысла их делать пока не вижу, т.к. сжатие этого архива - задача последней степени важности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 23:50 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
fd00chсредний оверхед в 0.5к на блоб (при странице в 1к) будет меньше, чем средний в 2-3к при странице 16кГде ты вообще нашёл оверхед при странице бОльшей чем блоб ? fd00chхранении блоба внутри строкиВ где ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 23:57 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvladВ где ?попутал я способы хранения блобов, думал, что блоб может храниться в строке с данными hvladГде ты вообще нашёл оверхед при странице бОльшей чем блоб ?на остатках страниц. под блоб 17к сколько уйдет страниц по 16к? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 01:53 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
fd00chhvladГде ты вообще нашёл оверхед при странице бОльшей чем блоб ?на остатках страниц. под блоб 17к сколько уйдет страниц по 16к?Мы же говорим о случае, когда страница больше, чем блоб. И я специально об этом уточнил и получил подтверждение. Ы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 01:58 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
hvlad, там все равно гуляет размер, может и превысить 16к на некоторых блобах. На 10к блобе потери у страницы 16к тоже будут выше, чем со страницей 1к. Ну да ладно, все равно страницы в 1к нет, чтобы проверить :-) Вопрос такой возник: а сервер затирает страницы (при выделении / при обновлении / при удалении) нулями или оставляет в них мусор во всех 3 случаях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 02:04 |
|
||
|
Использование памяти при восстановлении больших таблиц gbak
|
|||
|---|---|---|---|
|
#18+
fd00chтам все равно гуляет размер, может и превысить 16к на некоторых блобах.Потери на некоторых блобах не интересны, если кол-во этих некоторых мало, по сравнению с заявленными 100 мин. fd00chНа 10к блобе потери у страницы 16к тоже будут вышеТы так и не понял, как выделяется место под блобы. И почему я выделяю случай когда блоб меньше страницы. fd00chНу да ладно, все равно страницы в 1к нет, чтобы проверить :-)FB 1.5 - вперёд. fd00chВопрос такой возник: а сервер затирает страницы (при выделении / при обновлении / при удалении) нулями или оставляет в них мусор во всех 3 случаях?Новые вопросы лучше задавать в новых темах, дабы не засорять. Затирается нулями : а) при росте файла БД - вновь выделенное место б) при "логическом" выделении страницы - она заполняется нулями, потом формируется её заголовок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 10:10 |
|
||
|
|

start [/forum/topic.php?all=1&fid=40&tid=1563101]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
220ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 554ms |

| 0 / 0 |
