Самый быстрый OLEDB, прочитанный ORACLE

Каким будет самый быстрый способ извлечения данных из Oracle DB через OLEDB?

Он должен быть переносимым (должен работать на Postgres и MS SQL), переносится только один столбец (идентификатор из большой таблицы).

Текущая производительность составляет 100 тыс. Строк в секунду. Я ожидаю слишком много, если я хочу, чтобы он пошел быстрее?

Разъяснение:

datatable имеет 23M записи

Запрос: SELECT ID FROM OBJECTS

Узкое место – это передача от oracleа к клиентскому программному обеспечению, которое является c ++ / OLEDB

Какая чертовщина, я рискну.

Изменить: Что касается подключения, я настоятельно рекомендую:

Oracle Objects для OLE , OO4O для краткости.

Это сделано Oracle для Oracle, а не MS. Он использует высокопроизводительные собственные драйверы, а не ODBC для повышения производительности. Я лично использовал это сам несколько раз, и это быстро. Я подключался к чрезвычайно крупным хранилищам данных и хранилищам данных, где каждый стол составлял не менее 2 миллионов записей, большинство из них были намного больше.

Обратите внимание, что вам не нужно знать OLE, чтобы использовать это. Он обертывает OLE, отсюда и название. Концептуально и синтаксически он переносит «результирующий набор» в динамический набор, подаваемый командами SQL. Если вы когда-либо использовали DAO или ADO, вы будете продуктивны через 5 минут.

Вот более подробная статья.

Если вы не можете использовать OO4O, то специализированный поставщик данных .Net, созданный Oracle, очень хорош. НЕ тот, который сделал MS.

НТН


Использовать предложение WHERE? Пример: «выберите id из объектов, где id = критерии»

ГДЕ

Это отправляет только интересную информацию по сети. В противном случае все 23 миллиона записей отправляются по проводам.

ИЛИ, загляните в «между».

“выберите id из объектов, где id между этим и этим”

МЕЖДУ

Это отправляет сокращенный набор записей в указанном вами диапазоне.

НТН