PDA

View Full Version : Zabbix 1.8, тяжелый SQL запрос


vladimir_omsk
17-12-2009, 06:01
При попытке зайти в Мониторинг-Графики от юзера с гостевыми правами

SELECT g.*,hg.groupid,i.hostid FROM graphs g,graphs_items gi,items i,hosts_groups hg,rights r,users_groups ug WHERE (g.graphid/100000000000000) in (0) AND gi.graphid=g.graphid AND i.itemid=gi.itemid AND hg.hostid=i.hostid AND r.id=hg.groupid AND r.groupid=ug.usrgrpid AND ug.userid=8 AND r.permission>=2 AND NOT EXISTS( SELECT gii.graphid FROM graphs_items gii, items ii WHERE gii.graphid=g.graphid AND gii.itemid=ii.itemid AND EXISTS( SELECT hgg.groupid FROM hosts_groups hgg, rights rr, users_groups ugg WHERE ii.hostid=hgg.hostid AND rr.id=hgg.groupid AND rr.groupid=ugg.usrgrpid AND ugg.userid=8 AND rr.permission<2)) AND (hg.groupid IN (5)) AND (i.hostid IN (10125)) ORDER BY g.name ASC

Этот запрос занимает ядро проца целиком минут на 15....
Если таких запросов 4, то мой 4х ядерный сервак остается без проца...
А вот нельзя ли оптимизировать этот запрос ?

Это получается, ограничением прав теперь совсем пользоваться нельзя, всем full доступ делать чтоли ?

PS: FreeBSD 7.2-RELEASE-p4, PHP/5.2.10, postgresql 8.4.

Alexei
17-12-2009, 09:02
На нашей тестовой системе подобные запросы виполняются за 0.02 секунды. Postgresql 8.3.8, 10000 графиков, 600 пользователей. Может каких индексов не хватает?

sersad
18-12-2009, 14:45
Alexei, не могли бы вы выложить пример вашего конфиг файла Postgres SQL.