Я не прихильник збережених процедур
Збережені процедури БІЛЬШЕ ремонтопридатні, оскільки: * Вам не доведеться перекомпілювати додаток C #, коли ви хочете змінити SQL
Ви все-таки перекомпілюєте його все одно, коли змінитимуться типи даних, або ви хочете повернути додатковий стовпець чи що завгодно. Кількість разів, коли ви можете «прозоро» змінити SQL під вашим додатком, загалом невелика
- Ви в кінцевому підсумку повторно використовуєте SQL-код.
Мови програмування, включені на C #, мають цю дивовижну річ, яку називають функцією. Це означає, що ви можете викликати один і той же блок коду з кількох місць! Дивовижний! Потім ви можете помістити повторно використовуваний код SQL всередині одного з них, або якщо ви хочете отримати справді високі технології, ви можете використовувати бібліотеку, яка робить це за вас. Я вважаю, що їх називають Об'єктними реляційними картами, і вони досить поширені в наші дні.
Повторення коду - це найгірше, що ви можете зробити, коли ви намагаєтеся створити рентабельний додаток!
Домовились, ось чому зберігаютьсяпрограми - це погана річ. Набагато простіше перефактурувати та розкласти (розбити на менші частини) код на функції, ніж SQL на ... блоки SQL?
У вас є 4 веб-сервери та купа програм для Windows, які використовують один і той же код SQL. Тепер ви зрозуміли, що з кодом SQl є невелика проблема, тому ви краще ...... поміняйте програму на 1 місце або надішліть код усім веб-сервери, перевстановіть усі програми для настільних ПК (клік може допомогти) на всіх вікнах Windows
Чому ваші програми Windows підключаються безпосередньо до центральної бази даних? Це здається ВЕЛИЧЕЗЬОМУ безпековій дірі саме там і вузьким місцем, оскільки це виключає кешування на стороні сервера. Чи не повинні вони підключатися через веб-сервіс чи подібні до ваших веб-серверів?
Отже, натисніть 1 новий проросток або 4 нових веб-серверів?
У цьому випадку це простіше натиснути одну нову sproc, але з мого досвіду, 95% від «підштовхнули змін» впливають на код , а не бази даних. Якщо в цьому місяці ви підштовхуєте 20 речей до веб-серверів, а 1 - до бази даних, ви навряд чи втратите багато, якщо замість цього наштовхнути на речей 21 сервер, а нуль - на базу даних.
Легше переглядати код.
Чи можете ви пояснити, як? Я цього не розумію. Особливо ми бачимо, що проростки, ймовірно, не знаходяться в контролі джерел, і тому не можна отримати доступ через веб-браузери SCM тощо.
Більше мінусів:
Зберігаютьсяпрограми живуть у базі даних, яка зовнішній світ видається чорною скринькою. Прості речі, такі як бажання перевести їх у контроль джерел, стають кошмаром.
Існує також проблема зусиль. Можливо, буде сенс розбити все на мільйон ярусів, якщо ви намагаєтесь виправдати свого генерального директора, чому це просто коштувало їм 7 мільйонів доларів, щоб створити деякі форуми, але в іншому випадку створення збереженогопрограму для кожної дрібниці - це лише додаткова ослінка для ні вигода.