请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
乔凯(uid:98306)
职业资格认证:FCA-FineReport
MSSQL环境下因报表实时刷新导致宕机问题分析
在开发报表的过程中,勾选了实时刷新数据,报表自动的实时显示动态数据,导致服务器内存爆满,系统无法使用。 通过MSSQL提供的系统函数,查看内存中实时运行的语句,发现报表语句大量的刷屏,占用了较多的CPU,内存等资源。 通过如下代码可以查询数据库正在运行的比较耗费资源语句: select top 10 text,* from sys.sysprocesses a cross applysys.dm_exec_sql_text(a.sql_handle) st where status<>'sleeping' order by cpu desc 出现这些的问题后的解决建议如下: 1.增加TOMCAT的最大内存设置, 2.考虑能否降低刷新数据的频率,或者取消刷新数据 3.对获取数据的SQL语句进行优化 3.1 首先检查下sql代码中是否有不符合sarg规范的地方,有则改 3.2 sql代码尽量做好过滤条件,尽量用数据库参数过滤,这样可以减少查询过程中处理的数据量,从而减少硬件资源的消耗。模板参数因为要先将所有数据查询出来后再做过滤,所有耗费了很多资源。 3.3 sql代码逻辑结构的优化
存储过程开发报表,缺少查找存储过程功能
MSSQL性能调优--执行计划
在做报表的过程中,经常会遇到各种性能问题,有时报表打不开,有时报表占用资源过多导致服务器宕机,这些都属于性能问题,面对这些问题,该怎么处理呢? 性能调优!!! 在MSSQL中,查看较慢语句的执行计划,就是一个比较直观的方式,如果查看执行计划呢:86173 file:///C:/Users/qiaok/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png1.从右到左,从上到下的顺序阅读执行计划 2.执行计划中每个图标代表一个运算符,总开销为100% 3.数据从右向左在两个操作符之间流动,由一个连接箭头表示。 4.操作符之间连接箭头的宽度是传输行数的图形表示。 5.同一列的两个操作符之间的连接机制将是嵌套的循环连接,Hash 匹配或者合并连接。 1. 识别执行计划中开销较大的步骤 a. 关注较高开销的节点,一般是表扫描、假脱机、排序等运算(如上列中的排序) 86174file:///C:/Users/qiaok/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpgb.查看节点之间连接箭头的宽度。 箭头的宽度代表传输的数据量大小。 分析箭头左边的节点为什么需要这么多行,是否可以过滤。 检查箭头的属性,实际的行与估计的行相差很大可能是统计信息过时。 c.寻找hash连接操作。对于小的结果集,嵌套的循环连接通常是首选的连接 技术。 d.寻找书签查找操作。大结果集的书签操作可能造成大量的逻辑读。e.寻找执行排序操作的步骤。这表明数据没有以正确的排序进行检索。 2. 分析索引有效性a.数据检索操作 通过查看执行计划中该表的数据检索机制,来判断对该表的查询是否高效。 1. 查找优于扫描。 file:///C:/Users/qiaok/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png861752. RID查找与键查找键查找优于rid查找,建议对表都加上聚集索引86179file:///C:/Users/qiaok/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg3. 分析连接有效性 a. Hash连接 file:///C:/Users/qiaok/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png86180 Hash连接有两个输入—建立输入和探查输入。较小数据量的做为建立输入。 在建立阶段,建立输入被扫描或计算,并在内存中建立hash表,每个行根据计算的hash键值被插入的hash表元中。 在探查阶段,对于每个探查行计算hash键值;与hash表元进行匹配。 b. 合并连接86181file:///C:/Users/qiaok/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png 如果连接输入列上已经排序,优化器会为其选择合并连接,合并连接比 Hash匹配更快。 查询优化器使用hash连接高效处理大的、未排序、没有索引的输入。 c.嵌套循环连接 file:///C:/Users/qiaok/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png86182 嵌套循环连接使用一个连接作为外部输入表,另一个作为内部输入表。外部循环逐行扫描外部输入表,内部循环为每一个外部行执行一次,搜索匹 配行。如果外部输入数据量较小,内部输入大但有索引,嵌套循环连接时非常有效的。 编辑于 2017-11-29 15:10
个人成就
内容被浏览21,738
加入社区7年60天
返回顶部