을 단축 할 수있는 방법이 있나요 이 지금이 시간이 많이 걸립니다SOLR - 내가 관계형 데이터베이스 모델을 내 오기
<entity name="MyMainEntity" pk="pID" query="select ... from [dbo].[TableA] inner join TableB on ...">
<entity name="Entity1" pk="Id1" query="SELECT [Text] Tag from [Table2] where ResourceId = '${MyMainEntity.pId}'"></entity>
<entity name="Entity1" pk="Id2" query="SELECT [Text] Tag from [Table2] where ResourceId2 = '${MyMainEntity.pId}'"></entity>
<entity name="LibraryItem" pk="ResourceId"
query="select SKU
FROM [TableB]
INNER JOIN ...
ON ...
INNER JOIN ...
ON ...
WHERE ... AND ...'">
</entity>
</entity>
내 데이터-config.xml 파일의 기본이다.
첫 번째 쿼리에서 10000 개의 행을 처리 한 다음 나중에 각각의 내부 엔터티를 가져옵니다 (각각 약 10 개의 행).
db 프로필러를 사용하는 경우 세 개의 내부 엔터티 쿼리가 반복 실행됩니다 (3 개의 문장을 다시 선택하는 것보다 3 개의 문장을 반복하여 선택 함)
이것은 실제로 효율적이지 않습니다.
가져 오기가 40 시간 이상 실행될 수 있습니다.
이제
더 빠르게 실행할 수있는 옵션은 무엇입니까?
- 분명히 하나의 큰 테이블에 테이블을 플랫 화하는 옵션이 있지만, 다른 많은 부작용이 생길 것입니다. 나는 그 여분의 노력을 피하고 생산 관계형 테이블에서 solr을 실행하고 싶습니다.
지금까지는 상자에서 벗어나 잘 작동하며 구성을 조정할 경우 여기를 검색하고 있습니다. - 행을 플랫 화하려면 schema.xml도 변경해야합니까? 또는 여러 값을 가진 동일한 필드는 여러 값을 유지합니다.
감사합니다.
단일 하위 엔터티 인 경우 여러 쿼리를 실행하는 대신 테이블을 통해 뷰를 작성하는 방법은 무엇입니까? 그것은 훨씬 더 빠릅니다. – Jayendra
뷰를 생성하면 다른 기본 키가 생성됩니다 (곱하기 때문에). 가능한 한 많이 피하고 싶습니다. – Jeb