Jessica arbeitet an einer älteren Windows Forms-Anwendung, die eine veraltete API verwendet. Ihr wurde die Aufgabe übertragen, einen leistungsschwachen Bericht zu untersuchen. Der Code wird als Spaghetti-Code mit vielen Ineffizienzen beschrieben. Jessica entdeckte eine Methode namens GetReportDiscounts, die eine SQL-Abfrage ausführt, aber paradoxerweise eine Zusammenfassung in C# durchführt, die bereits in der SQL enthalten ist. Diese Methode ignoriert auch ihre eigenen Datumsparameter und verwendet eine magische Zahl für die Filterung. Eine weitere Methode, GetReportTotals, ist fast identisch, verwendet jedoch eine andere magische Zahl. Beide dieser Methoden leiten sich von einer früheren Methode, GetCancelledInvoices, ab, die Datumsparameter korrekt verwendet. Allerdings führt auch GetCancelledInvoices die Filterung in C# anstelle der Datenbankabfrage durch. Jessica stellte fest, dass der eigentliche problematische Bericht eine Variante dieser Methoden war, die auf clientseitiger Verarbeitung für die Datenmanipulation beruhte. Durch die Refaktorierung dieses Berichts in eine SQL-Stored-Procedure mit entsprechender Indizierung verbesserte sich die Leistung erheblich. Der Artikel hebt das häufige Problem des Kopierens und Einfügens von Code und der ineffizienten Durchführung von Datenbankoperationen innerhalb der Anwendungsschicht hervor.
GetReportDiscounts, die eine SQL-Abfrage ausführt, aber paradoxerweise eine Zusammenfassung in C# durchführt, die bereits in der SQL enthalten ist. Diese Methode ignoriert auch ihre eigenen Datumsparameter und verwendet eine magische Zahl für die Filterung. Eine weitere Methode,GetReportTotals, ist fast identisch, verwendet jedoch eine andere magische Zahl. Beide dieser Methoden leiten sich von einer früheren Methode,GetCancelledInvoices, ab, die Datumsparameter korrekt verwendet. Allerdings führt auchGetCancelledInvoicesdie Filterung in C# anstelle der Datenbankabfrage durch. Jessica stellte fest, dass der eigentliche problematische Bericht eine Variante dieser Methoden war, die auf clientseitiger Verarbeitung für die Datenmanipulation beruhte. Durch die Refaktorierung dieses Berichts in eine SQL-Stored-Procedure mit entsprechender Indizierung verbesserte sich die Leistung erheblich. Der Artikel hebt das häufige Problem des Kopierens und Einfügens von Code und der ineffizienten Durchführung von Datenbankoperationen innerhalb der Anwendungsschicht hervor.