ризнаки масштабируемости приложения
Создание масштабируемых приложений - это тяжелая работа. Она гораздо сложнее, чем все то, что можно решить при помощи советов, изложенных на паре страниц. Но вы, наверное, уже обратили внимание на то, что существуют два утверждения о производительности Oracle, которые я считаю непреложными истинами:
Работа большинства систем обеспечивается большим количеством оборудования; они работают медленно из-за ненужных трат ресурсов.
Экономически гораздо эффективнее избавиться от бессмысленных трат, чем пытаться уйти от проблемы, наращивая мощность оборудования.
Я утверждаю, что при создании быстрого масштабируемого приложения следует придерживаться Золотого Правила Разработки Приложений:
Не заставляйте приложение выполнять никакие операции, кроме абсолютно необходимых.
Так, конечно, может рассуждать только лентяй, и не такому отношению к труду нас учили наши папы и мамы. Но приложение становится медленным, немасштабируемым (что не одно и то же [Millsap (2001a)]) и в конце концов экономически неэффективным именно потому, что делает то, в чем нет необходимости. Приведу несколько советов, призванных немного конкретизировать наше Золотое Правило:
Не формируйте отчеты, которые никто не читает.
Не формируйте больше выходных данных, чем необходимо.
Выполняйте бизнес-операции не чаще, чем этого требует бизнес.
Избегайте конструкций SQL, которые обращаются к большему количеству блоков кэша буферов базы данных, чем это необходимо.
Не изменяйте значение столбца на значение, совпадающее с текущим.
Передавайте данные приложению по мере их готовности и не заставляйте его периодически спрашивать, нет ли для него какой-нибудь работы.
Не формируйте данные отката и восстановления, если не планируете воспользоваться обеспечиваемыми ими возможностями.
Не разбирайте команды SQL, если возможен предварительный разбор с последующим их совместным использованием.
Не обрабатывайте DML построчно, применяйте выборки массивом, пакетные вставки и т. д.
Не блокируйте данные чаще и дольше, чем это абсолютно необходимо.
Не претендуя на полноту списка, я все же верю, что он поможет вам осознать, как должно выглядеть не страдающее избыточным весом приложение.
< Предыдущая | Следующая > |
---|