|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
Всем доброго времени суток! Может веткой ошибся, если что - модераторы, перенесите, пожалуйста, в Firebird. Изучаю ADO.NET по книге Д. Сеппа, но только пользуюсь БД Firebird, соответственно и немного другими компонентами доступа. Так вот, в книге написано, что DataReader исаользуется только для чтения и он быстрее, чем DataAdapter, который и читает и пишет данные в базу. Имею такой код: Запрос в БД Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
У меня DataAdapter загружает таблицу за ~2564 мс, а DataReader за ~4599. Почему так? Так же не должно быть, или я неправильно все понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 11:19 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
Сколько записей в талице, которые грузятся за такое время? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 11:32 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
Ролг Хупин, 19 строк и 15 полей, включая блоб(фото), база удаленная, через впн. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 11:43 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
afordУ меня DataAdapter загружает таблицу за ~2564 мс, а DataReader за ~4599. Почему так? Так же не должно быть, или я неправильно все понял?Исключите для начала BLOB-поля из select-запроса. Тогда скорее всего между DataAdapter и DataReader на 19-ти записях вообще не будет разницы ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 12:12 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
afordРолг Хупин, 19 строк и 15 полей, включая блоб(фото), база удаленная, через впн. 1.как было рекомендовано выше - уберите блобы для замеров. 2. Чего вы хотите добиться на 19 записях? 3. Вы пробовали сделать замеры подряд раз 10? 4. Почему вы исключаете на 19 записях и 2-4 секундах фактор впн, сети? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 12:16 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
Shocker.Pro, запрос "select user_id from table": adapter: 168 мсек reader: 281 мсек Может я неправильно понимаю разницу между объектами? Почему DataReader зачастую сравнивается с DataTable в той же книге, а не с DataAdapter? Чем больше вникаю - тем больше путанницы. А может дело в том, как эти объекты реализованы в FirebirdSql.Data.FirebirdClient, я ж не замерял скорость у стандартных... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 12:21 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
Ролг Хупин, 1) Убрал - адаптер все равно быстрее. 2) 19 записей для теста, полная таблица, где записей всего то около 3500 тыс грузится очень долго (блоб поля) 3) Adapter 224 178 161 163 176 330 173 280 170 164 300 235 168 167 166 208 169 152 167 Reader391 313 369 389 393 384 1354 891 813 415 311 299 323 303 303 288 390 328 295 4) Datareader и Adapter по-разному взаимодействуют с впн? Я как-то в ступоре уже)) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 12:42 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
aford, да написано... но про другое... Если вам интересно - смотрите реализацию Fill адаптера и Load дататабла. Может там и перегрузки есть... смотрите параметры... и тест у вас - грязноват ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 13:47 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
aford, попробуйте для начала заменить Код: c# 1.
на Код: c# 1.
Т.е. выбрать первые 5000 строк из таблицы. Id - в данном примере название колонки. Замените его на актуальное значение. Вроде такой синтаксис поддерживает Firebird. https://scott.yang.id.au/2004/01/limit-in-select-statements-in-firebird.html Увеличивайте количество строк пока время выполнения не превысит хотя бы 1 минуту. Тогда уже можно будет сравнивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 13:56 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
SirYouGin, да тут еще вопрос в методике проверки и где объявлен dt... не удивлюсь, что сперва его филят, а потом в него же лоадят... И вот она веселуха Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 14:08 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
А вот филл работает несколько иначе... В такого рода тесте вообще нет выгоды в использовании реадера ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 14:13 |
|
C# FbDataReader и FbDataAdapter, что быстрее
|
|||
---|---|---|---|
#18+
afordв книге написано, что DataReader ... быстрее, чем DataAdapter Имеется в виду, что ридер будет использовать следующим образом: Код: c# 1. 2. 3. 4. 5. 6. 7.
А dt.Load(dr) - это использование DataTable, который известный тормозилка. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2019, 14:43 |
|
|
start [/forum/topic.php?fid=20&msg=39849673&tid=1398842]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 264ms |
0 / 0 |