Оптимизация приложений для работы с СУБД InterBase - Всегда разрабатывайте программы для баз данных с использованием реальных данных
ОГЛАВЛЕНИЕ
Всегда разрабатывайте программы для баз данных с использованием реальных данных
Много проблем с производительностью возникает только тогда, когда база начинает заполняться, иногда даже переполняться, реальными данными при повседневной работе. Практически каждое приложение будет работать очень быстро с пустой базой данных. Разработчики затрачивают на формальное тестирование системы практически столько же времени, сколько тратится ими на активную разработку проекта, если не еще больше — это зависит от сложности системы. При использовании настоящих, так называемых "жизненных", данных в разработке вы можете столкнуться с проблемами производительности приложения уже на ранних этапах. И если для устранения узких мест понадобятся радикальные изменения в логике программы или в метаданных, это будет сделать намного проще именно на раннем этапе проектирования программы и базы данных.
Более того, убедитесь, что работаете с программой именно так, как делал бы это конечный пользователь. В проектах часто делается логическое разделение функций на функции пользователя и функции администратора. Кроме того, при работе простого пользователя на данные накладывается ряд существенных ограничений. На этапе тестирования программы разработчики и тестировщики пользуются правами администратора, чтобы можно было без лишнего труда проверить все функции программы как для администратора, так и для простого пользователя. Некоторые же проблемы производительности проявляются только тогда, когда пользователь входит в систему не как администратор, ведь тогда это требует выполнения некоторых дополнительных ограничений на доступ к данным, зачастую очень существенных. И только используя программу так, как будет с ней работать конечный пользователь (то есть проверяя работоспособность программы и как пользователь, и как администратор, строго разделяя сессии их работы), можно найти участки кода, ответственные за снижение производительности, и устранить их до того, как на них наткнется покупатель программы.
Использование базы данных, заполненной настоящими данными, заставляет программиста, как ни болезненно это бывает, испытать на своей шкуре положение пользователя при работе с программой. Если часть системы, написанной вами, не может работать достаточно продуктивно уже на этапе разработки, то, скорее всего, при повседневном использовании программы ситуация только ухудшится, и пользователь будет испытывать еще большие затруднения. Настоящая информация в БД и заставляет вас руководствоваться ранее упомянутым золотым правилом оптимизации. К примеру, таблица с названиями стран вряд ли будет очень большой, так как обычно содержит в себе порядка двух — двух с половиной сотен названий. Не стоит тратить время на оптимизацию работы с ней. Намного труднее определить, какие же из таблиц со временем приобретут очень большие размеры, особенно если исходить в своих рассуждениях из состояния пустой базы данных.
Кроме того, не стоит забывать, что отладка и тестирование сетевых приложений должны производиться с учетом передачи данных по сети, поэтому сервер должен находиться на отдельной машине в сети, а не на машине разработчика.