Dies ist eine Frage, die auf der Auswahl der Leistung gegenüber den Designpraktiken basiert. Wenn ich eine Methode habe, die viele Male pro Sekunde ausgeführt wird;Gespeicherte Prozedur oder Berechnungen über IQueryable?
public static IQueryable<IPerson> InRadius(this IQueryable<IPerson> query, Coordinate center, double radius)
{
return (from u in query
where CallHeavyMathFormula(u, center, radius)
select u);
}
Diese Erweiterungsmethode für IQueryable erzeugt eine SQL, die einige schwere Mathematik Berechnung bedeutet (Kosinus Sinus usw.). Dies würde bedeuten, dass die Anwendung 1-2 KB SQL an den Server pro Aufruf sendet.
Ich habe von der Platzierung aller Anwendungslogik in Ihrer Anwendung gehört. Ich möchte auch in Zukunft auf eine Datenbank wie azure oder eine dieser skalierbaren Datenbanken wechseln. Wie gehe ich mit so etwas um? Soll ich es so lassen wie es jetzt ist oder gespeicherte Prozeduren schreiben? Wie machen Anwendungen wie Twitter oder Facebook das?