로드 된 데이터베이스가 많은 쿼리에서 하위 선택을 사용하여 무엇을 고려해야합니까?

StackOverflow https://stackoverflow.com/questions/520595

문제

OpenJPA1.1과 Oracle DB를 백엔드 스토리지로 사용하여 지속성 계층이있는 응용 프로그램을 개발하고 있습니다. 나는 subselects와 함께 쿼리를 사용하겠습니다 (내 질문 참조 연결된 목록에서 마지막 항목 찾기 JPA 쿼리 해결).

이제 직장의 동료들은 데이터베이스가 수천 개의 동시 사용자가 사용하는 수천 명의 고객 날짜 (생산에서 현실이 될 것임)로 채워짐에 따라 이러한 질문이 성능 문제로 이어질 수 있다고 말합니다.

그래서 내 질문은 다음과 같습니다 "모범 사례" 사용 subselects 이 상황에서 쿼리로? 그리고 이것을함으로써 무엇을 고려해야합니까?

도움이 되었습니까?

해결책

먼저 그것이 문제라는 것을 증명할 것입니다. 더미 데이터로 데이터베이스를로드하고 데이터베이스가 커질 때 쿼리가 어떻게 작동하는지 확인하려고합니다. 그렇지 않으면 문제가되지 않는 것을 최적화하는 데 시간을 소비하고 있습니다.

생각해야 할 한 가지. 내가 일했던 모든 곳에서, 물건이 무너지는 곳은 수천 개의 기록이 아니라 수백만의 기록입니다. 당신은이 시스템을 가지고 있고, 잠시 동안 잘 작동하고 더 많은 하드웨어를 던져도 속도가 느려지기 시작합니다. 내가 지금 일하고있는 곳은 1998 년으로 거슬러 올라가는 그의 역사 테이블에 약 7 천만 건의 기록을 가지고 있습니다. 일부 쿼리의 성능은 그 결과 끔찍하며 이러한 문제를 해결하는 데 많은 시간을 소비합니다.

그러나 어느 시점에서 당신은 정말로 물어봐야합니다. 거래 시스템에서 4 년 이상 데이터를 유지해야합니까? 아니면 4 개월? 이 시간 제한은 비즈니스 요구에 달려 있지만 진행중인 작업을 처리하는 데 필요한 데이터만으로 거래 시스템을 유지하고 데이터웨어 하우스에 기록적인 기록을 보관합니다. 전반적인 성능을 향상시킬 수 있습니다. 기존 데이터를 쿼리해야 할 가능성이 있기 때문에 최근 데이터를 보관 해야하는 이유는 무엇입니까?

이것에 대해 생각하면 장기적으로 많은 두통을 절약 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top