背景:在sqlserver使用过程中经常由于各种原因会出现阻塞,并发数较高,很难肉眼看出那个session阻塞了其他process,通过sql查询出根源也需要大量的重复操作才能够找到。

因此就有这方面的需求来,通过session_id以及blocked_sessionid两个字段来找出阻塞根源并通过网页展示出来。

echarts拥有非常优秀的BI组件库,能够对各种数据进行各种形式的展示。

前台部分代码为:

    <table>
<tr>
<td align="center"><div class="well sidebar-nav" id="tree" style="width:1000px;height:300px" ></div></td>
</tr>
</table>

为echarts画图申请一块区域

ajax请求如下:

var optiontree = {
title : {
text: '',
},
tooltip : {
trigger: 'item',
formatter: "{b}: {c}"
},
//toolbox: {
// show : true,
// feature : {
// mark : {show: true},
// dataView : {show: true, readOnly: false},
// restore : {show: true},
// saveAsImage : {show: true}
// }
//},
calculable : false, series : [
{
name:'test',
type:'tree',
orient: 'vertical', // vertical horizontal
rootLocation: {x: 'center', y: '20%'},
nodePadding: 20,
roam: true,
symbol: 'circle',
symbolSize: 40,
itemStyle: {
normal: {
label: {
show: true,
position: 'inside',
textStyle: {
color: '#000',
fontSize: 15,
fontWeight: 'bolder'
}
},
lineStyle: {
color: '#000',
width: 1,
type: 'broken' // 'curve'|'broken'|'solid'|'dotted'|'dashed'
}
},
emphasis: {
label: {
show: true
}
}
},
data: []
}
]
};
$.ajax({
type : "post",
async : false,
url : "<%=request.getContextPath()%>/manage/testjson",
data : {},
dataType : "json",
success : function(result) {
if (result) {
  var arr = result[0].treedata;
   var contact = JSON.parse(arr);
   optiontree.series[0].data.push(contact);
       var myChart = echarts.init(document.getElementById('tree'));
         myChart.setOption(optiontree); }
}});

java后台代码思路如下:

1.查询出两列数据 gettreedata();

2.将这两列数据通过递归函数以及多叉树数据结构存储

treetojson()
{
iteratorfunc(......) //将数据转换成nodetree
...
...
...
deletenoblocknode() //将没有阻塞的节点删除 nodetreetraversetojson() //将树形结构转换成
// json字符串传回给jquery
}

这里需要注意的地方需要标准的json格式

{"name" : "0","children" : [{"name" : "4","children" : [{"name" : "3","children" : [{"name" : "1","children" : [{"name" : "13"}]},{"name" : "2"}]},{"name" : "5","children" : [{"name" : "6"}]},{"name" : "7","children" : [{"name" : "8"}]}]},{"name" : "11","children" : [{"name" : "12"}]}]}

最终展示如图:

对于echarts来说可以增加点击事件,点击sessionid后可再次查询出详细信息,对于解决sqlserver阻塞带来很大的方便。

对于实现有问题的同学欢迎留言!

最新文章

  1. MySQL索引简述
  2. 使用Grunt 插件打包Electron Windows应用
  3. 浅析敏感词过滤算法(C++)
  4. HTML流动布局各种宽度自适应
  5. [moka同学笔记]yii2场景的使用(摘录)
  6. json和cookie兼容以前的
  7. iOS边练边学--文件压缩和解压缩的第三方框架SSZipArchive的简单使用
  8. Fingerprinting
  9. jj前端项目1th总结
  10. 简单学习:repo入门
  11. 1分钟去除word文档编辑限制密码
  12. HTML编码
  13. CSS权威指南学习笔记 —— 初步认识CSS
  14. ZOJ 3741 Eternal Reality
  15. AOP 在javascript 中的使用
  16. html5的video标签自动播放
  17. Request模块—数据解析工具
  18. Salesforce Apex学习 : 利用Schema命名空间中的DescribeSObjectResult类型来获取sObject对象的基本信息
  19. luogu P1880石子归并
  20. JMeter学习笔记---性能分析

热门文章

  1. PHP rand()和mt_rand()的区别
  2. [Vue @Component] Switch Between Vue Components with Dynamic Components
  3. 【java项目实践】具体解释Ajax工作原理以及实现异步验证username是否存在+源代码下载(java版)
  4. UITableView和UITableViewCell的几种样式
  5. ios 使用第三方框架注意
  6. Linux VM环境配置
  7. C++ 訪问控制权限图解
  8. wepack使用
  9. 解析java中volatilekeyword
  10. TLabel和TEdit的初次显示过程