Самый быстрый OLEDB читать из ORACLE - PullRequest
1 голос
/ 17 августа 2010

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

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

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

Уточнение:

с данными 23M записей

Запрос: SELECT ID FROM OBJECTS

Узким местом является перенос из Oracle в клиентское программное обеспечение c ++ / OLEDB

.

1 Ответ

1 голос
/ 17 августа 2010

Какого черта, я воспользуюсь шансом.

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

OracleОбъекты для OLE , для краткости OO4O.

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

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

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

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

HTH


Использовать предложение "ГДЕ"?Пример: «выбрать идентификатор из объектов, где идентификатор = критерий»

ГДЕ

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

ИЛИ, посмотрите на "между."

"выберите идентификатор из объектов, где идентификатор между этим и этим одним"

МЕЖДУ

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

HTH

...