Ограничения в 4 ГБ для этих встроенных / экспресс-БД достаточно хороши?что будет дальше, если будет достигнуто ограничение? - PullRequest
1 голос
/ 03 мая 2010

Мне интересно, как долго (теоретически) настольное приложение может использовать все 4 ГБ ограничения этих продуктов для экспресс / встраиваемых баз данных (SQL-Server Express, Oracle Express, SQLite3 и т. Д.) При условии, что большие двоичные объекты будут храниться файловая система.

Кроме того, какова будет ваша стратегия, когда она достигнет 4 ГБ?

  • Архив старых БД
  • Скопировать данные за 1-3 месяца в новую БД (рассмотрите это как стратегию кэширования?)
  • Начните использовать новую БД с этого момента (как вы получаете доступ к старым данным?)

Я понимаю, что ответ может варьироваться в зависимости от того, сколько данных вы сохранили в таблице / столбце. Но, пожалуйста, опишите, основываясь на вашем опыте (что за настольное приложение, пишите / читайте тяжело, сколько времени оно длится, по вашему мнению).

Ответы [ 4 ]

2 голосов
/ 03 мая 2010

Нет никакого способа ответить на этот вопрос, кроме как посоветовать обновить «реальную» базу данных. При этом, если однопользовательская база данных достигает 4 ГБ без больших blob с, то вы делаете что-то необычное.


Редактировать

Одна вещь, которую многие люди игнорируют, это ограничение ОЗУ и ЦП в редакции Express для SQL Server. В то время как в 2008 году и более ранних версиях ограничения размера базы данных составляли 4 ГБ (10 ГБ для 2008 R2, как указано в комментариях к этому вопросу), на вас гораздо больше шансов негативно повлиять ограничение 1 ГБ ОЗУ и одного ЦП, особенно с большими наборами данных.


Архивирование (почти) никогда не бывает простым решением, поскольку обычно оно включает либо разрыв существующих связей, либо дублирование данных. Например, предположим, у меня есть база данных Customer с и Order с.

                Order
Customer        ----------
---------       OrderID
CustomerID <--- CustomerID
...             ...

Естественным выбором здесь является создание чужой буквы между двумя столбцами CustomerID, что делает ее необнуляемой в таблице Order. Но что происходит, когда я хочу заархивировать заказы? Либо мне нужно разорвать связь в архивной базе данных (позволяя ей ссылаться на CustomerID, которой нет в архивной базе данных), либо я должен дублировать данные (заархивировать связанную запись Customer, сохраняя при этом это вокруг в живой базе данных). Ни один из этих вариантов не является особенно желательным с точки зрения технического обслуживания.

2 голосов
/ 03 мая 2010

Моя стратегия «что произойдет, когда он достигнет 4 ГБ», обычно заключалась в «установке полноценной базы данных».

4 ГБ - очень много текста; считать его почти бесконечным для приложения для одного разработчика.

Предполагая наличие больших двоичных объектов в файловой системе, ограничивайте изображения пользователей до 100 КБ на изображение, одно изображение профиля на пользователя и не более четверти вашей базы данных этими изображениями; 1 Гб. Это все еще десять тысяч пользователей.

4ГБ - это обычно лот , если вы не делаете что-то необычное.

0 голосов
/ 05 мая 2010

Если лимит достигнут, используйте СУБД, которая не имеет этого ограничения. Кроме того, всегда помните, что не существует такой вещи, как свободное программное обеспечение.

0 голосов
/ 04 мая 2010

«что будет дальше, если будет достигнуто ограничение?»

это число: 18446744073709551615. А если вы его не получили, это 16 эксабайт (минус один).

...