Wir unterstützen eine große Anzahl von Entwicklern und Analysten, die entweder nicht viel wissen oder sich überhaupt nicht um die Abfrageleistung kümmern. Wir haben jeden Tag Hunderte von schlecht konzipierten Abfragen (auch aufgrund einer schlecht gestalteten Datenbankarchitektur), die jeweils Dutzende Gigabyte RAM von unseren Servern entfernen und Ausführungspläne im Bereich von Megabyte im SQL-Cache speichern.
Wir möchten bestimmte Benutzer daran hindern, SORTs und HASH MATCHes zu verwenden, insbesondere ORDER BY, SELECT DISTINCT und JOINs jeglicher Art. Wir möchten, dass Benutzer ihre Daten abrufen, aber nur auf ihrer Seite daran arbeiten.
Könnte dies in SQL Server erreicht werden? Gibt es eine DB-Engine, die das unterstützt? Was würden Sie darüber denken?
Ich weiß, dass dies das Prinzip einer relationalen Datenbank übertreffen würde, aber wir suchen nach einer Möglichkeit, um sicherzustellen, dass die Engine ordnungsgemäß verwendet und nicht von ungebildeten Benutzern missbraucht wird.
Wir erwägen bereits die Implementierung von Resource Governor, um eine bestimmte Menge an Maschinenressourcen für diese fehlerhaften Abfragen zuzuweisen.