sqlite가 트랜잭션과 관련하여 성능을 삽입하는 데 문제가 있습니다. 내 안드로이드 애플 리케이션은 웹 서비스에서 약 23.000 행을 받고 단일 테이블에 삽입해야합니다.SQLite 인서트가 트랜잭션이있는 경우에도 느려짐
웹 서비스가 분할되어 WS에 대한 모든 요청에서 약 2000 개의 행을 받고 트랜잭션 내에서 2000 개의 삽입을 래핑합니다. 삽입이 완료되면 WS에 새 요청을 보내고 새 2000 행에 대해 새 트랜잭션을 다시 사용합니다.
처음에는 제대로 작동합니다. 초당 많은 삽입 작업을 수행합니다. 그러나 시간이 지남에 따라 속도는 느려지고 23000 행을 완료 할 때까지 초당 4 또는 3 개의 삽입으로 끝납니다.
테이블 크기에 문제가 있습니까? 그것이 커지면 인서트가 느려지는 것입니까? 대용량 데이터의 성능을 향상시킬 수있는 방법이 있습니까?
도움 주셔서 감사합니다.
느려질 수있는 색인이 있습니까? 그리고 매번 한 번에 2000 개를 삽입하고 (매번받은 모든 데이터) 매번 삽입하지 않았습니까? –
이것은 COMMIT가 없을 때 확장되는 트랜잭션 작업 집합처럼 들립니다. – DaveE
글쎄 그것은 모두 당신이 삽입하는 데이터에 따라 달라집니다, 문자열은 귀하의 DB를 느리게합니다. 바이트로 2000 행의 크기는 얼마입니까? 2000 행을 삽입 한 후 DB 파일의 크기 차이는 무엇입니까? 388000 행과 파일 크기가 64M 인 db가 있지만 데이터는 모두 두 배입니다. – JPM