Bei einer Datentabelle mit mehr als 1 Million Zeilen ist der Datenfilter extrem langsam.
Es dauert einige Sekunden
- eine neue Spalte im Datenfilter aktivieren
- Geben Sie im Filter einen Text ein: ein paar Sekunden pro Zeichen!
- ein Zeichen im Filter löschen
Warum?
new table("test", add rows(2000000), new column ("col",Character, Set each value(Char(random integer(2000000)))))
Hallo @hogi , vielen Dank für Ihren Bericht und die Beschreibung des Latenzproblems. Wir sind uns des Problems bewusst und arbeiten an Leistungsverbesserungen für Tabellen mit vielen Zeilen in zukünftigen JMP-Versionen. Dies wird voraussichtlich mehrere Versionen in Anspruch nehmen (Leistungsverbesserungen benötigen Zeit und Tests, um Regressionen auszuschließen). Bitte haben Sie daher etwas Geduld. Vielen Dank!
JMP Technischer Support.
Klingt super.
Interessant: Es handelt sich um die Anzahl der Einträge im Datenfilter.
Wenn Sie eine Indexspalte mit mehr als einer Million Einträgen haben, werden Sie mit Sicherheit auf Geschwindigkeitsprobleme stoßen, wenn Sie diesen Index im Datenfilter verwenden.
Bei einer Datentabelle mit nur 20000 Einträgen im Datenfilter (gleiche Anzahl an Zeilen in der Tabelle) gibt es kein Problem:
new table("test", add rows(2000000), new column ("col",Character, Set each value(Char(random integer(20000 // was: 2000000
)))))
Interessant² und überraschend:
Es ist hilfreich, eine Vorauswahl über eine Hilfsspalte zu verwenden. Dies kann als Übergangslösung dienen, bis das Problem behoben ist.
Verwenden Sie eine zweite Spalte mit einer gekürzten Version der ursprünglichen Spalte.
new table("test", add rows(2000000), new column ("col_long",Character, Set each value(Char(random integer(2000000)))),
new column ("col_short",Character, set each value(left(:col_long,3)))
)
Es ist definitiv gewöhnungsbedürftig, aber es ist viel schneller als die Verwendung einer einzelnen Spalte:
[„54321“ wird mit der gleichen Geschwindigkeit getippt, egal ob die Option „Bedingung“ aktiviert oder deaktiviert ist.]