Zunächst danke für die Antworten!
Die Tabelle ist wie folgt aufbeaut:
Es gibt keine Primärschlüsseln (außer die RRN), da es keine Referenzierung auf andere Tabellen benötigt wird, bzw die Datensätze durchaus öfters auftreten können.Code:CREATE TABLE MYFTPLOG (ACTCNT INTEGER NOT NULL WITH DEFAULT, BEZ CHAR (35) NOT NULL WITH DEFAULT, JOBNR INTEGER NOT NULL WITH DEFAULT, SEQNR INTEGER NOT NULL WITH DEFAULT, CMD CHAR (10) NOT NULL WITH DEFAULT, LOG VARCHAR (1024) NOT NULL WITH DEFAULT, DATUM TIMESTAMP NOT NULL WITH DEFAULT)
(ich weis, eine eigene Spalte mit laufenden Zähler und diesen als PK wäre schöner)
Den Test habe ich über den iSeries Navigator ausgeführt (JDBC).
Habe die Abfrage auch schon mit unterschiedlichen Filterungen durchgeführt. Das Ergebnis war immer das Gleiche. Table-Scan war immer schneller.
Das liegt mit ziemlich ganz sicher daran, dass es eben eine nur sehr kleine Tabelle ist.
Bin mir auch sicher, dass bei entsprechenden Datenmengen die Entscheidung der SQE die Richtige wäre.
Was ich interessant finde ist eben die Tatsache, dass für diesen Fall der Table-Scan schneller wäre, sich der Optimizer aber dennoch für einen anderen weg entschieden hat.
Beim ersten ausführen von WHERE NR = 50 hatte er auch einen Table-Scan durchgeführt (der war auch schneller).
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks