JPA : 계층 구조를 읽는 데 걸린 시간

Mandroid

JPA를 사용하여 데이터베이스에서 엔티티를 가져옵니다. 엔터티에는 부모-자식 관계가 있으며 전체 계층 구조를 가져오고 싶습니다. 그래서 모든 루트 노드 (부모가없는 엔터티)를 가져온 다음 이러한 노드를 반복적으로 반복하여 계층 전체를 가져옵니다.

모든 노드를 가져 오지만 거의 12 분 이상 걸립니다. 테이블에는 총 5500 개의 행이 있습니다.

좋은 성능인지 아니면 개선해야하는지 알고 싶습니다.

Nándor Előd Black

내가 올바르게 이해하면 전체 테이블을로드하는 것입니다. 연결 초기화를 트리거하기 위해 방문자와 함께 루트를 가져오고 계층 구조에 깊이 빠져들기만하면됩니다. 이렇게하면 계층 구조의 일부만 가져 오는 개별 select 문이 많이 생성되고 앱에서 데이터베이스까지의 지연 시간에 발급 된 문 수를 곱합니다.

이 경우 부모에서 자식으로 LEFT JOIN FETCHOneToMany연결을 선택하여 전체 테이블을 가져올 수 있습니다 . 이렇게하면 데이터베이스와의 단 한 번의 왕복으로 전체 계층 구조가로드됩니다.

HierarchyElement엔티티 클래스라고 가정하면 다음 JPA 쿼리에서 부모에 대한 참조가되는 HierarchyElement.children요소의 자식 HierarchyElement.parent에 대한 컬렉션입니다.

select he from HierarchyElement he where he.parent is null

방문자가 요소를 반복하고 HierarchyElement.children컬렉션을 재귀 적으로 초기화하는 것은 다음 보다 훨씬 느립니다.

select he from HierarchyElement he left join fetch he.children

이 후자의 쿼리를 사용하면 컬렉션 HierarchyElement과 함께로드 된 HierarchyElement.children모든 것이 초기화됩니다. 그리고 전체 테이블을로드하기 HierarchyElement.parent때문에 parent연결이로 표시되어 있어도 가능한 모든 관계가 적절한 엔터티를 올바르게 가리키게 됩니다 LAZY. JPA 공급자가 사용자를 위해 엔터티를 빌드 할 때 모든 엔터티가 첫 번째 캐시에 있고 JPA 공급자가 연결할 엔터티를 알 수 있기 때문입니다.

위의 내용을 사용하면 가져온 모든 요소를 ​​쉽게 살펴보고 계층 루트 인 부모가 null 인 요소 만 가져올 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다debugcn@gmail.com 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

루프를 실행하는 데 걸린 시간 (Progress 4GL)

분류에서Dev

시계열 데이터에서 임계 값을 초과하는 데 걸린 시간 가져 오기

분류에서Dev

배치 파일이 실행되는 데 걸린 시작 및 종료 시간을 계산 하시겠습니까?

분류에서Dev

JPA (고정 깊이)로 계층 적 데이터 구조 구현

분류에서Dev

생성하는 데 걸린 시간을 각 줄 앞에 추가

분류에서Dev

vbox를 설정하는 데 많은 시간이 걸리고 너무 느린 우분투 VM 시작

분류에서Dev

HDD는 OS를 설치하는 데 시간이 오래 걸리지 만 느린 새 OS 만 남았습니다.

분류에서Dev

RecycleView로 계층 적 데이터 구조를 표시하는 방법은 무엇입니까?

분류에서Dev

parquet 파일에서 분할 된 데이터를 읽고 계층 구조를 유지하면서 다시 쓰시겠습니까?

분류에서Dev

계층 데이터를 표시하는 SQL 쿼리

분류에서Dev

WinDirStat가 8TB 드라이브를 분석하는 데 오랜 시간이 걸린다는 것이 놀랍습니까?

분류에서Dev

urllib2를 읽는 데 시간이 오래 걸리는 이유는 무엇입니까?

분류에서Dev

측정 값이 null 인 계층 구조 멤버를 표시하는 방법 (mdx)

분류에서Dev

뷰가 창 계층 구조에없는 vc를 표시하려고합니다.

분류에서Dev

계층 적 데이터를 저장하는 데 가장 적합한 / 실행 가능한 C # 데이터 구조

분류에서Dev

NTP가 시계를 즉시 설정하지 않으면 시간을 조정하는 데 얼마나 걸립니까?

분류에서Dev

InputStream.readObject가 직렬화 된 객체를 읽는 데 너무 많은 시간이 걸리는 이유

분류에서Dev

SQL Server 2014에서 계층 적 데이터를 표시하는 방법

분류에서Dev

R에서 시간 차이 (파일 처리에 걸린 시간)를 찾는 방법은 무엇입니까?

분류에서Dev

후속 프로그램 실행을 위해 감소하는 파일에 쓰는 데 걸린 시간

분류에서Dev

CPU가 초당 10 ^ 8 작업으로 작동 할 때 배열을 정렬하는 데 걸린 시간

분류에서Dev

systemd에서 마지막 작업을 실행하는 데 걸린 시간을 어떻게 알 수 있습니까?

분류에서Dev

내 slurm 작업을 실행하는 데 걸린 시간을 어떻게 알 수 있습니까?

분류에서Dev

while 루프에서 쿼리를 실행하는 데 걸리는 시간을 계산합니까?

분류에서Dev

자바에서 10 만 단어의 빈도를 계산하는 데 걸리는 시간

분류에서Dev

계층 구조를위한 Meteor 데이터베이스 설계

분류에서Dev

셀에 계층 구조가있는 VBA 표시 XML

분류에서Dev

XSLT : XSLT를 사용하여 xml 데이터를 계층 구조로 변환하는 방법

분류에서Dev

계산하는 데 시간이 걸리는 다각형 수 계산

Related 관련 기사

  1. 1

    루프를 실행하는 데 걸린 시간 (Progress 4GL)

  2. 2

    시계열 데이터에서 임계 값을 초과하는 데 걸린 시간 가져 오기

  3. 3

    배치 파일이 실행되는 데 걸린 시작 및 종료 시간을 계산 하시겠습니까?

  4. 4

    JPA (고정 깊이)로 계층 적 데이터 구조 구현

  5. 5

    생성하는 데 걸린 시간을 각 줄 앞에 추가

  6. 6

    vbox를 설정하는 데 많은 시간이 걸리고 너무 느린 우분투 VM 시작

  7. 7

    HDD는 OS를 설치하는 데 시간이 오래 걸리지 만 느린 새 OS 만 남았습니다.

  8. 8

    RecycleView로 계층 적 데이터 구조를 표시하는 방법은 무엇입니까?

  9. 9

    parquet 파일에서 분할 된 데이터를 읽고 계층 구조를 유지하면서 다시 쓰시겠습니까?

  10. 10

    계층 데이터를 표시하는 SQL 쿼리

  11. 11

    WinDirStat가 8TB 드라이브를 분석하는 데 오랜 시간이 걸린다는 것이 놀랍습니까?

  12. 12

    urllib2를 읽는 데 시간이 오래 걸리는 이유는 무엇입니까?

  13. 13

    측정 값이 null 인 계층 구조 멤버를 표시하는 방법 (mdx)

  14. 14

    뷰가 창 계층 구조에없는 vc를 표시하려고합니다.

  15. 15

    계층 적 데이터를 저장하는 데 가장 적합한 / 실행 가능한 C # 데이터 구조

  16. 16

    NTP가 시계를 즉시 설정하지 않으면 시간을 조정하는 데 얼마나 걸립니까?

  17. 17

    InputStream.readObject가 직렬화 된 객체를 읽는 데 너무 많은 시간이 걸리는 이유

  18. 18

    SQL Server 2014에서 계층 적 데이터를 표시하는 방법

  19. 19

    R에서 시간 차이 (파일 처리에 걸린 시간)를 찾는 방법은 무엇입니까?

  20. 20

    후속 프로그램 실행을 위해 감소하는 파일에 쓰는 데 걸린 시간

  21. 21

    CPU가 초당 10 ^ 8 작업으로 작동 할 때 배열을 정렬하는 데 걸린 시간

  22. 22

    systemd에서 마지막 작업을 실행하는 데 걸린 시간을 어떻게 알 수 있습니까?

  23. 23

    내 slurm 작업을 실행하는 데 걸린 시간을 어떻게 알 수 있습니까?

  24. 24

    while 루프에서 쿼리를 실행하는 데 걸리는 시간을 계산합니까?

  25. 25

    자바에서 10 만 단어의 빈도를 계산하는 데 걸리는 시간

  26. 26

    계층 구조를위한 Meteor 데이터베이스 설계

  27. 27

    셀에 계층 구조가있는 VBA 표시 XML

  28. 28

    XSLT : XSLT를 사용하여 xml 데이터를 계층 구조로 변환하는 방법

  29. 29

    계산하는 데 시간이 걸리는 다각형 수 계산

뜨겁다태그

보관