Следуя странной ситуации, я получил вчера в c # при использовании SqlClient для получения отсортированного набора результатов.
В соответствии с SQL-запросом, например:
SELECT Num, Name FROM Customer WHERE Num LIKE '%V%' OR Name LIKE '%V%' ORDER BY Num ASC
Результирующий набор для заказа в этом особом случае имеет длину около 100 строк.
Проблема в следующем: если я запускаю запрос на самом sql-сервере, он чертовски быстр! Результат отображается практически в тот момент, когда я нажимаю «Запустить запрос». Но когда я запускаю запрос в C # с помощью SqlClient, он невероятно медленный (около 5-10 секунд). Я протестировал каждую маленькую часть моей программы и обнаружил, что соединение с sql-сервером происходит за 10 миллисекунд, поэтому проблема между двумя компьютерами не может быть проблемой.
Я пробовал почти все, пока не обнаружил, что запрос в C # с использованием SqlClient возвращает результаты почти так же быстро, как и выполнение запроса непосредственно на sql-сервере, если я удаляю из запроса ORDER BY Num ASC. *
Итак, мой вопрос: что, черт возьми, SqlClient в C # делает с ORDER BY, чтобы умножить используемое время на тысячи миллионов по сравнению с самим sql-сервером? =)