
**耗时排查步骤**
1. 步骤一:使用APM实时性能监控抓取日志
2. 步骤二:导出日志,发送html文件给研发排查
3. 步骤三:可以通过过滤详细日志的执行时长,排查耗时的SQL

存在问题:因为详细的日志只显示sql的耗时,当日志非常多的时候
如下例描述
1. sql详细日志有8000+
2. 总耗时是第一行有400+秒(耗时太长,需要优化)
日志说明:当前只能过滤耗时的SQL。没有包含非SQL的日志。
耗时可能性分析:
1. 存在高耗时的SQL :可通过以上方式过滤耗时SQL并进行优化。
2. 其他代码逻辑耗时
3. 循环次数过多
当优化高耗时的SQL,总耗时还是那么长怎么办?到底是SQL耗时太长,还是SQL执行数量太多导致总耗时太长呢?
进一步排查:汇总所有SQL的总耗时
**操作步骤:**
1. 用记事本打开编辑日志的HTML文档,插入脚本。
2. 插入位置

3. 插入脚本,保存
```language
<script>
function ShowMsg (id,millisecond){
var parentRow = document.getElementById(id);
var table = parentRow.parentNode.parentNode;
var rowCount = 0;
var sum = 0;
var validRowCount =0;
var firstParentId = id.substring(3, id.length);
var parentRowParentId = parentRow.getAttribute("parentids");
if(!(!parentRowParentId || parentRowParentId .length === 0))
{
firstParentId = parentRowParentId +","+firstParentId ;
}
for (var i=table.rows.length-1; i>0; i--){
var row = table.rows[i];
var cell = row.cells[1].innerHTML;
var time = parseFloat(cell);
var parentId = row.getAttribute("parentids");
var rowId = row.getAttribute("id");
if(firstParentId ==parentId )
{
if(time>=millisecond)
{
table.rows[i].classNam