Выполняет ли Elasticsearch полное сканирование моей таблицы Oracle каждый раз при запуске Logstash? - PullRequest
0 голосов
/ 15 марта 2019

Я хотел бы знать, выполняет ли Elasticsearch полное сканирование таблицы в моей таблице Oracle, если я пытаюсь получить дельта-данные этой таблицы с помощью Logstash

1 Ответ

1 голос
/ 15 марта 2019

Elasticsearch не взаимодействует с вашей базой данных, это Logstash, который выполняет запросы к вашей базе данных.Сканирует ли Logstash всю таблицу, зависит от самого запроса и отсканированных индексов таблицы.Большинство запросов, запускаемых из Logstash, выглядят примерно так:

SELECT * FROM TABLE WHERE FIELD_FOR_DELTA > :sql_last_value;

Если FIELD_FOR_DELTA не имеет индекса, Oracle выполнит поиск по всем записям, чтобы найти записи, удовлетворяющие условию.Но когда у FIELD_FOR_DELTA есть индекс, Oracle будет либо искать в небольшой части таблицы, либо проверять запись с самым высоким значением и завершать запрос, если значение было равно или меньше.Если у вас нет индекса для этого поля в вашей таблице, вам следует рассмотреть его из-за потенциально повышенной производительности запросов и снижения влияния БД в Logstash.

...