diff options
| author | sasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-01-09 12:29:56 +0000 |
|---|---|---|
| committer | sasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-01-09 12:29:56 +0000 |
| commit | 8434d0ec57d5d159708c53dc26158647ab1dfd0e (patch) | |
| tree | 04c652f134cbc30c2e912ba48e182f7b20422abf /frontends/php/include/items.inc.php | |
| parent | 3bc64851608177b353bf6576ffa2468167feb766 (diff) | |
| download | zabbix-8434d0ec57d5d159708c53dc26158647ab1dfd0e.tar.gz zabbix-8434d0ec57d5d159708c53dc26158647ab1dfd0e.tar.xz zabbix-8434d0ec57d5d159708c53dc26158647ab1dfd0e.zip | |
- [ZBX-250] speed improvement for Triggers when use "{ITEM.VALUE}" macro
[svn merge svn://svn.zabbix.com/branches/1.4 -r5230:5236]
git-svn-id: svn://svn.zabbix.com/trunk@5237 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/items.inc.php')
| -rw-r--r-- | frontends/php/include/items.inc.php | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/frontends/php/include/items.inc.php b/frontends/php/include/items.inc.php index e2c4365b..e1da2c2e 100644 --- a/frontends/php/include/items.inc.php +++ b/frontends/php/include/items.inc.php @@ -1192,8 +1192,7 @@ COpt::profiling_stop('prepare table'); * * Peremeters: * itemid - item ID - * index - 0 - last value, 1 - prev value, 2 - prev prev, and so on - * if index=0, clock is used + * last - 0 - last value (clock is used), 1 - last value * * Author: * Alexei Vladishev @@ -1201,7 +1200,7 @@ COpt::profiling_stop('prepare table'); * Comments: * */ - function item_get_history($db_item,$index = 1, $clock = 0) + function item_get_history($db_item, $last = 1, $clock = 0) { $value = NULL; @@ -1224,29 +1223,24 @@ COpt::profiling_stop('prepare table'); $table = "history_log"; break; } - if($index == 0) + if ($last == 0) { - $sql="select value from $table where itemid=".$db_item["itemid"]." and clock<=$clock order by clock desc"; - $result = DBselect($sql, 1); + $sql = "select value from $table where itemid=".$db_item["itemid"]." and clock=$clock"; $row = DBfetch(DBselect($sql, 1)); if($row) - { $value = $row["value"]; - } } else { - $sql="select value from $table where itemid=".$db_item["itemid"]." order by clock desc"; - $result = DBselect($sql, $index); - $num=1; - while($row = DBfetch($result)) + $sql = "select max(clock) as clock from $table where itemid=".$db_item["itemid"]; + $row = DBfetch(DBselect($sql)); + if ($row && !is_null($row["clock"])) { - if($num == $index) - { + $clock = $row["clock"]; + $sql = "select value from $table where itemid=".$db_item["itemid"]." and clock=$clock"; + $row = DBfetch(DBselect($sql, 1)); + if($row) $value = $row["value"]; - break; - } - $num++; } } return $value; |
