2011-02-28 2 views
0

에서 SQLite는 쿼리에 조인. 그러나 내 프로그램에서 실행할 때 실행하기에는 용인 할 수없는 시간이 필요합니다. 내 자신의 ExecuteNonQuery 래퍼 (클래스)뿐만 아니라 command.ExecuteNonQuery() 시도했습니다.사용하여 여러 내가 같은 쿼리를 실행하려고 한 C#을

다른 모든 쿼리 (조인/삽입 포함) 작업 확인, 그냥이 부분입니다. 뷰로 조인을 시도했는데, tempTables 모든 종류의 SQLite 관리자에서 작동하지만, SQLite 관리자에서 작동합니다. (

내 데이터는 현재 수천 개의 행만 있지만,

이런 식으로 다중 조인/큰 삽입을 수행 할 때 알려진 문제점은 있습니까? (다른 쿼리는 훨씬 더 작은 반환 값을 반환합니다. 결과 결과) 나는 Linq에 또는 유사한은() 관련 질문보고 조사해야합니다.

감사합니다.

답변

1

귀하 코드는 쿼리를 SQLite 드라이버에 전달하므로 코드에서 쿼리를 실행하는 것이 SQLite Manager보다 느린 경우 드라이버 업데이트가 있는지 확인해야합니다.

explain insert into members (...) (explain + 전체 쿼리)을 SQLite Manager와 코드에서 모두 실행하고 결과를 비교해 볼 수 있습니다. 그렇게하면 어느 쪽이든 다른 쪽보다 나은 전략을 선택할 수 있습니다.

또한 모든 id 필드에 인덱스가 있는지 확인하십시오. 이는 성능에 큰 이점을 제공하기 때문입니다.

Linq는 일반적으로 일반 검색어보다 빠르지 않아야합니다.

+0

감사합니다. 나는 색인을 만들었고, 인서트는 초고속으로되었습니다! 나는 그것이 명백했다는 것을 안다. 나는 모든 수입품을 다 마친 후에 곧바로 모든 나의 색인을 만들었다. 내가 삽입물의 성능을 극대화하고 있다고 생각했다. 나의 수입 과정이 효과적으로 벌크 인서트이고, 응용 프로그램 가져온 한 번만 읽을 수 있습니다. 나는 전반적으로 시간을 절약하지 못한다고 생각합니다 ... 다시 한 번 고맙습니다. 멍청한 오류였습니다.하지만 누군가에게 말해달라고했습니다. – DougF

+0

Linq에 대한 언급이 왜 필요합니까? 질문이나 답변에 linq이 보이지 않습니다. –

+0

@AndrewArnott "Linq 또는 이와 유사한 질문을해야합니까 (관련 질문보기)." 질문의 마지막 줄을보십시오. –

관련 문제