Вопрос о архивных данных и блобах

Модераторы: kdv, CyberMax

Ответить
ARM
Сообщения: 26
Зарегистрирован: 02 дек 2006, 13:27

Вопрос о архивных данных и блобах

Сообщение ARM » 02 дек 2006, 15:43

Доброго дня.

Проектируется классический клиент-сервер: FB 2.0 на Win; ADO.Net provider.
Интересуют 2 вопросы (поиски по инету + ibase.ru ничего вразумительного не дал, хотя может не там искал):
1) предполагается разделение данных на оперативные(текущие,необходимые) и архивных(учтенных,необходимых только по запросу). Так вот, где хранить архивных данные, учитывая необходимость не дать влиять чтение архивных данных на скорость работы с оперативными.
Мои варианты:
1) все в одной таблице - не есть гуд для оперативных данных. отпадает.
2) архивных в отдельной таблице, НО в одной БД
3) архивных в отдельной ВНЕШНЕЙ таблице, на разных винтах
4) архивные в отдельной БД - гемор при необходимости выборки и из опер. и из арх. данных
ВОПРОС: что посоветуете и кто, что использует ?

2) аналогичный вопрос про хранение БЛОБОВ (binary и text). Как известно, изменение блоба порождает его копию в БД (версию), соотв. размер БД может разростаться не кисло, соотв. (хотя могу ошибаться) скорость работы сервера с БД падает. Итак, где же хранить блобы, привязанные логически в записи (например товар и его фото): 1) в одной таблице - как повлияет на скорость выборки; 2) в отдельной табл.; 3) в отд. внешней табл. на другом физ. винте 4) в отдельной БД.

Сразу скажу, что до своих тестов таких ньюансов еще не дошел, если кому-то не трудно поделится опытом, буду благодарен.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Re: Вопрос о архивных данных и блобах

Сообщение WildSery » 04 дек 2006, 11:37

ARM писал(а):где хранить архивных данные, учитывая необходимость не дать влиять чтение архивных данных на скорость работы с оперативными.
Вот тебе ещё вариант. Может, не самый удачный, у меня пока так сделано. Две отдельные базы, одна оперативная, другая архивная. Архивная включает в себя данные оперативной (репликация). Оперативная - для работы и оперативных отчётов (без копания далеко вглубь), архивная - для полных и глубоких отчётов.
В дальнейшем по мере роста архивную можно перевести на другую платформу (или оставить, если в FB OLAP будет).
ARM писал(а):Итак, где же хранить блобы, привязанные логически в записи (например товар и его фото): 1) в одной таблице - как повлияет на скорость выборки; 2) в отдельной табл.; 3) в отд. внешней табл. на другом физ. винте 4) в отдельной БД.
Зависит от того, как именно ты работаешь с блобами.
Хранение в той же таблице в перемешку с данными рекомендуемо только в одном случае - когда при листании грида с записями картинки у тебя выводятся сразу, либо отображаются прямо в гриде.
В любом другом случае - отдельное хранение, получение по дополнительному запросу.
Хранение блобов в той же таблице, если блоб влазит на одну страницу с данными, неоправдано - данные будут разрежены, чтение запросами таких данных замедлится, дисковая активность возрастёт.
Если блоб у тебя заведомо не влазит на страницу с данными, он хранится на отдельных страницах и на скорость выборок не влияет. Кроме того, понятно, что хранение в той же таблице упростит логику базы.
Потому одним из факторов является размер хранимых картинок.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 04 дек 2006, 12:12

когда при листании грида с записями картинки у тебя выводятся сразу, либо отображаются прямо в гриде.
причем это самый поганый по трафику и ресурсам вариант.
хранение блобов в той же таблице, если блоб влазит на одну страницу с данными, неоправдано - данные будут разрежены, чтение запросами таких данных замедлится, дисковая активность возрастёт.
и это можно увидеть в IBAnalyst.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 04 дек 2006, 12:55

Насчёт альтернативы архив в базе/отдельно. Вопрос упирается в размер базы как таковой в смысле времени рестора versus возня с герерогенными запросами, всё остальное по барабану.

ARM
Сообщения: 26
Зарегистрирован: 02 дек 2006, 13:27

Сообщение ARM » 04 дек 2006, 13:52

Merlin писал(а):Насчёт альтернативы архив в базе/отдельно. Вопрос упирается в размер базы как таковой в смысле времени рестора versus возня с герерогенными запросами, всё остальное по барабану.
Поддерживаю мнение Мерлина. Первостепенно для меня скорость работы/рестора оперативных данных/БД, поэтому сделаю разделение данных по разным БД.

Всем спасибо за комменты. Всех благ.

SAV
Сообщения: 54
Зарегистрирован: 19 авг 2006, 17:59

Re: Вопрос о архивных данных и блобах

Сообщение SAV » 05 дек 2006, 14:43

WildSery писал(а): Хранение в той же таблице в перемешку с данными рекомендуемо только в одном случае - когда при листании грида с записями картинки у тебя выводятся сразу, либо отображаются прямо в гриде.
В любом другом случае - отдельное хранение, получение по дополнительному запросу.
Хранение блобов в той же таблице, если блоб влазит на одну страницу с данными, неоправдано - данные будут разрежены, чтение запросами таких данных замедлится, дисковая активность возрастёт.
Если блоб у тебя заведомо не влазит на страницу с данными, он хранится на отдельных страницах и на скорость выборок не влияет. Кроме того, понятно, что хранение в той же таблице упростит логику базы.
Потому одним из факторов является размер хранимых картинок.
Вот я тоже хотел поинтересоваться по поводу хранения блобов в отдельных таблицах, так как ещё до релиза FB2 кто-то упоминал что переделают в FB2 и блобы будут храниться всегда в отдельных страницах... или я что-то попутал? Или ситуация не изменилась?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 05 дек 2006, 18:29

кто-то упоминал что переделают в FB2 и блобы будут храниться всегда в отдельных страницах
нет. хотели сделать опцию, которая управляла бы хранением блобов. но хотей не дал.

SAV
Сообщения: 54
Зарегистрирован: 19 авг 2006, 17:59

Сообщение SAV » 05 дек 2006, 21:39

kdv писал(а):
кто-то упоминал что переделают в FB2 и блобы будут храниться всегда в отдельных страницах
нет. хотели сделать опцию, которая управляла бы хранением блобов. но хотей не дал.
понял, отстал :-), жаль конечно,будем надеяться что в будущем появится

Ответить