Базите данни са свързани с заявки. Вие съхранявате данните си в тях и след това трябва да можете да ги извлечете по някакъв начин. Тук идват заявките - пишете ги на някакъв език, структуриран или не, по този начин определяте какви данни искате да извлечете. В идеалния случай тези заявки биха били бързи, в крайна сметка не искаме да чакаме нашите данни. Има много инструменти, които ви позволяват да разберете как се държат вашите заявки и как се изпълняват. В тази публикация в блога ще сравним pgDash и ClusterControl. И в двата случая ефективността на заявката е само част от функционалността. Без повече дължими нека ги разгледаме.
Какво е pgDash?
pgDash е инструмент, предназначен за наблюдение на PostgreSQL и наблюдението на производителността на заявката е една от наличните функционалности.
pgDash изисква pg_stat_statements, за да получи данните. Възможно е да се показват заявки за база данни. Можете да дефинирате кои колони трябва да се виждат (по подразбиране някои от тях не се показват, за да улесните четенето на данните). Можете да видите множество типове данни като време за изпълнение (средно, максимално, мин., общо), но също така и информация за временни блокове, редове, до които е достъпен, достъп до диск и удар в буфера. Това създава добра представа за това как се изпълнява дадена заявка и каква може да е причината тя да не се изпълнява по ефективен начин. Можете да сортирате данните, като използвате всяка колона, търсейки заявки, които например са най-бавните или които записват най-много временни блокове.
Ако е необходимо, можете да търсите заявки, изпълнени в определен времеви прозорец.
Тук детайлността е една минута.
За всяка заявка в списъка можете да щракнете и да видите по-подробна статистика.
Можете да видите точната заявка, някои данни за нея (достъп до диска, достъп до споделен буфер, достъп до временни блокове). Възможно е също да активирате тестване и съхраняване на плана за изпълнение на заявките. Накрая можете да видите графиките, показващи как ефективността на заявката се е променила във времето.
Като цяло pgDash представя хубава представа за показателите за ефективност на заявката в PostgreSQL.
Наблюдение и управление на заявки в ClusterControl PostgreSQL
ClusterControl идва с Query Monitor, който има за цел да даде на потребителите представа за ефективността на техните заявки. Query Monitor може да се използва за PostgreSQL, но също и за MySQL и Galera Cluster.
ClusterControl показва данни, обобщени във всички бази данни и хостове в клъстера. Списъкът със заявки съдържа информация за показатели, свързани с производителността. Брой събития, проверени редове, временни таблици, максимално, средно и общо време за изпълнение. Списъкът може да бъде сортиран с помощта на някои от колоните (случаи, максимум, средна стойност, стандартно отклонение и общо време за изпълнение).
Върху всяка заявка може да се щракне, показва пълния текст на заявката, някои допълнителни подробности и общи съвети за оптимизация.
ClusterControl също идва с модула Query Outliers.
Ако има някакви заявки, които се отклоняват от средната ефективност на тази конкретна заявка тип, те ще бъдат показани в този раздел, което позволява на потребителя да разбере по-добре кои заявки се държат непоследователно и да се опита да открие основната причина за това.
Показатели за таблица и индекс на PostgreSQL
Освен данните, пряко свързани с ефективността на заявката, и двата инструмента предоставят информация за други вътрешни елементи, които могат да повлияят на ефективността на заявката.
pgDash има раздел „Инструменти“, в който можете да събирате информация за индекси, размер на таблицата и раздуване:
Подобни данни са налични в ClusterControl, в Статистика на заявките:
Възможно е да проверите I/O статистиката за таблица и индекси, раздуване на таблица и индекс, неизползвани или дублирани индекси. Можете също да проверите кои таблици е по-вероятно да бъдат достъпни чрез индексно или последователно сканиране. Можете също така да проверите размера на най-големите таблици и бази данни.
Заключение
Надяваме се, че този кратък блог ви дава представа за това как ClusterControl се сравнява с pgDash във функции, свързани с производителността на заявките. Моля, имайте предвид, че ClusterControl има за цел не само да ви помогне с мониторинг на производителността, но също така да изгради и разгърне HA стекове за множество бази данни с отворен код, да извършва управление на конфигурацията, да дефинира и изпълнява графици за архивиране и много други функции. Ако се интересувате от ClusterControl, можете да го изтеглите безплатно.