Измерение
Невозможно принимать информированные решения без информации. В большинстве баз данных предоставляется тот или иной способ регистрации времени выполнения SQL-запросов, так чтобы идентифицировать самые дорогостоящие операции. Приведем примеры:
• Ив Microsoft SQL Server, и в Oracle существуют средства и инструменты трассировки SQL для создания отчетов и анализа результатов трассировки. В Microsoft этот инструмент называют SQL Server Profiler, а в Oracle этот инструмент называют TKProf. Если вы ищете приложения для вашего андройда то скачать их бесплатно можно тут: http://apke.ru.
• В базах данных MySQL и PostgreSQL могут регистрировать запросы, время выполнения которых превышает заданный порог. В базе данных MySQL это журнал медленных запросов (slow query log), и его параметр конфигурации long_query_time по умолчанию установлен равным 10 секундам. В PostgreSQL существует аналогичная переменная конфигурации log_min_duration_statement.
В PostgreSQL также существует сопутствующее средство, называемое pgFouine, которое помогает анализировать журнал запросов и определять запросы, требующие особого внимания (pgfouine.projects.postgresql.org/).
Узнав, какие запросы выполняются дольше всего в приложении, можно понять, в каком месте следует сосредоточить усилия по оптимизации для получения максимального эффекта. Возможно, будет обнаружено, что все запросы работают эффективно за исключением одного запроса, являющегося узким местом. С этого запроса и следует начать оптимизацию.
Область наибольшей стоимости в приложении не обязательно является самым продолжительным по времени запросом, если этот запрос выполняется от случая к случаю. Другие, более простые запросы могут выполняться часто, гораздо чаще, чем можно было бы ожидать, поэтому на них приходится больше суммарного времени. Если уделить внимание оптимизации этих запросов, то получится больший экономический эффект.
Отключите все кэширование результатов запросов во время измерения производительности запросов. Данный тип кэша предназначен для обхода выполнения запроса и использования индексов, так что он не обеспечивает точного измерения.
Более точную информацию можно получить путем профилирования приложения после его развертывания. Соберите совокупные показатели о том, что выполняется программным кодом, когда реальные пользователи работают с приложением и когда задействована реальная база данных. Время от времени следует отслеживать данные профилирования, чтобы быть уверенным в том, что не возникло новое узкое место.
Не забудьте отключить или уменьшить скорость генерирования отчетов профайлерами после выполнения измерения, так как этими инструментами вносятся дополнительные служебные данные.
Опубликовал vovan666
July 19 2013 07:04:53 ·
0 Комментариев ·
4054 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.