У меня есть реляционная модель базы данных Это основа моих данных-config.xmlSolr - Есть ли способ ускорить мой импорт
<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>
Теперь, это занимает много времени.
10000 строк в первом запросе, а затем вторые внутренние объекты выбираются позже (около 10 строк каждая).
Если я использую профилировщик db, я вижу, что запрос на три внутренних объекта работает снова и снова (3 выбирает предложения, чем снова 3 выбирает предложения снова и снова)
Это действительно неэффективно.
И импорт может работать более 40 часов()
Теперь,
Каковы мои возможности запускать его быстрее.
- Очевидно, что есть возможность поместить столы в один большой стол, но это создаст много других побочных эффектов. Мне бы очень хотелось избежать дополнительных усилий и запустить solr на моих реляционных таблицах.
Пока это отлично работает, и я ищу здесь, если есть настройка конфигурации. - Если я буду выравнивать строки, которые - тоже нужно изменить schema.xml? или те же поля, которые являются многозначными, будут оставаться многозначными.
Спасибо.
Если это отдельный объект, как насчет создания представления по таблицам, а не для запуска нескольких запросов? это намного быстрее – Jayendra
Создание представления заставит меня сгенерировать еще один первичный ключ (из-за умножения), я хотел бы избежать его, насколько могу – Jeb