%20%D0%B8%20%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%BC%20%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE%D0%BC%20%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9%20(%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D1%86%D0%BE%D0%B2)%20%D0%B7%D0%B0%D0%B9%D0%BC%D0%B5%D1%82%20%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8%20%D0%B4%D0%BB%D1%8F%20%D0%B2%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%82%D0%B0%20SQL-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%3F%20.png)
Правда или ложь: таблица с большими записями (строками) из-за большого количества полей (столбцов) потребует больше времени для возврата SQL-запроса?
То есть, если у меня есть запрос SELECT ... WHERE... в SQL, который работает с таблицей, содержащей много полей и, следовательно, много строк с большими объемами данных, этот запрос SQL будет выполняться значительно медленнее или медленнее, чем тот же запрос SELECT/WHERE SQL, который работает с таблицей, содержащей меньше полей?
Я хочу получить точный ответ. Никаких "все зависит, почему бы вам не протестировать и не посмотреть" вещей. ;-) Я говорю, что это не имеет значения, если только вы не выберете какое-то абсурдное число, близкое к максимальному количеству полей, которые вы можете поддерживать в записи. Цель - SQL Server 2008. Спасибо.
EDIT: Я говорю о том, что таблица с полями «GUID», «NAME», «ADDRESS»… и 50 другими параметрами потребует больше времени для возврата запроса SELECT/WHERE ко второй таблице, содержащей только «GUID» и «NAME», при этом WHERE, конечно же, будет «= NAME» (и одинаковое количество строк, скажем, в обеих таблицах по 10000 строк).
решение1
Истинный
решение2
Сам выбор должен быть таким же, как и другие с аналогичными условиями в «меньших» таблицах; но передача данных с диска и по сети тоже занимает некоторое время, и на это определенно повлияет объем данных.
во многих (большинстве?) случаях, думал, время передачи данных намного меньше времени выбора записи. Если так, то влияние размера данных может быть незначительным.
решение3
Используйте свой мозг. Серьёзно. Упрощённые ответы не имеют смысла.
ЕСТЕСТВЕННО, это будет иметь значение, поскольку существует разница в вычислительной мощности и скорости передачи данных между 100 и 100 миллионами строк (и нет, 100 миллионов строк — это не абсурд — я запускаю запросы по 50–200 миллионов строк несколько раз в день).
Все начинается с объема пропускной способности памяти и не заканчивается чем-то таким простым, как пропускная способность NETOWRK — 10 строк содержат гораздо меньше данных, чем 10 миллионов, а сеть не имеет ограничений по объему передаваемых данных в секунду.
К вашему редактированию: Вы переходите от 3 полей к 53 в сравнении — посчитайте сами. Обычные сети должны пропускать 100 мегабайт в секунду. Так что да, естественно, это имеет значение. Вопрос в том, насколько это актуально. Но затем, эй, вы ясно даете понять, что вы не заинтересованы в реальном понимании проблемы, а хотите получить бинарный ответ «да/нет». Вы поняли.