grails 2.3.7 및 최신 Excel 가져 오기 플러그인 (1.0.0)을 사용하고 있습니다. 필자의 요구 조건은 엑셀 시트의 내용을 데이터베이스에 그대로 복사해야한다는 것입니다. 내 데이터베이스는 mssql 서버 2012입니다.거대한 데이터에 대해 Grails Excel 가져 오기가 실패합니다.
개발 버전에서 작동하는 코드가 있습니다. 이 코드는 레코드 수가 적거나 최대 몇백 개까지있을 때 잘 동작합니다.
그러나 생산 중에 엑셀 시트에는 최대 50,000 행과 75 개 이상의 열이 있습니다.
처음에는 메모리 부족 예외가 발생했습니다. 힙 크기를 8GB까지 늘렸으나 이제 스레드는 종료없이 계속 실행됩니다. 오류가 생성되지 않습니다.
이 작업은 잠시 동안 작동되며이 작업으로 인해 다른 작업이 수행되는 것을 방해하지 않는 사람이 수행합니다. 따라서이 작업의 막대한 부담에 대해 걱정할 필요가 있습니다. 나는 그것을 실행할 여유가있다.
동일한 수의 열로 기록이 10,000 개가되면 데이터가 약 5 분 안에 복사됩니다. 지금 내가 50,000 개의 행을 가지고 있다면 이상적으로 약 5 배 더 걸릴 것입니다. 이것은 약 25 분입니다. 그러나 코드는 종료없이 1 시간 이상 계속 실행되었습니다.
이 문제를 해결하는 방법을 알려주세요. 어떤 도움을 주셔서 감사합니다.
문제점은 ETL을 사용할 수있는 옵션이 없습니다. 혼자서 그걸 할 필요가있어. – Rammohan
그런 다음 Oliver의 접근 방식을 시도해보십시오. CSV로 작업하는 것이 훨씬 더 빨라질 수 있습니다. 코드가 진행될 때 속도가 느려지면 가져 오기를 더 작은 조각으로 덩어리로 만들 수 있습니다. 파일을 분할하는 것보다는 코드를 분할하는 것이 좋습니다. – wwwclaes