Hallo zusammen,
ich möchte bei Euch etwas spezifisches fragen.
Der Ausgangspunkt:
Eine Java-Anwendung sendet eine SQL-Abfrage an Datenbank und kann abhängig von WHERE-Bedingungen die Ergebnissmenge über 600000 Datensätze liefern. Jeder Datensatz besteht dann aus ca. 30 Felder.
Die Ergebnissmenge ist sehr groß und für den Benutzer (in unserem Fall) nicht notwendig.
Die Idee:
Meine Idee ist: Mit der auszuführenden Abfrage als Pre-Statement ein Statement bzw. einen Procedure/Function-Aufruf, welches/welcher die maximal zu ermittelnde Ergebnissmenge einschränkt. Bei der Überschreitung des Limits wäre die Auslösung der Exception wünschenswert (sie würde dann programmtechnisch abgefangen).
SQL-Beispiel (Pseudocode):
SET RESULT_LIMIT_FOR_SQL_DB_RESULT 100000;
SELECT * FROM TABLE_WITH_1000000_DATAROWS WHERE ID IN (1...500000);
Die Frage:
Kennt jemand so ein Kommando bzw. Storage Procedure von MS SQL Server?
Ich will diese Beschränkung und deren Auswertung SQL-serverseitig haben. Ich möchte nicht die 600000 Datensätze über die Leitung transportieren, um dann festzustellen, dass es eben zu viel ist und den Benutzer darüber zu benachrichtigen.
Der Einsatz von TOP 100000 ist hier nicht zieleführend: Es wird immer abgeschnitten und Benutzer wird sich wundern, warum er sein gesuchtes Elemen nicht findet bzw. einige Benutzer dürfen entsprechend der Berechntigung die Suchen uneingeschränkt ausführen.
Wenn jemand etwas Änliches gesehen/gelesen/implementiert hat, bitte ich um Unterstützung.
Danke im Voraus.
Valerij
ich möchte bei Euch etwas spezifisches fragen.
Der Ausgangspunkt:
Eine Java-Anwendung sendet eine SQL-Abfrage an Datenbank und kann abhängig von WHERE-Bedingungen die Ergebnissmenge über 600000 Datensätze liefern. Jeder Datensatz besteht dann aus ca. 30 Felder.
Die Ergebnissmenge ist sehr groß und für den Benutzer (in unserem Fall) nicht notwendig.
Die Idee:
Meine Idee ist: Mit der auszuführenden Abfrage als Pre-Statement ein Statement bzw. einen Procedure/Function-Aufruf, welches/welcher die maximal zu ermittelnde Ergebnissmenge einschränkt. Bei der Überschreitung des Limits wäre die Auslösung der Exception wünschenswert (sie würde dann programmtechnisch abgefangen).
SQL-Beispiel (Pseudocode):
SET RESULT_LIMIT_FOR_SQL_DB_RESULT 100000;
SELECT * FROM TABLE_WITH_1000000_DATAROWS WHERE ID IN (1...500000);
Die Frage:
Kennt jemand so ein Kommando bzw. Storage Procedure von MS SQL Server?
Ich will diese Beschränkung und deren Auswertung SQL-serverseitig haben. Ich möchte nicht die 600000 Datensätze über die Leitung transportieren, um dann festzustellen, dass es eben zu viel ist und den Benutzer darüber zu benachrichtigen.
Der Einsatz von TOP 100000 ist hier nicht zieleführend: Es wird immer abgeschnitten und Benutzer wird sich wundern, warum er sein gesuchtes Elemen nicht findet bzw. einige Benutzer dürfen entsprechend der Berechntigung die Suchen uneingeschränkt ausführen.
Wenn jemand etwas Änliches gesehen/gelesen/implementiert hat, bitte ich um Unterstützung.
Danke im Voraus.
Valerij