2014-01-13 9 views
0

Doctrine :: getTable()을 사용하여 이상한 동작이 발생하고이를 사용하여 쿼리를 실행 중입니다.versionable 동작은 Doctrine 1.2.4에서 쿼리 속도에 영향을 줍니까?

어떤 경우에는 Doctrine :: getTable()이 처음 호출 될 때 오버 헤드가 거의없고 다른 경우에는 200 + ms의 오버 헤드가 있습니다 (동일한 테이블에 대한 후속 호출에 대한 오버 헤드가 거의 없음).

동작은 다음과 같습니다.

a. DoctrineTabletable A 에 오버 헤드가 거의없고 쿼리를 실행하기 위해 호출됩니다 (해당 테이블이 액션 모듈 파일을 생성하는 데 사용됨). 양식이 저장됩니다. c. DoctrineTable은 관련없는 테이블 (table B)에서 쿼리를 실행하기 위해 호출되었으며 상당한 오버 헤드 (200 + ms) d가 있습니다. DoctrineTable 내가 c 단계에서 DoctrineTable 쿼리 작업을 시도한 오버 헤드없이

거의 또 다른 쿼리를 실행하기 위해 다른 테이블 (table C)를 호출하면 일반로드 문제가 있지만, 단계 d에서 쿼리이었다 있는지 제거 거의 또는 전혀 오버 헤드없이 실행됩니다. 나는 액션에서 직접 Doctrine_Query을 사용하여 쿼리를 실행했는데 이것이 차이를 만들었고 속도에 미치는 영향이 아직 있는지 확인했습니다.

문제 테이블에 대한 쿼리가 무엇이든간에 동일한 오버 헤드/성능 패널티가 있습니다.

느린 테이블 (table B)의 유일한 차이점은 다른 테이블 (table Atable C은 그렇지 않음)에서 버전 관리 가능 동작을한다는 것입니다. 그것이 초기 쿼리의 속도에 영향을 미칠 수 있습니까? (첫 번째 쿼리가 완료되면 해당 테이블에 대한 후속 쿼리는 빠릅니다)?

답변

0

그래서 더 파고 테스트를 마친 후에는 해당 테이블에서 쿼리 및 삽입을 실행할 때 테이블의 버전 별 동작이 오버 헤드를 추가하는지 확인할 수 있습니다.