对于超过 100 万行的数据表,数据筛选速度非常慢。
需要几秒钟时间
- 在数据筛选器中激活新列
- 在过滤器中输入文本:每个字符需要几秒钟!
- 删除筛选器中的字符
为什么?
new table("test", add rows(2000000), new column ("col",Character, Set each value(Char(random integer(2000000)))))
您好@hogi ,感谢您报告并花时间展示您遇到的延迟问题。我们已经意识到这个问题,并正在努力改进未来 JMP 版本中针对行数较多的表的性能。这可能需要多个版本才能完成(性能改进需要时间和测试,以确保不会出现任何回归问题),因此请您合理预期。谢谢!
JMP技术支持。
听起来不错。
有趣的是:这是数据筛选器中的条目数量。
如果“索引”列包含超过一百万条记录,那么在数据筛选器中使用此索引时,肯定会遇到速度问题。
对于数据筛选器中只有 20000 条记录的数据表(与表中的行数相同),不存在问题:
new table("test", add rows(2000000), new column ("col",Character, Set each value(Char(random integer(20000 // was: 2000000
)))))
有趣且令人惊讶:
使用辅助列进行预选会有所帮助。在问题修复之前,这可以作为一种临时解决方案:
使用第二列,内容为原列的缩短版本。
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)))
)
虽然刚开始可能不太习惯,但比使用单列要快得多:
[开启和关闭“条件”模式时,以相同的速度输入“54321”]