adodb.inc.php 下载,adodb-perf.inc.php 源代码在线查看 - asterisk用 的voip记费软件 资源下载 虫虫电子下载站...

if ($totalreturn 100*($d_user+$d_nice+$d_system)/$total; }}function Tracer($sql){ $perf_table = adodb_perf::table();$saveE = $this->conn->fnExecute;$this->conn->fnExecute = false;global $ADODB_FETCH_MODE;$save = $ADODB_FETCH_MODE;$ADODB_FETCH_MODE = ADODB_FETCH_NUM;if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false);$sqlq = $this->conn->qstr($sql);$arr = $this->conn->GetArray("select count(*),tracer from $perf_table where sql1=$sqlq group by tracerorder by 1 desc");$s = '';if ($arr) {$s .= 'Scripts Affected';foreach($arr as $k) {$s .= sprintf("%4d",$k[0]).'   '.strip_tags($k[1]).'';}}if (isset($savem)) $this->conn->SetFetchMode($savem);$ADODB_CACHE_MODE = $save;$this->conn->fnExecute = $saveE;return $s;}/* Explain Plan for $sql.If only a snippet of the $sql is passed in, then $partial will hold the crc32 of the actual sql.*/function Explain($sql,$partial=false){return false;}function InvalidSQL($numsql = 10){if (isset($_GET['sql'])) return;$s = 'Invalid SQL';$saveE = $this->conn->fnExecute;$this->conn->fnExecute = false; $perf_table = adodb_perf::table();$rs =& $this->conn->SelectLimit("select distinct count(*),sql1,tracer as error_msg from $perf_table where tracer like 'ERROR:%' group by sql1,tracer order by 1 desc",$numsql);//,$numsql);$this->conn->fnExecute = $saveE;if ($rs) {$s .= rs2html($rs,false,false,false,false);} elsereturn "$this->helpurl. ".$this->conn->ErrorMsg()."";return $s;}/*This script identifies the longest running SQL*/function _SuspiciousSQL($numsql = 10){global $ADODB_FETCH_MODE; $perf_table = adodb_perf::table();$saveE = $this->conn->fnExecute;$this->conn->fnExecute = false;if (isset($_GET['exps']) && isset($_GET['sql'])) {$partial = !empty($_GET['part']);echo "".$this->Explain($_GET['sql'],$partial)."\n";}if (isset($_GET['sql'])) return;$sql1 = $this->sql1;$save = $ADODB_FETCH_MODE;$ADODB_FETCH_MODE = ADODB_FETCH_NUM;if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false);//$this->conn->debug=1;$rs =& $this->conn->SelectLimit("select avg(timer) as avg_timer,$sql1,count(*),max(timer) as max_timer,min(timer) as min_timerfrom $perf_tablewhere {$this->conn->upperCase}({$this->conn->substr}(sql0,1,5)) not in ('DROP ','INSER','COMMI','CREAT')and (tracer is null or tracer not like 'ERROR:%')group by sql1order by 1 desc",$numsql);if (isset($savem)) $this->conn->SetFetchMode($savem);$ADODB_FETCH_MODE = $save;$this->conn->fnExecute = $saveE;if (!$rs) return "$this->helpurl. ".$this->conn->ErrorMsg()."";$s = "Suspicious SQLThe following SQL have high average execution timesAvg TimeCountSQLMaxMin\n";$max = $this->maxLength;while (!$rs->EOF) {$sql = $rs->fields[1];$raw = urlencode($sql);if (strlen($raw)>$max-100) {$sql2 = substr($sql,0,$max-500);$raw = urlencode($sql2).'&part='.crc32($sql);}$prefix = "";$suffix = "";if ($this->explain == false || strlen($prefix)>$max) {$suffix = ' ... String too long for GET parameter: '.strlen($prefix).'';$prefix = '';}$s .= "".adodb_round($rs->fields[0],6)."".$rs->fields[2]."".$prefix.htmlspecialchars($sql).$suffix.""."".$rs->fields[3]."".$rs->fields[4]."";$rs->MoveNext();}return $s."";}function CheckMemory(){return '';}function SuspiciousSQL($numsql=10){return adodb_perf::_SuspiciousSQL($numsql);}function ExpensiveSQL($numsql=10){return adodb_perf::_ExpensiveSQL($numsql);}/*This reports the percentage of load on the instance due to the most expensive few SQL statements. Tuning these statements can often make huge improvements in overall system performance. */function _ExpensiveSQL($numsql = 10){global $ADODB_FETCH_MODE; $perf_table = adodb_perf::table();$saveE = $this->conn->fnExecute;$this->conn->fnExecute = false;if (isset($_GET['expe']) && isset($_GET['sql'])) {$partial = !empty($_GET['part']);echo "".$this->Explain($_GET['sql'],$partial)."\n";}if (isset($_GET['sql'])) return;$sql1 = $this->sql1;$save = $ADODB_FETCH_MODE;$ADODB_FETCH_MODE = ADODB_FETCH_NUM;if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false);$rs =& $this->conn->SelectLimit("select sum(timer) as total,$sql1,count(*),max(timer) as max_timer,min(timer) as min_timerfrom $perf_tablewhere {$this->conn->upperCase}({$this->conn->substr}(sql0,1,5)) not in ('DROP ','INSER','COMMI','CREAT')and (tracer is null or tracer not like 'ERROR:%')group by sql1having count(*)>1order by 1 desc",$numsql);if (isset($savem)) $this->conn->SetFetchMode($savem);$this->conn->fnExecute = $saveE;$ADODB_FETCH_MODE = $save;if (!$rs) return "$this->helpurl. ".$this->conn->ErrorMsg()."";$s = "Expensive SQLTuning the following SQL could reduce the server load substantiallyLoadCountSQLMaxMin\n";$max = $this->maxLength;while (!$rs->EOF) {$sql = $rs->fields[1];$raw = urlencode($sql);if (strlen($raw)>$max-100) {$sql2 = substr($sql,0,$max-500);$raw = urlencode($sql2).'&part='.crc32($sql);}$prefix = "";$suffix = "";if($this->explain == false || strlen($prefix>$max)) {$prefix = '';$suffix = '';}$s .= "".adodb_round($rs->fields[0],6)."".$rs->fields[2]."".$prefix.htmlspecialchars($sql).$suffix.""."".$rs->fields[3]."".$rs->fields[4]."";$rs->MoveNext();}return $s."";}/*Raw function to return parameter value from $settings.*/function DBParameter($param){if (empty($this->settings[$param])) return false;$sql = $this->settings[$param][1];return $this->_DBParameter($sql);}/*Raw function returning array of poll paramters*/function &PollParameters(){$arr[0] = (float)$this->DBParameter('data cache hit ratio');$arr[1] = (float)$this->DBParameter('data reads');$arr[2] = (float)$this->DBParameter('data writes');$arr[3] = (integer) $this->DBParameter('current connections');return $arr;}/*Low-level Get Database Parameter*/function _DBParameter($sql){$savelog = $this->conn->LogSQL(false);if (is_array($sql)) {global $ADODB_FETCH_MODE;$sql1 = $sql[0];$key = $sql[1];if (sizeof($sql)>2) $pos = $sql[2];else $pos = 1;if (sizeof($sql)>3) $coef = $sql[3];else $coef = false;$ret = false;$save = $ADODB_FETCH_MODE;$ADODB_FETCH_MODE = ADODB_FETCH_NUM;if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false);$rs = $this->conn->Execute($sql1);if (isset($savem)) $this->conn->SetFetchMode($savem);$ADODB_FETCH_MODE = $save;if ($rs) {while (!$rs->EOF) {$keyf = reset($rs->fields);if (trim($keyf) == $key) {$ret = $rs->fields[$pos];if ($coef) $ret *= $coef;break;}$rs->MoveNext();}$rs->Close();}$this->conn->LogSQL($savelog);return $ret;} else {if (strncmp($sql,'=',1) == 0) {$fn = substr($sql,1);return $this->$fn();}$sql = str_replace('$DATABASE',$this->conn->database,$sql);$ret = $this->conn->GetOne($sql);$this->conn->LogSQL($savelog);return $ret;}}/*Warn if cache ratio falls below threshold. Displayed in "Description" column.*/function WarnCacheRatio($val){if ($val < $this->warnRatio) return 'Cache ratio should be at least '.$this->warnRatio.'%';else return '';}/***********************************************************************************************/// HIGH LEVEL UI FUNCTIONS/***********************************************************************************************/function UI($pollsecs=5){ $perf_table = adodb_perf::table();$conn = $this->conn;$app = $conn->host;if ($conn->host && $conn->database) $app .= ', db=';$app .= $conn->database;if ($app) $app .= ', ';$savelog = $this->conn->LogSQL(false);$info = $conn->ServerInfo();if (isset($_GET['clearsql'])) {$this->conn->Execute("delete from $perf_table");}$this->conn->LogSQL($savelog);// magic quotesif (isset($_GET['sql']) && get_magic_quotes_gpc()) {$_GET['sql'] = $_GET['sql'] = str_replace(array("\\'",'\"'),array("'",'"'),$_GET['sql']);}if (!isset($_SESSION['ADODB_PERF_SQL'])) $nsql = $_SESSION['ADODB_PERF_SQL'] = 10;else $nsql = $_SESSION['ADODB_PERF_SQL'];$app .= $info['description'];if (isset($_GET['do'])) $do = $_GET['do'];else if (isset($_POST['do'])) $do = $_POST['do']; else if (isset($_GET['sql'])) $do = 'viewsql'; else $do = 'stats'; if (isset($_GET['nsql'])) {if ($_GET['nsql'] > 0) $nsql = $_SESSION['ADODB_PERF_SQL'] = (integer) $_GET['nsql'];}echo "ADOdb Performance Monitor on $app";if ($do == 'viewsql') $form = "# SQL: ";else $form = " ";$allowsql = !defined('ADODB_PERF_NO_RUN_SQL');if (empty($_GET['hidem']))echo "ADOdb Performance Monitor for $appPerformance Stats   View SQL   View Tables   Poll Stats", $allowsql ? '   Run SQL' : '', "$form", ""; switch ($do) {default:case 'stats':echo $this->HealthCheck();//$this->conn->debug=1;echo $this->CheckMemory();break;case 'poll':echo "src=\"{$_SERVER['PHP_SELF']}?do=poll2&hidem=1\">";break;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值