|
ADO vs. ADO.NET
|
|||
---|---|---|---|
#18+
Начал постигать C# и ADO.NET. Вопрос такой, имеем идентичные приложения написаные на Delphi 6 и C#.NET. Оба работают с базой. Но ! В C# приложении запросы выполняются раза в 3 медленнее. Где Грабли ? C# Код: 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. 46. 47. 48. 49. 50. 51. 52.
Delphi Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Всё летает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2004, 08:37 |
|
ADO vs. ADO.NET
|
|||
---|---|---|---|
#18+
Dataset в ADO.NET и RecordSet в ADO - суть абсолютно разные вещи. Подробнее - см. различные статьи по сравнению ADO.NET и ADO, коих написано море. Кстати не путайте запросы к СУБД и различные операции в приложении. Запросы к СУБД в этих двух технологиях выполняются абсолютно одинаково с точки зрения скорости выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2004, 10:17 |
|
ADO vs. ADO.NET
|
|||
---|---|---|---|
#18+
Насколько я понял, Fill заполняет таблицу из результатов запроса ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2004, 10:29 |
|
ADO vs. ADO.NET
|
|||
---|---|---|---|
#18+
DataAdapter использует DataReader, для того чтобы заполнить DataTable|DataSet. В результате получаем отсоединненый набор данных. Кроме того вы используете, нетипизированный DataSet следовательно колосальное количество времени тратится на считывание схемы данных. Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2004, 13:35 |
|
ADO vs. ADO.NET
|
|||
---|---|---|---|
#18+
>Кроме того вы используете, нетипизированный DataSet следовательно >колосальное количество времени тратится на считывание схемы данных. А как ускорить весь процесс ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2004, 06:23 |
|
ADO vs. ADO.NET
|
|||
---|---|---|---|
#18+
Я все таки не уверен, по поводу корректности сравнивания ADO.NET и ADO. Уж слишком они разные. А как ускорить весь процесс ? Не считывать метаданные и например использовать типизированный DataSet. Думаю у вас будет исключение, при Fill: Код: plaintext 1. 2. 3. 4. 5. 6.
Как еще можно ускорить? на некоторых данных, помогает отключение ограничений (используем типизированный DataSet): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2004, 08:23 |
|
ADO vs. ADO.NET
|
|||
---|---|---|---|
#18+
Sa Не считывать метаданные и например использовать типизированный DataSet. Думаю у вас будет исключение, при Fill: Код: plaintext 1.
Попробовал. После добавления Код: plaintext 1.
"Missing the 'details' DataTable for the 'details' SourceTable." Если несложно, поясните пожалуйста как "Не считывать метаданные" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2004, 12:16 |
|
ADO vs. ADO.NET
|
|||
---|---|---|---|
#18+
Если несложно, поясните пожалуйста как "Не считывать метаданные" ? У вас так сейчас и стоит, но использовать при этом надо DataSet со схемой данных, например typed dataset. Тогда и не будет исключения. Вообще попробуйте в существующем коде, перед методом Fill использовать метод FillSchema. Время потраченное на FillSchema - это и будет время затраченное на считывание метаданных. Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2004, 13:33 |
|
|
start [/forum/topic.php?fid=17&fpage=127&tid=1354087]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
79ms |
get forum data: |
2ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 269ms |
0 / 0 |