![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто работает с Oracle? [D7]
fisherman © (2006-10-20 10:21:00)Добрый день!
Подскажите, какими компонентами лучше подсоединяться к таблицам базы на Oracle?
evvcom (2006-10-23 09:15:00) [1]> [21] Petr V.Abramov (22.10.06 00:32)
> приведи пример, что в DOA не поддерживается?
Про неподдержку, насколько я понял, разговор был об ADO, а не DOA:
> [19] rar © (21.10.06 15:36)
> Работаю со стандартными компонентами ADO
Ну да ладно...
> [24] Petr V.Abramov (22.10.06 13:04)
> AQ-шные callback`и сами правда делали
А вот AQ как раз в ODAC-е нет. Работаю с одаком, хотел кое-что сделать на AQ. Оп-c, обломчик вышел. Хотел сам дописать, а они OCI-вызов/инициализацию AQ тоже не реализовали, HDLL в приваты спрятали и т.д. Корректно написать модуль с вызовом AQ через OCI, видимо, не реально. Посмотрел реализацию DOA, так они тоже оказывается с OCI не заморачивались. Сделали вызов процедур пакета в PL/SQL блоке, и делов-то! Чую, так проще и надежнее будет. Хотя может кто под ODAC AQ уже написал сам? Поделитесь.
Petr V.Abramov (2006-10-22 21:29:00) [2]> А вот ArrayBinding это вещь хорошая так что наверное в DAO все же сделали. Но позже чем в ODAC.
это факт и аргумент. правда, первым хорошо быть в лыжном забеге, а в нашем деле главное - неглючность :) пока не посмотрел в DOA эту вещь, некогда, но гляну, самому интересно.
> У него особый режим устанавливается при работе с таким курсором.
ну если режим "из fetch прям в грид" (что затруднительно, хоть и реализуемо) - тогда м.б.
> все же трудно представить когда оно сильно надо.
очень легко. представь себе разработчика, кторый знает про select, но не подозревает о where :)
Sergey Masloff (2006-10-22 21:16:00) [3]Petr V.Abramov (22.10.06 21:00) [30]
Не датасет не кеширует. У него особый режим устанавливается при работе с таким курсором. Но это все сугубо на основе чтения доки - это я реально никогда не использовал - все же трудно представить когда оно сильно надо.
А вот ArrayBinding это вещь хорошая так что наверное в DAO все же сделали. Но позже чем в ODAC.
Кстати у ODAC неплохо продумана мигрвция с BDE так что если есть большой проект с BDE альтернативы ODAC сложно найти.
Petr V.Abramov (2006-10-22 21:00:00) [4]> Sergey Masloff (22.10.06 17:02) [29]
таки есть. через fetch dataset получает запись, и по-любому кэширует ее у себя, так он устроен.
при старорежимном курсоре он ее берет с сервера и кидает в свой кеш, а OCI кешировать ниче не надо. А так и OCI кештрует, и сервер, и dataset еще кусок этого кеша дублирует.
Response time is improved if you use OCI client-side prefetch buffers. After calling
OCIStmtExecute() for a scrollable cursor, call OCIStmtFetch2() using
OCI_FETCH_LAST to obtain the size of the result set. Then set
OCI_ATTR_PREFETCH_ROWS to about 20% of that size, and set
OCI_PREFETCH_MEMORY if the result set uses a large amount of memory.
пожиренное - логично. но датасет-то тоже кеширует.
Sergey Masloff (2006-10-22 17:02:00) [5]Petr V.Abramov (22.10.06 14:23) [27]
Кстати не дочитал. Как раз - НЕТ двойного расхода. На клиенте -только окошко, размер буфера фиксирован. Это и сделано чтобы максимально экономити клиентскую память когда это нужно. Хотя серверные ресурсы конечно расходуются.
Sergey Masloff (2006-10-22 15:11:00) [6]Petr V.Abramov (22.10.06 14:23) [27]
Я ж не говорю что это жизненно необходимо. Просто оно есть а в DOA нет
Petr V.Abramov (2006-10-22 14:23:00) [7]> выфйулрлдрдтдтдтдрж (22.10.06 13:16) [25] :)))
да блин, не приметил фичу... (:
но что-то первое впечатление - критическое. во первых:
Note: Do not use scrollable cursors unless you require the
functionality, because they use more server resources and can have
greater response times than non-scrollable cursors.
(c) первоисточник
во-вторых как-то не вяжется с идеологией датасета. ведь получается двойной кэш: в буферах OCI + в буферах датасета одно и тоже фактически хранится. А что недофетчилось - в буферах PGA на сервере. Вот если бы исключить буфера датасета, смысл имелся бы, а так фактически двойной расход памяти
Стоит ли овчинка выделки-то? может, проще с огромными курсорами не баловаться?
Sergey Masloff (2006-10-22 13:17:00) [8][25] это я. Просто у меня на руках очень активный двухлетний референт сидит ;-)
выфйулрлдрдтдтдтдрж (2006-10-22 13:16:00) [9]Petr V.Abramov (22.10.06 13:04) [24]
>> - со скроллируемыми курсорами девятого оракла DOA вроде не работает. >растолкуй
Специфическая фича.
Можно работать со скроллируемым курсором. Есть курсор в котором много данных. Если сделать его скроллируемым то можно на клиенте гонять по нему "окно" вперед и назад. При обычном курсоре ты идя вперед собираешь все данные в кеш (или не собираешь) в любом случае назад по курсору не вернешься.
По скроллируемому можно гулять вперед-назад не копя данных в буфере.
Petr V.Abramov (2006-10-22 13:04:00) [10]> - со скроллируемыми курсорами девятого оракла DOA вроде не работает. Или стали работать позже ODAC
растолкуй
> - алерты поддерживаются (в DOA вроде были глючки на этот счет)
это вроде старая какая-то вещь, сейчас AQ и Oracle Streams. AQ-шные callback`и сами правда делали
> - ArrayBinding в DOA есть?
вот это надо посмотреть, раньше не было
Sergey Masloff (2006-10-22 11:41:00) [11]Ну и по мелочи:
- со скроллируемыми курсорами девятого оракла DOA вроде не работает. Или стали работать позже ODAC
- алерты поддерживаются (в DOA вроде были глючки на этот счет)
- ArrayBinding в DOA есть?
Ну и уже есть мелкие штучки которые в DOA руками делать - смарт рефреш, нонблокинг режим запросов для долгих выборок. Да понятно что делается несложно но делать нужно.
Sergey Masloff (2006-10-22 11:34:00) [12]Petr V.Abramov (22.10.06 00:32) [21]
1) работа без установки ораклового клиента ;-))
Petr V.Abramov (2006-10-22 00:32:00) [13]> Sergey Masloff (21.10.06 15:46) [20]
> Скажем так, наиболее полную поддержку фич оракловых. А там много чего.
приведи пример, что в DOA не поддерживается?
Sergey Masloff (2006-10-21 15:46:00) [14]rar © (21.10.06 15:36) [19]
Скажем так, наиболее полную поддержку фич оракловых. А там много чего.
rar (2006-10-21 15:36:00) [15]Работаю со стандартными компонентами ADO, не возникае ни каких проблем, почти:-)).
Может просвятит кто чем лучьше или что дают компоненты DAO или ODAC
Petr V.Abramov (2006-10-20 21:18:00) [16]> Sergey Masloff (20.10.06 20:40) [16]
> ODAC лучше. Личное впечетление.
У DOA к родным OCI хендлам доступ есть, что хорошо, когда ... блин
Хотя ODAC не пробовал :)))
Desdechado (2006-10-20 20:51:00) [17]Курдль © (20.10.06 17:23) [13]
> Они и до DB добрались? Я раньше думал, что они только DB-Aware
> компоненты делают... И как называются эти компоненты? Что умеют?
Хм, ты видно стандартные с D6 компоненты dbExpress попутал с devExpress.
Я использую первые :)
А драйвера для него под Оракл от борланда слишком косые, поэтому покупали от crlab и дорабатывали под себя.
Sergey Masloff (2006-10-20 20:40:00) [18]Курдль © (20.10.06 17:23) [13]
ODAC лучше. Личное впечетление. Я с тем и другим довольно много работал.
ANB © (20.10.06 18:22) [14]
>ODAC поудобнее будет. В последних версиях он уже не такой глюкавый.
В последних это лет 5 уже ;-)))
Petr V.Abramov (2006-10-20 19:35:00) [19]> Начальству про это лучше не заикаться,
если проблема в покупке компонетов за $300, с таким начальством лучше не работать
ANB (2006-10-20 18:22:00) [20]
> (правда не копал глубоко ODAC).
ODAC поудобнее будет. В последних версиях он уже не такой глюкавый.