diff --git a/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java b/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java
index 6fafeaf50f..b70f6e900e 100644
--- a/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java
+++ b/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java
@@ -1,6 +1,8 @@
package com.alibaba.druid.support.http;
import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
@@ -36,6 +38,7 @@ public class StatViewServlet extends HttpServlet {
private static JSONDruidStatService jsonDruidStatService = JSONDruidStatService.getInstance();
public String templatePage;
+ private static DateFormat format = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss:SSS");
public void init() throws ServletException {
try {
@@ -121,9 +124,29 @@ public class StatViewServlet extends HttpServlet {
content.append("
");
content.append("
API:com.alibaba.druid.sql.SQLUtils.format(sql,DBType);
");
content.append("
");
+<<<<<<< HEAD
List statementList = SQLUtils.parseStatements((String) sqlStat.get("SQL"),
(String) sqlStat.get("DbType"));
+=======
+
+ if (sqlStat.getLastSlowParameters() != null && sqlStat.getLastSlowParameters().trim().length() > 0) {
+ content.append("LastSlow SQL View:
");
+ content.append("");
+ content.append("");
+ content.append("| MaxTimespanOccurTime | ");
+ content.append("" + format.format(sqlStat.getExecuteNanoSpanMaxOccurTime()) + " | ");
+ content.append("
");
+ content.append("");
+ content.append("| LastSlowParameters | ");
+ content.append("" + sqlStat.getLastSlowParameters() + " | ");
+ content.append("
");
+ content.append("
");
+ content.append("
");
+ }
+
+ List statementList = SQLUtils.parseStatements(sqlStat.getSql(), sqlStat.getDbType());
+>>>>>>> e5365eae94e50a7b51cd1d1ab2ed0cd029738eb4
if (!statementList.isEmpty()) {
content.append("Parse View:
");
diff --git a/src/main/java/com/alibaba/druid/util/ReflectionUtils.java b/src/main/java/com/alibaba/druid/util/ReflectionUtils.java
index 9984752e89..81943a893b 100644
--- a/src/main/java/com/alibaba/druid/util/ReflectionUtils.java
+++ b/src/main/java/com/alibaba/druid/util/ReflectionUtils.java
@@ -20,7 +20,7 @@ public class ReflectionUtils {
try {
result = HttpServletRequest.class.getClassLoader().loadClass(className);
} catch (ClassNotFoundException e) {
- LOG.warn(e.getMessage(), e);
+ if (LOG.isDebugEnabled()) LOG.debug(e.getMessage(), e);
}
if (result == null) {
try {
@@ -33,7 +33,6 @@ public class ReflectionUtils {
}
public static Object callStaticMethod(Class> classObject, String methodName) {
-
try {
Method m = classObject.getMethod(methodName);
return m.invoke(classObject);
diff --git a/src/main/resources/support/http/resources/js/sql.js b/src/main/resources/support/http/resources/js/sql.js
index 02172ba557..ef769229b8 100644
--- a/src/main/resources/support/http/resources/js/sql.js
+++ b/src/main/resources/support/http/resources/js/sql.js
@@ -94,6 +94,7 @@ function ajaxResponseForDataSourceSqlStatInfo() {
for ( var i = 0; i < sqlStatList.length; i++) {
var sqlStat = sqlStatList[i];
var newRow = sqlStatTable.insertRow(-1);
+ newRow.insertCell(-1).innerHTML = i+1;
newRow.insertCell(-1).innerHTML = '' + subSqlString(sqlStat.SQL, 25) + '';
// if (sqlStat.File)
// newRow.insertCell(-1).innerHTML = sqlStat.File;
@@ -105,7 +106,12 @@ function ajaxResponseForDataSourceSqlStatInfo() {
// newRow.insertCell(-1).innerHTML = '';
newRow.insertCell(-1).innerHTML = sqlStat.ExecuteCount;
newRow.insertCell(-1).innerHTML = sqlStat.TotalTime;
- newRow.insertCell(-1).innerHTML = sqlStat.MaxTimespan;
+ //显示执行的时间比配置的均值时间慢的SQL链接
+ var lastSlowHtml = sqlStat.MaxTimespan;
+ if(sqlStat.LastSlowParameters!=null&&sqlStat.LastSlowParameters.length>0){
+ lastSlowHtml =''+sqlStat.MaxTimespan+'';
+ }
+ newRow.insertCell(-1).innerHTML = lastSlowHtml;
newRow.insertCell(-1).innerHTML = sqlStat.InTransactionCount;
newRow.insertCell(-1).innerHTML = sqlStat.ErrorCount;
newRow.insertCell(-1).innerHTML = sqlStat.EffectedRowCount;
@@ -120,8 +126,8 @@ function ajaxResponseForDataSourceSqlStatInfo() {
// hiHtml += 'ExecAndRsHold';
newRow.insertCell(-1).innerHTML = '[' + sqlStat.Histogram + ']';
+ newRow.insertCell(-1).innerHTML = '[' + sqlStat.ExecuteAndResultHoldTimeHistogram + ']';
newRow.insertCell(-1).innerHTML = '[' + sqlStat.FetchRowCountHistogram + ']';
newRow.insertCell(-1).innerHTML = '[' + sqlStat.EffectedRowCountHistogram + ']';
- newRow.insertCell(-1).innerHTML = '[' + sqlStat.ExecuteAndResultHoldTimeHistogram + ']';
}
}
\ No newline at end of file
diff --git a/src/main/resources/support/http/resources/sql.html b/src/main/resources/support/http/resources/sql.html
index a2515003be..480de266ce 100644
--- a/src/main/resources/support/http/resources/sql.html
+++ b/src/main/resources/support/http/resources/sql.html
@@ -24,6 +24,7 @@