summaryrefslogtreecommitdiffstats
path: root/frontends/php/include/items.inc.php
diff options
context:
space:
mode:
authorsasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-01-09 12:29:56 +0000
committersasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-01-09 12:29:56 +0000
commit8434d0ec57d5d159708c53dc26158647ab1dfd0e (patch)
tree04c652f134cbc30c2e912ba48e182f7b20422abf /frontends/php/include/items.inc.php
parent3bc64851608177b353bf6576ffa2468167feb766 (diff)
downloadzabbix-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.php28
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;