Мы собираемся развернуть двойное веб / внутреннее транзакционное приложение, где каждый клиент имеет свою собственную базу данных. Каждая база данных очень мала - менее 50 МБ каждая, поэтому нам было интересно, имеет ли смысл использовать SQL Express 2008 вместо полноценного SQL Server.
Похоже, что в этом есть преимущества распределения дискового ввода-вывода по серверам при сохранении огромных $$$ (поскольку небольшие диски по 15 КБ и используемые двухъядерные серверы стоят недорого). Если в какой-то момент нам понадобится слишком много серверов, мы можем перейти на SQL Server ... но с десятками внутренних пользователей это просто кажется слишком дорогим сейчас (особенно потому, что нам нужен блок аварийного переключения).
1 ГБ памяти и использование 4 ядер на одном процессоре не звучат слишком жестко, учитывая размеры наших небольших баз данных. У нас никогда не будет более ~ 200 одновременно работающих пользователей, и большинство операций будут более транзакционными (что, похоже, предпочтительнее для большого количества высокоскоростных дисков, чем для большой оперативной памяти / процессора, верно?)
Я упускаю какие-либо преимущества SQL Server Standard, которые изначально могли бы оправдать дополнительные вложения в 5–20 тысяч долларов?
Несколько производственных проблем и обходных путей, которые у меня были с выпуском Express:
Запланированные резервные копии
SSIS
Можно ли запускать пакеты служб SSIS с SQL Server 2008 Express / Web или SSIS рабочей группы
с Sql Server 2005 express
Профилирование
источник
Если вы читаете лицензию SQL Server, вам не нужно покупать дополнительную лицензию для пассивного сервера, если он используется исключительно для восстановления после отказа и не обслуживает запросы до тех пор, пока не произойдет сбой вашего первого сервера.
Мы использовали SQL Server Express довольно долго, и он хорош и намного лучше, чем предыдущий MSDE, у нас более 200 одновременных соединений, но у нас есть только одна база данных размером 2 ГБ, и все гладко. У нас никогда не было проблем при условии, что мы избегаем дорогих объединений и делаем хорошую индексацию. Сейчас мы используем стандарт SQL, но пока размер вашей базы данных не превышает 4 ГБ, а количество пользователей не превышает 200-500, вы, безусловно, можете жить с SQL Express.
SQL Server Express использует чуть меньше памяти - ~ 200 МБ, тогда как в стандартной версии - ~ 1,5 ГБ, возможно, потому что стандартная версия будет выполнять много операций кэширования. Ваши запросы будут медленнее в Express в течение нескольких миллисекунд по сравнению со стандартной версией. К сожалению, Express Edition не использует многоядерный процессор (это ограниченная функция), поэтому он не очень поможет, если у вас есть 2 или 4 ядра.
источник
LuckyLindy - я бы посоветовал вам остановиться на секунду и убедиться, что вам не нужен агент SQL. Вы написали:
Какой у вас план по резервному копированию? Вам не нужно использовать агент SQL, но он, несомненно, облегчает жизнь администратора БД. Вы можете написать сценарии T-SQL / SMO / PowerShell / любой другой, которые выполняют резервное копирование, а затем выполняются через sqlcmd или PowerShell с помощью запланированной задачи.
Каков ваш план обслуживания базы данных? Со временем эти базы данных необходимо будет дефрагментировать и проверить на согласованность. В Standard Edition есть все возможности, чтобы упростить эту задачу, тогда как в Express вам придется работать (опять же со сценариями и запланированными задачами).
Как вы будете уведомлены о проблемах на сервере? Агент помогает здесь с оповещениями, чтобы уведомить вас о заполнении журнала, заполнении диска и т. Д.
Это критически важные задачи типа SQL Server DBA. Одно дело запустить Express для внутреннего приложения, но как только вы начинаете говорить нам, что вы размещаете их для клиентов, я начинаю волноваться :)
Вторая часть этого вопроса спрашивает вас, сколько клиентов вы планируете поддержать в этом - как при запуске, так и через год? Если вы скажете «100 клиентов», то в Express не хватит 100 баз данных по 50 МБ - вам просто не хватит памяти. Черт возьми - в зависимости от того, сколько у вас дельты, вы можете увеличить до 15 БД, я не знаю.
Транзакционные операции, такие как INSERT, по-прежнему записываются в память, поэтому не ожидайте, что вам потребуется меньше поддержки памяти. Фактически, в зависимости от того, сколько INSERT вы делаете, вам может потребоваться больше памяти, чем большинству с таким количеством пользователей. Если вы загружаете много данных, которые люди на самом деле не используют, они все равно занимают память. Вы можете столкнуться с конфликтными проблемами между «данными, которые пользователи часто запрашивают» и «данными, которые пользователи загружают, которые никто не будет запрашивать некоторое время». SQL защищает нас, сохраняя данные, которые люди чаще запрашивают в памяти, но у вас все равно будет конфликт.
На данный момент, я бессвязный LOL. И 200 одновременно работающих пользователей не согласны со мной и для Express. Допустим, 64 КБ - это среднее требование к памяти подключений. Сколько подключений будут устанавливать ваши приложения? Будете ли вы использовать пул соединений?
В общем, мое внутреннее чувство после прочтения вашего описания говорит: «Нет - Express Edition просто недостаточно мощен». И я ненавижу издание Workgroup Edition - думаю, что это плохая сделка - поэтому Standard кажется мне правильным.
источник
Рассматривали ли вы использование одной из бесплатных СУБД (MySQL, PostreSQL ...)? Это облегчит ваши проблемы с лицензированием?
Если это не вариант, SQL Server Express кажется хорошим решением.
источник
Это, безусловно, может быть использовано для значительных производственных приложений. Мы использовали его в более чем 1500 медицинских учреждениях, в каждом из которых были установлены отдельные экземпляры SQL Server Express для обработки миллионов транзакций каждый день. Вы можете легко обойти недостаток Агента SQL Server, используя одно из следующего:
Посмотрите отличную презентацию Майкла Оти (google it) на тему «Использование SQL Server Express в производстве».
источник