SQL Server Express для виробничих баз даних?


14

Ми збираємося розробити подвійний веб / внутрішній транзакційний додаток, де кожен клієнт має власну базу даних. Кожна база даних дуже мала - менше 50 Мб кожна, тому нам було цікаво, чи є сенс використовувати SQL Express 2008 замість повного SQL Server.

Це, мабуть, має переваги в розповсюдженні дискового вводу-виводу на сервери, заощаджуючи величезні $$$ (оскільки невеликі накопичувачі 15 КК та використовувані двоядерні сервери - це і недорого). Якщо в якийсь момент нам потрібно занадто багато серверів, ми можемо перейти на SQL Server ... але з десятками внутрішніх користувачів це зараз здається занадто дорогим (тим більше, що нам знадобиться вікно відмови).

1 Гб оперативної пам’яті та використання 4 ядер на одному процесорі не звучать занадто обмежено, враховуючи наші невеликі розміри бази даних. Ми ніколи не матимемо більше ніж 200 одночасних користувачів, і більшість операцій будуть більш транзакційними (що, здається, сприяє безлічі високошвидкісних дисків над важкими оперативною пам’яттю / процесором, правда?)

Чи пропускаю я якісь переваги стандарту SQL Server, які могли б виправдати додаткові інвестиції в розмірі $ 5-20K?

Відповіді:


17

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

Поки ваша база даних може відповідати меж випуску Express, ви будете чудово.

SQL-сервер любить багато оперативної пам'яті. Чим більше, тим краще. Оскільки SQL Server не може завантажувати дані в кеш, що додасть додаткове навантаження на диски. Слід переглянути веб-версію або версію Workstation SQL Server. Ці видання мають більш високі межі, ніж експрес-версії, але коштують менше, ніж у стандартній версії.

Якщо ви почнете з видання Express, ви завжди можете оновити пізніше до Стандартної версії після придбання ліцензії.


+1 не може додати нічого іншого до цієї відповіді
Нік Кавадіас

Я не думаю, що робочу групу та ліцензію на веб-видання можна використовувати для зовнішніх бізнес-додатків.
Акаш Кава

1
Ліцензії на процесор доступні для всіх видань (крім Express, на які не потрібна ліцензія на процесор), що означає, що ви можете використовувати їх для загальнодоступних веб-сайтів. Ось посилання на ліцензію на процесор Workgroup bit.ly/KDLDR . Я не міг легко знайти веб-версію, але будь-яка VAR повинна бути в змозі надати її, не озираючись.
mrdenny

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

3
SQL Express - це той самий механізм, що й інші видання, лише з обмеженими розмірами. Перехід від Express до іншого видання - це просто питання від'єднання бази даних від видання Express та приєднання її до іншого екземпляра, на якому працює інша редакція.
мрденний

15

Кілька виробничих проблем та вирішень, які у мене були з виданням Express:

Заплановані резервні копії

SSIS

Профілювання

  • Немає SQL-профілера
  • Вирішення : спробуйте SqlProfiler для Express Edition
  • Caveat: Я не вважаю це завжди корисним для вирішення надзвичайних ситуацій у виробництві, як, наприклад, коли sqlexpress займає 100% потужності процесорного сервера. Я не міг змусити профілера створити будь-який слід в одному такому випадку.
  • Дивіться також: Який профілер використовувати з sql express?

2
  1. Якщо ви читаєте Ліцензію SQL Server, вам не потрібно купувати додаткову ліцензію для пасивного сервера, якщо вона використовується виключно для відмови, і вона не обслуговує запити, поки ваш перший сервер не вийде з ладу.

  2. Ми використовували SQL Server Express досить давно, і це добре і набагато краще, ніж раніше MSDE, у нас більше 200 симультативних підключень, але у нас є лише одна база даних розміром 2 Гб, і все гладко. У нас ніколи не було проблем, якщо ми уникаємо дорогих приєднань і робимо хорошу індексацію. Зараз ми використовуємо SQL Standard, але поки розмір вашої бази даних не перевищує 4 ГБ, а кількість користувачів менше 200-500, ви, звичайно, можете жити з SQL Express.

  3. SQL Server Express використовує трохи менше пам’яті пам’яті ~ 200 Мб, а інше Стандартне видання використовує ~ 1,5 Гб, можливо, тому що стандартне видання буде робити багато кешування. Ваші запити будуть повільнішими в Express протягом кількох мілісекунд порівняно зі стандартним виданням. На жаль, видання Express не використовує багатоядерний процесор (це обмежена функція), тому це не допоможе вам, якщо у вас є 2 ядра або 4 ядра.


Я думав, що SSE 2008 використовував багатоядерні (до 4)?
Звуковий сигнал

@LuckyLindy Standard використовуватиме до 4-х розеток з великою кількістю ядер на розетку.
mrdenny

", але поки розмір вашої бази даних не перевищує 4 Гб", 4 ГБ - обмеження на один примірник. Я не можу згадати, що існує обмеження кількості використаних екземплярів
Геннадій Ванін Геннадій Ванін

2

LuckyLindy - Я б закликав вас зупинитися на секунду і переконатися, що агент SQL вам не потрібен. Ти написав:

Ми збираємося розробити подвійний веб / внутрішній транзакційний додаток, де кожен клієнт має власну базу даних. Кожна база даних дуже мала - менше 50 Мб кожна, тому нам було цікаво, чи є сенс використовувати SQL Express 2008 замість повного SQL Server.

Який у вас план резервного копіювання? Не потрібно використовувати агент SQL, але це впевнено полегшує життя DBA. Ви можете написати T-SQL / SMO / PowerShell / будь-які сценарії, які роблять резервні копії, а потім виконати через sqlcmd або PowerShell, використовуючи заплановану задачу.

Який у вас план обслуговування баз даних? З часом ці бази даних потребують дефрагментації та перевірки на відповідність. Стандартне видання має всілякі смаколики, щоб зробити це легше, тоді як у Express ви повинні працювати (знову ж із сценарієм та запланованими завданнями).

Як вам буде повідомлено про проблеми на сервері? Агент допомагає тут з повідомленнями сповіщати про те, коли журнал заповнюється, диск заповнюється тощо.


Це критичні завдання типу DBA типу SQL Server. Одне з них запустити Експрес для власного додатку, але як тільки ви почнете говорити нам, що ви розміщуєте їх для клієнтів, я хвилююся :)


Частина 2 цього питання задає вам питання, скільки клієнтів ви плануєте підтримувати у цьому питанні - як при запуску, так і після року? Якщо ви скажете «100 клієнтів», то 100 баз даних 50 Мб не вистачить на Express - просто не вистачить пам’яті. Хек - залежно від того, скільки у вас дельти, ви можете максимум на 15 БД, я не знаю.

Ми ніколи не матимемо більше ніж 200 одночасних користувачів, і більшість операцій будуть більш транзакційними (що, здається, сприяє безлічі високошвидкісних дисків над важкими оперативною пам’яттю / процесором, правда?)

Трансакційні операції, такі як INSERT, все ще записуються в пам'ять, тому не сподівайтеся, що вам потрібна менша підтримка пам'яті. Насправді, залежно від того, скільки INSERT ви робите, у вас може бути більша потреба в пам'яті, ніж у більшості з цією кількістю користувачів. Якщо ви завантажуєте безліч даних, якими люди реально не користуються, вони все ще займають пам'ять. Ви можете зіткнутися з суперечками між "даними, які користувачі часто запитують" та "даними, які користувачі завантажують, які ніхто не запитуватиме на деякий час". SQL захищає нас, зберігаючи дані, які люди частіше запитують у пам'яті, але у вас все одно будуть суперечки.

У цей момент я розгулюю лол. І 200 одночасних користувачів не переживають зі мною ні для Express. Скажімо, 64k - це середня потреба в пам'яті підключення, скільки з'єднань зробить ваші програми? Чи будете використовувати об’єднання з'єднань?

Загалом, моє відчуття кишки від читання вашого опису говорить: "Ні - Express Edition просто недостатньо потужний". І я ненавиджу видання Workgroup Edition - думаю, що це погана справа - тому мені здається, що "Стандарт".


2
Скотт - чудова відповідь. На ваш погляд ... SQL Server Express насправді не обмежує розмір пам’яті в базі даних, ви просто не можете мати єдину базу даних, що містить більше 4 ГБ даних. Як тест, я створив 10000 баз даних на 100 МБ (1 ТБ) на одному сервері, і SQL Server Express вийшов чудово. Також пам'ять, пов'язана з кожним з'єднанням, не зараховується до загальної суми 1 ГБ. Я погоджуюсь, що управління всіма цими базами даних може викликати біль ... але, оскільки насправді у нас буде 1000 тисяч баз даних, то, швидше за все, нам знадобляться сценарії (я не можу вручну торкнутися бази даних, якщо вона не стане корумпований).
Звуковий сигнал

+1, я погоджуюсь, що це було відповіді gr8, але я також схвалив це
Геннадій Ванін Геннадій Ванін

1

Чи розглядали ви про використання однієї з безкоштовних СУБД (MySQL, PostreSQL ...)? Це полегшить вашу проблему з ліцензуванням?

Якщо це не варіант, SQL Server Express здається хорошим рішенням.


2
Ми фактично проводили тести на ефективність за всіма основними базами даних минулого року - MySQL, PostgreSQL, Firebird, DB2, Oracle, SQL Server, SQL Server Express та SQL Desktop. Ми виявили, що DB2, Oracle і SQL Server (і Express, але не Desktop) підірвали MySQL і PostgreSQL для Windows для наших транзакційних операцій - в 2 рази. 1/2 продуктивність означає вдвічі більше # серверів. Під час розміщення в Linux, MySQL та PostgreSQL зробили трохи краще, але все одно не нарівні.
Звуковий сигнал

1

Він, безумовно, може бути використаний для значних виробничих застосувань. Ми використовували його у понад 1500 клініках охорони здоров’я, у яких встановлено окремі екземпляри SQL Server Express для обробки мільйонів транзакцій щодня. Ви можете легко подолати недолік агента SQL Server, скориставшись одним із наступних дій:

  1. Сторонні товари, такі як SQLAutomate
  2. Планувальник завдань Windows
  3. Стандартне або корпоративне видання SQL Server із встановленими можливостями головного сервера 1 та 2 дуже низька вартість або безкоштовна. 3 коштує дорого, якщо ви вже не маєте його у своєму оточенні.

Дивіться чудову презентацію Майкла Отія (google it) на тему "Використання SQL Server Express у виробництві".


Насправді це було 7-річне повідомлення :)
BaronSamedi1958,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.