Nie jestem fanem procedur przechowywanych
Procedury przechowywane są WIĘCEJ konserwowalne, ponieważ: * Nie musisz rekompilować aplikacji C # za każdym razem, gdy chcesz zmienić niektóre SQL
Skończysz na ponownej kompilacji, gdy zmieniają się typy danych, chcesz zwrócić dodatkową kolumnę lub cokolwiek innego. Liczba przypadków, w których można „transparentnie” zmienić kod SQL spod aplikacji, jest ogólnie niewielka
- W końcu ponownie używasz kodu SQL.
Języki programowania, w tym C #, mają tę niesamowitą rzecz, zwaną funkcją. Oznacza to, że możesz wywoływać ten sam blok kodu z wielu miejsc! Niesamowity! Następnie możesz umieścić kod SQL wielokrotnego użytku w jednym z nich, a jeśli chcesz naprawdę zaawansowaną technologię, możesz skorzystać z biblioteki, która to zrobi za Ciebie. Sądzę, że nazywają się Object Relational Mappers i są obecnie dość powszechne.
Powtarzanie kodu jest najgorszą rzeczą, jaką możesz zrobić, gdy próbujesz zbudować łatwą do utrzymania aplikację!
Uzgodnione, dlatego przechowywane procesy są złą rzeczą. O wiele łatwiej jest refaktoryzować i rozkładać (rozkładać na mniejsze części) kod na funkcje niż SQL na ... bloki SQL?
Masz 4 serwery WWW i kilka aplikacji Windows, które używają tego samego kodu SQL. Teraz zdałeś sobie sprawę, że jest mały problem z kodem SQl, więc raczej ...... zmień proc w 1 miejscu lub przekaż kod wszystkim na serwerach WWW, zainstaluj ponownie wszystkie aplikacje komputerowe (clickonce może pomóc) we wszystkich oknach systemu Windows
Dlaczego aplikacje systemu Windows łączą się bezpośrednio z centralną bazą danych? To wydaje się być OGROMNĄ dziurą w zabezpieczeniach i wąskim gardłem, ponieważ wyklucza buforowanie po stronie serwera. Czy nie powinny łączyć się za pośrednictwem usługi internetowej lub podobnej do twoich serwerów sieciowych?
Wciśnij 1 nowy sproc lub 4 nowe serwery?
W tym przypadku jest to łatwiejsze do pchania jeden nowy sproc, ale z mojego doświadczenia, 95% "zmian barki wpływać na kod, a nie bazy danych. Jeśli przesyłasz 20 rzeczy do serwerów w tym miesiącu, a 1 do bazy danych, prawie nie tracisz dużo, jeśli zamiast tego wypychasz 21 rzeczy do serwerów, a zero do bazy danych.
Łatwiej przeglądany kod.
Czy możesz wyjaśnić jak? Nie rozumiem tego Zwłaszcza, że sproki prawdopodobnie nie mają kontroli źródła i dlatego nie można uzyskać do nich dostępu za pośrednictwem przeglądarek SCM opartych na sieci i tak dalej.
Więcej wad:
Storedprocs żyją w bazie danych, która wydaje się światu zewnętrznemu jako czarna skrzynka. Proste rzeczy, takie jak kontrola nad źródłami, stają się koszmarem.
Jest też kwestia zwykłego wysiłku. Rozsyłanie wszystkiego na milion poziomów może mieć sens, jeśli próbujesz uzasadnić swojemu dyrektorowi generalnemu, dlaczego zbudowanie forów kosztuje ich 7 milionów dolarów, ale w przeciwnym razie utworzenie przechowywanego programu dla każdej drobnej rzeczy jest dodatkowym działaniem zasiłek.