【FileMaker】Loop과 전치환, 어느 쪽이 빠른지 해 보았다

FileMaker도 버전이 16이 되어, 이전과는 비교할 수 없을 정도로 다기능이 되어 왔습니다.
그러나 스크립트의 조합에 따라서는 처리가 느린 시스템이 되어 버립니다.

이번에는 같은 일을 하는 데 다른 스텝이나 함수로 구현하면 어느 쪽이 빠른지, 하지만 신경이 쓰였기 때문에 해 보았습니다.
루프필드 내용의 전체 대체 입니다.

구현 환경



MacBook Air (13-inch, Early 2015)
프로세서: 1.6 GHz Intel Core i5
메모리: 8GB 1600MHz DDR3
OS: macOS High Sierra 버전 10.13.1
FileMaker: FileMaker Advanced Pro 16.0.3.302

검증 데이터



(1) 10,000 건 (16,000 건)의 데이터 2 필드 변환
(2) 50,000 건 (56,000 건)의 데이터 2 필드를 변환 → (1) 1의 3.5 배
(3) 10 만 건 (112,000 건)의 데이터 2 필드를 변환 → (1)의 7 배

변환할 필드는
· 텍스트 데이터
・수치
두 가지입니다.

사양하는 FileMaker 스크립트 단계



다음 두 스크립트 단계마다 스크립트를 작성합니다.
· 루프
· 필드 내용의 전체 대체

Loop을 사용한 스크립트는 다음과 같은 느낌입니다.


필드 내용의 전체 치환을 사용한 스크립트는 다음과 같은 느낌입니다.


결과



10,000건(16,000건)의 데이터 2필드를 변환의 경우



・Loop


· 필드 내용의 전체 치환


50,000건(56,000건)의 데이터 2필드를 변환의 경우



・Loop


· 필드 내용의 전체 치환


100,000건(112,000건)의 데이터 2필드를 변환의 경우



・Loop


· 필드 내용의 전체 치환


과연 10만 건의 Loop변환은 기다리는 동안 졸릴 것 같았다. . .

표로 해 보았습니다.


건수(건)
Loop(분:초)
전체 치환 (분 : 초)


16,000
0:30
0:02

56,000
1:50
0:06

112,000
3:39
0:12


그래프로 해 보았습니다.

Loop, 스키의 상급자 코스를 넘은 사도군요!
기준치를 16,000건으로 하면, Loop는 16,000건의 3.5배의 데이터인 56,000건은, 처리 시간은 3.5배를 5초 정도 걸리고 있습니다.
마찬가지로 112,000건은 16,000건의 7배이지만, 처리시간은 7배를 4초 정도 걸리고 있습니다.
배치 처리를 한다면, 4,5초 많이 걸려도 그렇게 신경이 쓰이지 않지만, 온라인으로 처리할 때는, 굉장히 걸리게 되네요.

하지만, 전치환에 관해서는, 단순히 3.5배, 7배의 시간은 걸리지 않습니다.
오히려 적은 시간에 처리를 종료하고 있습니다.

FileMaker의 버젼이나 실행 환경에도 다가갈까 생각합니다만, 지금, 필드 내용의 전치환이 처리가 빠르다, 라고 하는 결과가 되고 있습니다.
덧붙여 재귀 처리에서의 필드 변환은, 재귀 횟수에 한계 수가 있음 같으므로, 이번의 검증으로부터는 제외했습니다.

그럼 재미있는 FileMaker 생활을!

좋은 웹페이지 즐겨찾기