Здравствуйте, Философ, Вы писали: N>>Я SQL не использую, но всё равно интересно. Что, прямо таки можно написать запрос на SQL и на C# и второй вариант будет ощутимо быстрее? Ф>Для случая такого упоротого говна как SQLite это теоретически возможно. Для остальных СУБД — сомнительно.
Мне кажется, вы ответили на какой-то другой вопрос.
Основная разница между linq (который подразумевался под "написанием запросов на С#") и обычным порошком — в объёме кода.
В какой-то момент объём кода на "обычном порошке" становится настолько велик, что на него забивают, и упрощают себе задачу.
Например, ленятся сделать проекцию там, где нужна проекция — и тащат в память лишние данные.
Или, например, ленятся добавить доп.условие фильтра и фильтруют уже в памяти.
Или, например, ленятся сделать разные тексты запроса для разных комбинаций параметров, и СУБД приходится выбирать неудачный план запроса.
Linq позволяет все эти штуки делать лёгким движением руки, без многостраничного бойлерплейта. Это и приводит к тому, что приложение на его основе порождает более удачные запросы.
А что там внутри СУБД — это дело СУБД. Если СУБД — хорошая (а не SQLite), то она может воспользоваться более качественно подготовленным запросом.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.