|
|
|
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 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=35&tid=2037961]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
68ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
145ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 443ms |

| 0 / 0 |
