DB Optimzier XE для разработчиков Delphi и C++Builder
Одна из предыдущих публикаций была посвящена мультиплатформенному средству администрирования баз данных DBArtisan XE. Этот инструмент является классическим примером «все-в-одном» и «все-что-нужно» для управления базами данных на различных платформах «из-одного-окна».
Но поистине животрепещущей проблемой (или просто задачей) для разработчиков систем на основе СУБД является оптимизация производительности. При современных аппаратных мощностях оптимизировать код клиентского приложения можно и нужно, но такая задача достаточно просто решается за счет а) правильного программирования б) привлечения средств профилирования и журналирования программного кода, таких как AQTime и CodeSite в составе Delphi XE и C++Builder XE.
Под «правильным программированием» подразумевается выполнение более-менее продуманных запросов с точки зрения объема возвращаемых наборов данных, а также ограничение числа открытых запросов/хранимых процедур. Следует также запускать «долгоиграющие» запросы в отдельном потоке и соблюдать типовые правила создания эргономичного интерфейса. Если прогнозируемая операция требует определенного времени на выполнение, то нужно эту ситуацию предвидеть и сделать правильное интерфейсное оформление:
1) песочные часы
2) анимированный индикатор прогресса выполнения
3) подтверждение на запуск
(сортировано по мере увеличения времени ожидания).
Средства профилирования и журналирования (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) обязательно найдется в вашем распоряжении ![]()


RSS Feed

April 19th, 2011 at 5:43 am
[...] с DBA, то покажите ему, как оптимизировать базы данных видео-обзор продукта DB Optimizer XE. Posted by Vsevolod Leonov on April 6th, 2011 under and [...]
April 19th, 2011 at 7:23 am
[...] БД; DB Optimizer - повышение производительности БД (видео-обзор на 14 мин.); DB ChangeManager - управление изменениями; Rapid SQL - [...]
June 3rd, 2011 at 8:54 am
[...] Данное решение сочетает в себе ряд продуктов DBArtisan, DB Optimizer, Rapid SQL, DB Change [...]
June 16th, 2011 at 8:22 am
[...] дармоеды (привет моему бывшему шефу), кто-то на оптимизации запросов к базам данных (контекстная реклама, ну вы понимаете). Нам же [...]
January 29th, 2012 at 10:31 am
… [Trackback] …
[...] There you will find 13583 more Infos: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …
February 3rd, 2012 at 3:56 am
… [Trackback] …
[...] Read More here: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …
February 11th, 2012 at 8:04 pm
… [Trackback] …
[...] Read More here: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …
February 12th, 2012 at 8:41 pm
… [Trackback] …
[...] Read More Infos here: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …
March 2nd, 2012 at 6:09 pm
… [Trackback] …
[...] Find More Informations here: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …
March 3rd, 2012 at 9:49 am
… [Trackback] …
[...] Read More Infos here: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …
March 8th, 2012 at 8:41 am
… [Trackback] …
[...] Informations on that Topic: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …
March 9th, 2012 at 4:22 pm
… [Trackback] …
[...] Read More: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …
March 9th, 2012 at 6:36 pm
… [Trackback] …
[...] Read More here: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …
March 10th, 2012 at 9:20 pm
… [Trackback] …
[...] Informations on that Topic: blogs.embarcadero.com/vsevolodleonov/2011/04/19/dboptimzierxedelphicbuilder/ [...] …