|
|
|||||||||||||||||||||||||||||
|
DB Optimzier XE для разработчиков Delphi и C++BuilderИсточник: blogsembarcaderocom Vsevolod Leonov
Одна из предыдущих публикаций была посвящена мультиплатформенному средству администрирования баз данных DBArtisan XE. Этот инструмент является классическим примером "все-в-одном" и "все-что-нужно" для управления базами данных на различных платформах "из-одного-окна". Но поистине животрепещущей проблемой (или просто задачей) для разработчиков систем на основе СУБД является оптимизация производительности. При современных аппаратных мощностях оптимизировать код клиентского приложения можно и нужно, но такая задача достаточно просто решается за счет а) правильного программирования б) привлечения средств профилирования и журналирования программного кода, таких как AQTime и CodeSite в составе Delphi XE и C++Builder XE. Под "правильным программированием" подразумевается выполнение более-менее продуманных запросов с точки зрения объема возвращаемых наборов данных, а также ограничение числа открытых запросов/хранимых процедур. Следует также запускать "долгоиграющие" запросы в отдельном потоке и соблюдать типовые правила создания эргономичного интерфейса. Если прогнозируемая операция требует определенного времени на выполнение, то нужно эту ситуацию предвидеть и сделать правильное интерфейсное оформление: Средства профилирования и журналирования (logging) очень полезны при выполнении хронометража кода и выявления узких мест. На ранних стадиях разработки системы это бывает излишне, но по мере роста объема кода обойтись без интерактивных средств просто нельзя. Но это все касается именно работы клиентского приложения и рабочей станции пользователя. Другое дело - серверная часть системы, которая может испытывать значительные нагрузки при одновременном подключении большого числа пользователей. Представленный видео-обзор продукта DB Optimizer XE (14 минут) как раз и демонстрирует, как использовать профессиональное средство для повышения производительности баз данных, включая ситуации, когда используется несколько платформ баз данных одновременно. Нагрузки на базу данных неравномерны, причем непредсказуемо неравномерны вследствие значительной масштабируемости системы. Вот тут поистине DB Optimizer XE оказывает неоценимую помощь за счет возможности простой организации нагрузочного тестирования и последующего визуального анализа "кривой профилирования" и интерактивного плана выполнения. Кроме того, автоматически генерируются более производительные планы выполнения как за счет внедрения подсказок (hint injection), так и перефразирования проблемных SQL-запросов. Кстати, хотел рассказать вполне себе интересную историю. Она про разработчиков. Помимо разработки приходится еще и "присматривать" за чужими системами, внедренными в компанию. Как-то раз выяснилось, что система стала выносить мозг простым пользователям крайней неспешностью, вальяжностью и разнузданностью. Сами понимаете - та еще задачка. Одно дело - свою базу данных анализировать на предмет наличия отсутствия, а другое - чужая. Гений российских программистов победил, а большинство хранимых процедур были навсегда избавлены от курсоров, а наиболее нагруженные таблицы разжились индексами. Улучшенная система дала прикурить предыдущему варианту в полный рост: шутка ли - увеличение производительности на два порядка! Но зачем же проявлять свой гений, талант и смекалку в утомительном застировании чужой базы? DB Optimizer XE сразу даст вам рейтинг обнаглевших SQL-запросов, покажет "левые" индексы, предложит хорошие hint-ы и т.д. Вот уж тут учить DB Optimizer XE не надо: всё, что человечество считает эффективным способом повышения производительности баз данных, найдется без труда. Скачайте trial-версию DB Optimizer XE и попробуйте. Одна из четырех основных платформ (Oracle, DB2, Sybase, SQL Server) обязательно найдется в вашем распоряжении Ссылки по теме
|
|