|
|
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Есть несколько приложений на Delphi, которые цепляются к ораклу через ADO. У этого ADO помимо прочего, есть очень неприятная привычка много раз парсить запросы к базе. Например: Из приложения делается запрос вида Код: plaintext Дальше. Если запрос к нескольким таблицам Код: plaintext Код: plaintext 1. 2. Если DML Код: plaintext Погуглил и нашел одинокий вопрос на форуме MS от 2001 года. Понятное дело - без ответов... Кто-нибудь боролся с таким идиотским поведением ADO? Я не разработчик, но они здесь рядом и самостоятельно пока не могут решить эту проблему. А меня, как DBA, такое кол-во "холостых" парсов в базе не устраивает. Хорошо хоть автокоммиты уже увидели и отключили, так же как и втыкание куда попало ROWID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 07:59 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Если вы планируете работать только с Oracle (хотя да же если и не только), то бегом от ADO. Есть AnyDAC, ODAC, DOA - вот их и используйте. Почему - попробуйте, сами поймете через 5 минут :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 08:28 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Я не разработчик. Но ситуация такая, что софт большой, написан под ADO. Переписывать целиком под что-то другое - нереально. Задача как-то "уговорить" ADO "вести себя прилично". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 08:34 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTTДальше. Если запрос к нескольким таблицам Код: plaintext Код: plaintext 1. 2. Кстати, там есть обращения к USER_SOURCE / ALL_SOURCE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 08:41 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
т.е. не к andreymxКстати, там есть обращения к USER_SOURCE / ALL_SOURCE?, а к ***_tables/**_tab_columns и т.д.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 08:44 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
andreymx KoTTTДальше. Если запрос к нескольким таблицам Код: plaintext Код: plaintext 1. 2. Кстати, там есть обращения к USER_SOURCE / ALL_SOURCE? Каждый раз. Но они не выполняются, они только разбираются (parse call) . К USER_SOURCE / ALL_SOURCE обращений нет. Да и откуда им тут взяться? Хотя... Этот ADO и так чудеса творит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 08:48 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
andreymxт.е. не к andreymxКстати, там есть обращения к USER_SOURCE / ALL_SOURCE?, а к ***_tables/**_tab_columns и т.д.? И этого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 08:51 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
чудак человек. дай ка трассу запосов, а то по твоему описанию хрен поймешь Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 09:15 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
скорее всего трассу перепутал :) ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 09:29 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
ScareCrowчудак человек. дай ка трассу запосов, а то по твоему описанию хрен поймешь Чего тут непонятного? Трасса такого вида: 1 вариант. Простой селект Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Второй вариант. Селект из нескольких таблиц: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. DML: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 09:50 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
у ADO может быть 2 провайдера (MS и Oracl'e) ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 10:00 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Microsoft OLE DB Provider for Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 10:07 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTTMicrosoft OLE DB Provider for Oracle в ADOConnection поставь провайдера Oracle - ничего переписывать ненадо. MS в Oracle как свинья в апельсинах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 10:20 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Спасибо. Будем пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 11:00 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123MS в Oracle как свинья в апельсинах. Хуже - старая свинья, так как использует OCI7. Да и Oracle в OLEDB не Мастер :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 11:20 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Попробовали Oracle Data Provider for OLE DB 9.2 - ситуация не изменилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 11:25 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTTПопробовали Oracle Data Provider for OLE DB 9.2 - ситуация не изменилась. я бы не стал так категорично: - сравните план по скорости ADO|TOAD ADO|PSQL ADO|ASQLPLUS ADO|... Вы не парсинг Oracla и его оптимизатор строите а приложение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 11:36 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTT Я не разработчик, но они здесь рядом и самостоятельно пока не могут решить эту проблему. ====== разговаривайте с ними на одном языке А меня, как DBA, такое кол-во "холостых" парсов в базе не устраивает. ======= вы уверены в своей квалификации? Хорошо хоть автокоммиты уже увидели и отключили, ====== чем они плохи? так же как и втыкание куда попало ROWID. ==== например? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 11:39 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTTПопробовали Oracle Data Provider for OLE DB 9.2 - ситуация не изменилась. как DBA лучше бы поставили свежее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 11:41 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Давайте по порядку. Вы не парсинг Oracla и его оптимизатор строите а приложение Я ничего не строю. Я стремлюсь добиться того, чтобы с ораклом приложение работало корректно. И при этом не создавая лишней нагрузки в качестве "подарка". А меня, как DBA, такое кол-во "холостых" парсов в базе не устраивает. ======= вы уверены в своей квалификации? Какой ответ вы ожидате получить? Хорошо хоть автокоммиты уже увидели и отключили, ====== чем они плохи? Автокоммит - зло. Создающее опять же лишнюю нагрузку и вдобавок "незванное" (коммит я делаю тогда, когда надо мне , а не какому-то ADO). так же как и втыкание куда попало ROWID. ==== например? Запрос вида Код: plaintext Код: plaintext как DBA лучше бы поставили свежее :) Да похоже, что с OLE DB и так все понятно. Не думаю, что в 10-й версии что-то изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 12:04 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
автокоммит можно отключить свойствами ADO ( транзакции станут длиннее ) причём тут ADO? rowid вероятно из-за типа курсора для правки а не для чтения (можно отключить свойствами ADO ) причём тут ADO? ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 12:18 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123автокоммит можно отключить свойствами ADO ( транзакции станут длиннее ) причём тут ADO? rowid вероятно из-за типа курсора для правки а не для чтения (можно отключить свойствами ADO ) причём тут ADO? Я выше писал, что это нашли и исправили. Причем тут ADO? Ни при чем. Косяк разработки. Вот если бы вы еще показали, как можно отключить свойствами ADO эти двойные разборы запросов, было бы совсем хорошо. Я собственно ради этого тему и открыл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 12:25 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
с 2005 года не работал с ado, но есть мысль, что можно поколупаться в направлении неких Prepare... т.к. легко вспоминается необходимость внесения изменений например в тот же InternalInitFieldDefs из ADODB (немного другая тема... да и базы были mssql) подспорьем в разбирательствах будет наличие у вас того же бесплатного BetterADO от http://betterado.hit.bg/ ... ну и msdn само собой... (посоветовал бы заглянуть и в исходники SDAC, но уже не принципиально) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 12:48 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTT Petro123автокоммит можно отключить свойствами ADO ( транзакции станут длиннее ) причём тут ADO? rowid вероятно из-за типа курсора для правки а не для чтения (можно отключить свойствами ADO ) причём тут ADO? Я выше писал, что это нашли и исправили. Причем тут ADO? Ни при чем. Косяк разработки. Вот если бы вы еще показали, как можно отключить свойствами ADO эти двойные разборы запросов, было бы совсем хорошо. Я собственно ради этого тему и открыл. - думаю, транзакции должны быть как можно короче (автокоммит сразу) - для вторичного парсинга надо убедится что приложение не отправляет запрос 2 раза тест - НОВЫЙ exe Код: plaintext 1. 2. 3. трейс1 сюда (хотя я в них несилён) Код: plaintext трейс2 сюда (хотя я в них несилён) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 12:59 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
- научи программистов делать трейс сразу справа на экране в динамике (в Oracle вроде проблема с этим). - будут знать, какие действия на сервере вызывает кнопка ТипКурсора в TADOQuery ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:02 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
- думаю, транзакции должны быть как можно короче (автокоммит сразу) Возможно, что в других базах это и так. В оракле - нет. Что касается теста, так именно подобные и проводили. И я уверен, что приложение именно отправляет запрос 2 раза (или больше - по ситуации). Один раз на разбор, а второй раз - на выполнение. Возможно ADO таким образом какие-то проверки проводит или что-то подобное. К сожалению, в базах отличных от оракла я ноль без палочки, поэтому не могу даже предположить, откуда такое поведение взялось у ADO. Может быть дело все в стремлении все сделать "универсально" для всех БД. - научи программистов делать трейс сразу справа на экране в динамике (в Oracle вроде проблема с этим). - будут знать, какие действия на сервере вызывает кнопка ТипКурсора в TADOQuery Попрошу. А что этот трэйс выводит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:09 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123- думаю, транзакции должны быть как можно короче (автокоммит сразу)1. Для Оракла это некритично. 2. Эта тема больше для другой конференции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:14 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTT - думаю, транзакции должны быть как можно короче (автокоммит сразу) Возможно, что в других базах это и так. В оракле - нет. Что касается теста, так именно подобные и проводили. И я уверен, что приложение именно отправляет запрос 2 раза (или больше - по ситуации). Один раз на разбор, а второй раз - на выполнение. Возможно ADO таким образом какие-то проверки проводит или что-то подобное. К сожалению, в базах отличных от оракла я ноль без палочки, поэтому не могу даже предположить, откуда такое поведение взялось у ADO. Может быть дело все в стремлении все сделать "универсально" для всех БД. - научи программистов делать трейс сразу справа на экране в динамике (в Oracle вроде проблема с этим). - будут знать, какие действия на сервере вызывает кнопка ТипКурсора в TADOQuery Попрошу. А что этот трэйс выводит? - а как же знаменитая ошибка про устаревший снимок? - приложение состоит из компонетов доступа и провайдера. Так надо узнать, компонент виноват (DevExpress|....) или провайдер (ADO). - в MS SQL Server есть Profiler, который показывает отправку на сервер того, что делаешь в проге на левой стороне экрана ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:21 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
>а как же знаменитая ошибка про устаревший снимок это немного из другой оперы. и эта ошибка считается косяком DBA а не разработчиков Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:25 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123- а как же знаменитая ошибка про устаревший снимок? - приложение состоит из компонетов доступа и провайдера. Так надо узнать, компонент виноват (DevExpress|....) или провайдер (ADO). - в MS SQL Server есть Profiler, который показывает отправку на сервер того, что делаешь в проге на левой стороне экрана Ошибка осталась (хоть и вероятность ее появления в оракле 9 и выше сильно уменьшилась), но как и раньше она - не ошибка сервера, а ошибка разработки/администрирования. Коммит - не средство ее устранения. Скорее даже наоборот. Ну и собственно сейчас речь же не об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:27 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123- а как же знаменитая ошибка про устаревший снимок? Как раз Ваш любимый автокоммит - лучший способ ее добиться. В целом, кстати, "знаменитая ошибка про устаревший снимок" - отличный способ отделить "слышавших звон". Petro123- приложение состоит из компонетов доступа и провайдера. Так надо узнать, компонент виноват (DevExpress|....) DevExpress?? Ну-ну. Petro123- в MS SQL Server есть Profiler, который показывает отправку на сервер того, что делаешь в проге на левой стороне экрана И? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:28 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
вообще вспомнается что пару лет назад были разговоры про то что ADO второе соединение открывает. но именно про соединение, не про запрос Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:38 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123 (ADO). - в MS SQL Server есть Profiler, который показывает отправку на сервер того, что делаешь в проге на левой стороне экрана Для Oracle есть OCIDebugger ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:38 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
ScareCrow вообще вспомнается что пару лет назад были разговоры про то что ADO второе соединение открывает. но именно про соединение, не про запрос Posted via ActualForum NNTP Server 1.4 У нас одно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:41 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Entaro Adun Petro123 (ADO). - в MS SQL Server есть Profiler, который показывает отправку на сервер того, что делаешь в проге на левой стороне экрана Для Oracle есть OCIDebugger Подробнее можно? Что именно он делает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:41 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Вы можете попытаться разобраться в происходящем, если настаиваете. Для этого потребуется влезть в OCI8. Алгоритм следующий: - ищете и находите в google средство трассировки OCI вызовов - запускаете OCI трассировщик - запускаете тестовый пример из под отладчика - включаете Oracle трассировку в сессии - проходитесь в отладчике по вызову TADODataSet.Open - далее сопоставляете вызовы ADO API, Oracle трассировку и OCI трассировку Далее вам будет ясно, какой вызов ADO API привел к каким вызовам OCI, и к чему они привели на сервере. Вот только хрен что вы с этим пониманием сделаете - продукт то закрытый. А то что Oracle OLEDB провайдер слишком умничает и мало контролируем - это факт практически установленный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:44 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Для Oracle есть OCIDebugger KoTTT Подробнее можно? Что именно он делает? Показывает все обращения к серверу. Домашняя сраничка вроде устарела, тут можно взять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:50 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievВот только хрен что вы с этим пониманием сделаете - продукт то закрытый. А то что Oracle OLEDB провайдер слишком умничает и мало контролируем - это факт практически установленный. Давайте поставим вопрос так: если ничего с таким поведением ADO мы сделать не в силах, то в какую сторону двигать разработчиков? На оракле написано, что под винду самый быстрый и "честный" метод - это OO4O. Because it is a native driver, OO4O generally provides the fastest performance on Windows clients to Oracle databases. It does not incur the overhead of ODBC and OLE DB drivers. OO4O has been developed and has evolved specifically for use with Oracle database servers. It provides easy access to features that are unique to Oracle, but are otherwise cumbersome or inaccessible to use from ODBC and OLE DB-based components, such as ADO. Но есть еще и такой момент, как затраты на переписывание готового кода с ADO на OO4O. Как я понимаю, там идеология абсолютно другая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:51 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
смею вас уверить что замедление как и ускорения от изменения драйвера вы не заметите. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:54 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
хоть кто-то подключился к разговору :) - что, красиво делать на клиенте beginTran и уйти обедать? Хотя это оффтоп - мне тоже нужно средство типа Profiler от MS. Оно идёт в составе сервера как SQLPlus и не требует запуска приложения под отладчиком. Как это сделать на Oracl'e (с минимальными напрягами?) ЗЫ. Просто так пенять на прова - незачем. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:56 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
ScareCrow смею вас уверить что замедление как и ускорения от изменения драйвера вы не заметите. Posted via ActualForum NNTP Server 1.4 Ну скорость в данном случае - действительно не самое главное. Какие еще есть варианты, кроме OO4O? ODP не подойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:57 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTTНо есть еще и такой момент, как затраты на переписывание готового кода с ADO на Имхо не все так страшно...) С BDE переходили,а это хужее - прогоняли исходники через PERL поправляя общие места, ну и естественно дотачивалось "напильником"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:58 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
ScareCrow смею вас уверить что замедление как и ускорения от изменения драйвера вы не заметите. Posted via ActualForum NNTP Server 1.4 +1 "разруха в головах а не клозетах" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 13:58 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123хоть кто-то подключился к разговору :) - что, красиво делать на клиенте beginTran и уйти обедать? Хотя это оффтоп - мне тоже нужно средство типа Profiler от MS. Оно идёт в составе сервера как SQLPlus и не требует запуска приложения под отладчиком. Как это сделать на Oracl'e (с минимальными напрягами?) ЗЫ. Просто так пенять на прова - незачем. Да хоть в другой город уехать :-) Про профайлер не до конца понятно. Что он делает? На какой стороне работает? Хотя это тоже оффтоп :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:00 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
>кроме OO4O? ODP ODAC Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:01 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Entaro Adun Для Oracle есть OCIDebugger KoTTT Подробнее можно? Что именно он делает? Показывает все обращения к серверу. Домашняя сраничка вроде устарела, тут можно взять битая ссылка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:03 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTTс ADO на OO4O. Как я понимаю, там идеология абсолютно другая? Правильно понимаете. Вам будет несравнимо более дешево и быстро перейти на одну из библиотек, названных в моем первом ответе вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:05 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123 ScareCrow смею вас уверить что замедление как и ускорения от изменения драйвера вы не заметите. +1 - 10. Кто больше ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:06 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
самое забавное, что он про скорость вообще ничего не говорит (это не главный критерий) Если ты сервер - несуетись под клиентом (с) ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:09 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev Вот вам картинка . Не как объективный критерий, а что бы понять порядок цифр при смене Oracle & ADO на одну из названных мною либ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:10 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTT Давайте поставим вопрос так: если ничего с таким поведением ADO мы сделать не в силах, то в какую сторону двигать разработчиков? это прерогатива менеджмента (там другие критерии) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:11 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123что он про скорость вообще ничего не говорит (это не главный критерий) Как же так, если он беспокоиться о лишней нагрузке на сервер ? Его как админа волнует масштабируемость приложения, а значит и скорость, в частности, при большом кол-ве клиентов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:13 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123 битая ссылка Действительно... http://mantiscorp.cjb.net домашней тоже нет, но нагуглить ее думаю можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:13 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev Dmitry Arefiev Вот вам картинка . Не как объективный критерий, а что бы понять порядок цифр при смене Oracle & ADO на одну из названных мною либ. второй критерий: - наличие разных методов и технологий в обёртке? (скока чел-час на переписывание 1000....строк кода) - наличие конвертера .... Ну а вдруг? Мелочь, а приятно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:16 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Entaro Adun Petro123 битая ссылка Действительно... http://mantiscorp.cjb.net домашней тоже нет, но нагуглить ее думаю можно а он не цепляется к приложению? т.е. просто показывает коннекты сервера и запросы по ним? Бесплатен или крякер искать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:19 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Аффтар! Вот у меня с ADO другая проблема(спроси у программёров) - как вернуть курсор на клиента из ХП обычными ADOQuery|Comman|Procedure ? Ни одного чела невидел в сети, кто это сделал ) Как у Вас там работает вообще :) ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:23 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123скока чел-час на переписывание 1000....строк кода Я вам так скажу. 1) Я конвертил мериады кода с BDE на AnyDAC, потом с AnyDAC на ADO, потом снова на AnyDAC. На хрена - не спрашивайте, не наше с вами дело :) Короче неделя в одном направлении с использованием конвертера. Думаю то же справедливо и для ODAC. 2) Про курсорные настройки ADO в случае с Oracle можно почти забыть. У него есть только один тип курсора. 3) Код, использующий API, потребуется конвертить 100% в ручную. 4) Во многие редактируемые запросы придется воткнуть ROWID, если это еще не сделано. Или компоненты XYZ начнут спрашивать про PK. 5) Возникнут расхождения между типами полей, возвращаемыми ADO и компонентами XYZ. В AnyDAC это решается тривиально. Как в ODAC - не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:33 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev про конвертеры пару строк плз. (что за продукт?) ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:40 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev 2) Про курсорные настройки ADO в случае с Oracle можно почти забыть. У него есть только один тип курсора. в том и фича, что есть только в API COM (CreateCOMObject(ADOCommand)). А в ADO - DBAware НЕТ ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:43 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123 Dmitry Arefiev 2) Про курсорные настройки ADO в случае с Oracle можно почти забыть. У него есть только один тип курсора. в том и фича, что есть только в API COM (CreateCOMObject(ADOCommand)). А в ADO - DBAware НЕТ ))) а..., ну да, есть для простых запросов, без ХП (или ХП pipeline) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:45 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123про конвертеры пару строк плз. (что за продукт?) Варианты: 1) Можно взять из AnyDAC поставки - хэнд мейд Tool\dfmChanger. Он имеет конфигурационный файл для BDE -> AnyDAC миграции. Можно под ADO настроить. 2) ADO -> AnyDAC миграция выполнялась совместно с парнями, у которых есть свой тул. Они же и писали конфигурационный файл. эти два варианта понимают минимальный толк в Pascal синтаксисе и умеют править Uses по ходу конвертации. 3) Есть еще и Linux утилита на пакетного поиска и замены. Имя - вылетело из головы. Думаю, можно и ее заточить под эту задачу. 4) Почти у всех производителей больших наборов компонентов есть аналогичные тулы. Так что, возможно у вас уже все есть под рукой :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:47 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro1232) Про курсорные настройки ADO в случае с Oracle можно почти забыть. У него есть только один тип курсора. Только LockType=ltBatchOptimistic представляет интерес. Так как это либо CachedUpdates либо нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:50 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev понял. Остался вопрос к Аффтару. Либу он настолько облегчил жизнь своему серверу, что у него нет ни одной ХП (БЛ на клиенте), либо ... ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 14:54 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Above Software - Effective Tracing Solution: session monitoring and tracing tool for ADO, Oracle and ODBC Бесплатно и эффективно. По поводу AutoCommit, но не в ADO, а например при использовании ODAC. В ODAC есть одноименные свойства (см. Help) они влияют на OCI_COMMIT_ON_SUCCESS. Использование режима OCI_COMMIT_ON_SUCCESS в вызове OCIExecute(), позволяет делать commit транзакции при успешном завершении данного оператора , избавляя тем самым от одного round-trip. Одиночные изменения базы данных - распространенное явление. при вызове PL/SQL процедуры, выполняющей целостную по логике серию обновлений базы, естественно использовать OCI_COMMIT_ON_SUCCESS (и никаких COMMIT/ROLLBACK) внутри хранимок. Это тоже частое явление. Случаев, когда целостная серия изменений выполняется отдельными операторами из кода Delphi, естественно без OCI_COMMIT_ON_SUCCESS, во-первых, гораздо меньше, во-вторых, их часто можно и нужно заменять хранимками с соответствующей бизнес логикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2007, 21:07 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
Petro123Остался вопрос к Аффтару. Либу он настолько облегчил жизнь своему серверу, что у него нет ни одной ХП (БЛ на клиенте), либо ... Вопрос к нашим разработчикам. Но, как я понял, вся работа ведется через простые операторы sql, без хранимых процедур. На этот момент я тоже уже обращал их внимание. Я хотел получить какой-то компромисс: улучшить работу с ораклом через ADO с минимальными изменениями в коде. Как уже вижу - задача невыполнимая. Теперь дело за разработчиками. А как именно они будут решать проблему - это уже не мое дело. Моя задача была помочь им в выборе пути решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2007, 03:58 |
|
||
|
ADO + Oracle + многократный парсинг
|
|||
|---|---|---|---|
|
#18+
KoTTT Petro123Остался вопрос к Аффтару. Либу он настолько облегчил жизнь своему серверу, что у него нет ни одной ХП (БЛ на клиенте), либо ... Вопрос к нашим разработчикам. Но, как я понял, вся работа ведется через простые операторы sql, без хранимых процедур. На этот момент я тоже уже обращал их внимание. Я хотел получить какой-то компромисс: улучшить работу с ораклом через ADO с минимальными изменениями в коде. Как уже вижу - задача невыполнимая. Теперь дело за разработчиками. А как именно они будут решать проблему - это уже не мое дело. Моя задача была помочь им в выборе пути решения. Привет! Я дико извиняюсь, а чем все же кончилась история с ADO + Oracle ?) Перешли на ODAC ? У нас сейчас (в 2020) возникла точно такая же проблема с добавлением ROWID чуть ли не во все запросы, Delphi XE + ADO + Oracle.OLEDB.1 + Oracle DB 19c. Только перешли с 11g, а там не так критичны видимо были эти добавления rowid везде и всюду. Посмотрел трейс файл, который нам выгрузили, там реально идет секция PARSING IN CURSOR ... обычный select, а потом следом идет другая секция PARSING IN CURSOR и уже тот же селект с добавлением table."ROWID" в запросе... Вопрос: поможет ли нам смена провайдера в нашем случае ? Как самым менее затратным способом победить эту проблему с добавлением Rowid ? Cпасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2020, 13:19 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2037961]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
63ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 408ms |

| 0 / 0 |
