Причины того, чтобы не увеличиться по сравнению с-?

Хотя представления могут скрыть сложность и несколько соединений, это сложность, которая была бы в SP так или иначе.

, Если SP, возможно, был оптимизирован, то представление должно быть оптимизировано, который привел бы к увеличенной производительности на всем SPS, которые поражают то представление.

Представления невероятно мощны и полезны по одной причине, которая выделяется, прежде всего, другие очень серьезные основания. Они уменьшают дублирование кода. Таким образом, в большинстве случаев, нижняя строка. Если запрос будет использоваться в трех или больше местах, то представление решительно упростит Ваши изменения, если схема или параметры запроса изменятся.

я когда-то должен был отредактировать 22 хранимых процедуры для изменения некоторой логики запроса. Если бы исходная архитектура использовала представления, то у меня было бы только три изменения.

7
задан Yuval Adam 2 November 2009 в 22:38
поделиться

4 ответа

Неудивительно, что все зависит от вашей проблемы. Если вы можете легко разделить его на подзадачи, которые мало общаются, масштабирование дает тривиальное ускорение. Например, поиск слова на 1 млрд веб-страниц может выполняться одной машиной, выполняющей поиск 1 млрд страниц, или 1 млн машин, выполняющих 1000 страниц каждая без значительной потери эффективности (то есть с ускорением в 1 000 000 раз). Это называется «досадно параллельным».

Однако другие алгоритмы требуют гораздо более интенсивного взаимодействия между частями. Ваш пример, требующий перекрестного анализа, является прекрасным примером того, как общение часто может заглушить прирост производительности от добавления дополнительных ящиков. В этих случаях вы захотите сохранить связь внутри (большего) блока, используя высокоскоростные межсоединения, а не что-то вроде ' common 'as (10-) Gig-E.

Конечно, это довольно теоретическая точка зрения. Другие факторы, такие как ввод-вывод, надежность, простота программирования (одна большая машина с общей памятью обычно дает намного меньше проблем, чем кластер), также могут иметь большое влияние.

Наконец, из-за (часто экстремального) рентабельность горизонтального масштабирования с использованием дешевого стандартного оборудования, кластерно-сеточный подход в последнее время привлекает гораздо больше (алгоритмических) исследований. Благодаря этому были разработаны новые способы распараллеливания, которые минимизируют обмен данными и, таким образом, работают намного лучше в кластере - тогда как общеизвестные знания подсказывали, что эти типы алгоритмов могут эффективно работать только на больших железных машинах ...

простота программирования (одна большая машина с общей памятью обычно доставляет намного меньше проблем, чем кластер) также может иметь большое влияние.

Наконец, из-за (часто экстремальных) затрат на масштабирование с использованием дешевого стандартного оборудования Кластерный / сеточный подход в последнее время привлекает гораздо больше (алгоритмических) исследований. Благодаря этому были разработаны новые способы распараллеливания, которые минимизируют обмен данными и, таким образом, работают намного лучше в кластере - тогда как общеизвестные знания подсказывали, что эти типы алгоритмов могут эффективно работать только на больших железных машинах ...

простота программирования (одна большая машина с общей памятью обычно доставляет намного меньше проблем, чем кластер) также может иметь большое влияние.

Наконец, из-за (часто экстремальных) затрат на масштабирование с использованием дешевого стандартного оборудования Кластерный / сеточный подход в последнее время привлекает гораздо больше (алгоритмических) исследований. Благодаря этому были разработаны новые способы распараллеливания, которые минимизируют обмен данными и, таким образом, работают намного лучше в кластере - тогда как общеизвестные знания подсказывали, что эти типы алгоритмов могут эффективно работать только на больших железных машинах ...

Кластерный / сеточный подход в последнее время привлекает гораздо больше (алгоритмических) исследований. Благодаря этому были разработаны новые способы распараллеливания, которые минимизируют обмен данными и, таким образом, работают намного лучше в кластере - тогда как общеизвестные знания подсказывали, что эти типы алгоритмов могут эффективно работать только на больших железных машинах ...

Кластерный / сеточный подход в последнее время привлекает гораздо больше (алгоритмических) исследований. Благодаря этому были разработаны новые способы распараллеливания, которые минимизируют обмен данными и, таким образом, работают намного лучше в кластере - тогда как общеизвестные знания подсказывали, что эти типы алгоритмов могут эффективно работать только на больших железных машинах ...

3
ответ дан 6 December 2019 в 09:20
поделиться

Поскольку масштабирование

  • в конечном итоге ограничено размером коробки, которую вы действительно можете купить
  • Может стать чрезвычайно экономически неэффективным, например, машина со 128 ядрами и 128 Гб оперативной памяти значительно дороже дороже, чем 16 с 8 ядрами и 8 Гбайт каждое.
  • Некоторые вещи плохо масштабируются, например операции чтения ввода-вывода.
  • При горизонтальном масштабировании, если ваша архитектура правильная, вы также можете достичь высокой доступности. 128-ядерная машина с оперативной памятью 128 Гбайт очень дорога, но иметь второй резервный - грабитель.

И также в некоторой степени, потому что это то, что делает Google.

6
ответ дан 6 December 2019 в 09:20
поделиться

Масштабирование лучше всего подходит для досадно параллельных задач. Это требует некоторой работы, но ряд веб-сервисов соответствуют этой категории (следовательно, текущей популярности). В противном случае вы столкнетесь с законом Амдала , что означает, что для увеличения скорости вы должны увеличивать масштаб, а не увеличивать его. Я подозреваю, что вы столкнулись с этой проблемой. Кроме того, операции с привязкой к вводу-выводу также хорошо справляются с масштабированием, поскольку ожидание ввода-вывода увеличивает процент распараллеливания.

6
ответ дан 6 December 2019 в 09:20
поделиться

В сообщении блога Масштабирование против горизонтального масштабирования: скрытые затраты Джеффа Этвуда есть несколько интересных моментов, которые следует учитывать, например, лицензирование программного обеспечения и стоимость электроэнергии.

5
ответ дан 6 December 2019 в 09:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: