100만 개 이상의 행이 있는 데이터 테이블의 경우 데이터 필터 속도가 매우 느립니다.
몇 초가 걸립니다
- 데이터 필터에 새 열을 활성화합니다
필터에 텍스트를 입력하세요. 글자 하나 입력하는 데 몇 초씩 걸립니다!
- 필터에서 문자를 삭제합니다
왜?
new table("test", add rows(2000000), new column ("col",Character, Set each value(Char(random integer(2000000)))))
안녕하세요 @hogi님 , 문제를 제보해 주시고 겪고 계신 지연 문제를 자세히 알려주셔서 감사합니다. 저희는 이 문제를 인지하고 있으며, 향후 JMP 릴리스에서 행 수가 많은 테이블의 성능 개선을 위해 노력하고 있습니다. 이 작업은 여러 릴리스에 걸쳐 진행될 예정이며 (성능 개선에는 시간과 테스트가 필요하고, 회귀 오류가 발생하지 않도록 해야 합니다), 이 점을 양해해 주시면 감사하겠습니다.
JMP 기술 지원.
좋네요.
흥미롭네요. 데이터 필터에 있는 항목 수입니다.
'인덱스' 열에 백만 개 이상의 항목이 있는 경우, 데이터 필터에서 해당 인덱스를 사용하면 속도 문제가 발생할 가능성이 높습니다.
데이터 필터에 20,000개의 항목(테이블의 행 수와 동일)만 있는 데이터 테이블의 경우에는 문제가 없습니다.
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"은 동일한 속도로 입력됩니다.]