Um ehrlich zu sein, werden Sie nicht nur kaum Leistungseinbußen durch Fremdschlüsseleinschränkungen in der Datenbank feststellen, sondern auch Leistungsverbesserungen feststellen. Das SQL Server-Abfrageoptimierungsprogramm basiert auf dem Konzept von Primär- und Fremdschlüsseln sowie anderen Arten von Dateneinschränkungen. Wenn diese vorhanden und erzwungen sind, kann das Optimierungsprogramm sie nutzen, um eine bessere Leistung zu erzielen. Hier ist ein Blog-Beitrag mit einem einfachen Beispiel , das es in Aktion zeigt.
Wenn Sie sich in einem Randfall befinden, in dem tatsächlich mehr Einfügungen als Lesevorgänge vorliegen (und Aktualisierungen und Löschvorgänge Lesevorgänge erfordern, sodass sie normalerweise zur Lesezahl hinzugefügt werden), ist es möglicherweise sinnvoll, Einschränkungen für die Leistung aus den Daten zu entfernen . Da die überwiegende Mehrheit der Datenbanken jedoch lesebezogen ist, wird die Leistung nicht verbessert, sondern geopfert.
In keinem Fall wird erwähnt, dass die Datenintegrität in der Datenbank besser gehandhabt wird, da Sie sie nur einmal erstellen müssen, wenn Sie die gesamte Arbeit im Code erledigen, und dies möglicherweise mehrmals für mehrere Apps tun müssen (es sei denn, Sie entwerfen Ihre Datenzugriffsebene sorgfältig und erfordern, dass jede App auf die Datenbank zugreift, um dieselbe Ebene zu durchlaufen).
Wenn Sie ein relationales Datenbanksystem verwenden, sage ich, warum sollten Sie es nicht wirklich verwenden? Wenn Sie keine relationalen Daten benötigen, entscheiden Sie sich für Hadoop oder etwas anderes.