Можете ли вы обойти ограничение размера SQL Server Express путем стекирования баз данных? - PullRequest
4 голосов
/ 02 июля 2010

Моя компания работает над проектом разработки с использованием SQL Server 2008 Express. Объем данных, которые мы планируем хранить в нашей основной таблице, быстро превысит ограничение в 4 ГБ для Express. Мы можем купить себе немного времени с SQL Server 2008 R2, но в конечном итоге мы также преодолеем ограничение в 10 ГБ.

Руководитель группы хочет услышать все доступные варианты перед покупкой лицензий для Standard Edition. Нашими специалистами являются SQL Server и Oracle, поэтому использование MySQL или PostgresSQL будет рассматриваться в качестве последнего средства.

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

Например, все данные таблицы за 2008 год будут храниться в DB_2008, данные 2009 года - в DB_2009 и т. Д. Таблица метаданных может выглядеть так:

PKStartDate  PKEndDate   DBName
-----------  ----------  ----------
2008-01-01   2008-12-31  DB_2008
2009-01-01   2009-12-31  DB_2009
2010-01-01   2010-12-31  DB_2010

Эта таблица будет использоваться для определения расположения в базе данных данных для наших хранимых процедур. Большая часть нашего кода уже использует параметризованный динамический SQL, так что это не составит труда реализовать.

Кто-нибудь когда-нибудь делал это раньше?

Существует ли установленная модель для этого типа дизайна или это просто ужасная идея?

Ответы [ 6 ]

13 голосов
/ 02 июля 2010

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

РЕДАКТИРОВАНИЕ: И почему Standard Edition вместо Workgroup?Если Express удовлетворяет вашим требованиям к характеристикам, то и рабочая группа будет работать примерно на $ 3500 дешевле, чем Standard.Тем не менее, любая из них является выгодной сделкой по сравнению с обременением себя, как описано выше - вдвойне, если вы можете лицензировать по лицензии CAL, а не по процессору.: -)

7 голосов
/ 02 июля 2010

Это ужасная идея. IANAL, но вы все еще можете нарушать лицензию SQL Server даже с этой схемой. Они помещают все виды мелкого шрифта о «мультиплексировании» и еще много чего.

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

Не делай этого.

4 голосов
/ 02 июля 2010

Единственный способ сделать что-либо подобное, если бы я гарантировал, что отчеты

  1. не будут пересекать эти границы, и
  2. при запросе данных пользователь будетбыть ограниченным текущим годом.

Реальность такова, что эти ограничения редко работают.Представьте себе, что кто-то хочет получить 12-месячный отчет в марте, начиная с предыдущего марта ... Вы должны будете агрегировать результаты в коде.

В конце дня вы собираетесь потратить МНОГО больше на разработкуВремя, затрачиваемое на выполнение этой работы, превысит стандартную лицензию sql. РЕДАКТИРОВАТЬ : Я забираю последнее предложение назад: это будет стоить дороже, чем лицензия sql enterprise .

3 голосов
/ 03 июля 2010

Свободного программного обеспечения не существует! :) Даже если вы можете обойти ограничение в 10 ГБ, вы все равно будете ограничены потолком в 1 ГБ. С базой данных 10 ГБ, которая, скорее всего, серьезно ухудшит производительность (если рабочая нагрузка на ваш запрос не очень мала).

Обратите внимание, что если у вас есть varbinary данные в вашей базе данных, вы можете сохранить их за пределами 10GB с помощью Filestream.

2 голосов
/ 02 июля 2010

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

1 голос
/ 03 июля 2010

Вы видели веб-версию SQL Server? Если вы подходите к его модели лицензирования, она выполняет все основные функции сервера sql (не выполняет зеркалирование и не может использовать сервер в качестве источника репликации, помимо некоторых других ограничений), но является очень доступной.

...