0 / 0 / 0
Регистрация: 25.01.2017
Сообщений: 5
|
|||||||||||
1 | |||||||||||
Откуда такая разница в скорости выполнения кода?23.06.2017, 09:28. Показов 1144. Ответов 5
Метки нет (Все метки)
Добрый день! Очень хочется понять, почему происходит следующее:
Пишу код, который собирает данные из нескольких таблиц в одну, затем в цикле прохожу по всем строкам этой таблицы, анализируя ее же:
0
|
23.06.2017, 09:28 | |
Ответы с готовыми решениями:
5
Оптимальность кода по скорости выполнения Большая разница между POST и GET запросами в скорости? Упаковка и память. Разница скорости работы классов и структур Оптимизация скорости выполнения |
12081 / 8389 / 1282
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
23.06.2017, 09:33 | 2 |
dagdag, причина в 19-й строке. Вы запрос сформированный в первой строке заново перевыполняете в цикле, что выливается в новое обращение к базе на каждой итерации цикла с выгребанием данных.
0
|
0 / 0 / 0
Регистрация: 25.01.2017
Сообщений: 5
|
|
23.06.2017, 09:38 [ТС] | 3 |
Usaga, но 19я строка никуда не девается и во втором примере. в этом то и вопрос. почему она начинает работать в сотню (а может и больше) раз быстрее?
0
|
138 / 138 / 53
Регистрация: 14.06.2016
Сообщений: 467
|
|
23.06.2017, 09:43 | 4 |
Сообщение было отмечено dagdag как решение
Решение
потому что IEnumerable.Where использует локальную коллекцию для поиска, а IQueryable.Where делает запрос к бд
1
|
12081 / 8389 / 1282
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
23.06.2017, 09:44 | 5 |
dagdag, потому что в первом варианте за
query стоит механизм обращения к СУБД, который порождает новый запрос в 19-й строке. Во втором же случае, за query стоит перебиралка обычной коллекции уже загруженной в память, соответственно 19 строка делает дополнительный перебор (тоже не хорошо), но по уже имеющимся на клиенте данными.
0
|
0 / 0 / 0
Регистрация: 25.01.2017
Сообщений: 5
|
|
23.06.2017, 09:46 [ТС] | 6 |
Понял, спасибо! Буду знать!
0
|
23.06.2017, 09:46 | |
23.06.2017, 09:46 | |
Помогаю со студенческими работами здесь
6
Откуда взялась такая разница индексов ТИЦ и PR? Разница в скорости выполнения, итераторы Замер скорости выполнения участка кода Сравнение скорости выполнения кода в Си и Java Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |