Table of Contents

MaxIDsInWhereClause

Informationen

  • Kategorien: Kernel | DBMS-Unterstützung
  • Version: 12.1.0.1460
  • Veröffentlichungsdatum: Dienstag, 17. November 2009
  • Entwickler: Götzen
  • Benötigt Datenbankänderung: Nein
  • Betreff: Eintrag "MaxIDsInWhereClause" in DB.ini

Beschreibung

Ein neuer Eintrag in der db.ini

[DBMS ] MaxIDsInWhereClause=

ermöglicht es für das jeweilige Datenbankmanagementsystem einzustellen, wie viele Objekte maximal in einem IN() Statement von der Datenbank abgerfragt werden dürfen. Wenn nichts angegeben ist, wird standardmässig die 10000 verwendet.

Diese Einstellung war notwendig, da wir bei der Ermittlung der Aggregationen in den Fusszeilen der Tabelle, die Datenbank genau mit dieser IN ( ) Bedingung in der Where Clausel abfragen.

Beispiel für solch eine Anbrage:

Select Sum([Preis]) where ID IN ('ID1','ID2','ID3') OR ID IN ('ID4','ID5','ID6') OR ID IN ('ID7','ID8','ID9');

In diesem Fall würden genau 9 ID's abgefragt.

Bei zu vielen ID's in dieser Abfrage, kann es passieren, dass das DBMS aussteigt.

Schränkt man aber die Anzahl ein, dann werden Aggreationen nur noch bis zu dieser Höchstmenge an Datensätzen ermittelt. Bei Datensatzmengen die darüber hinausgehen, werden '???' angezeigt.