- 博客(52)
- 收藏
- 关注
原创 oracle数据库SQL文本长度过长性能问题
PL/SQL中,表达式/SQL本身的长度是可以达到比较长的长度(50K)左右,如果表达式/SQL过长,超过了一个ORACLE包/过程允许的最大程序长度,则在编译时报 pls-123:program too large错误,这是pl/sql编译器本身的限制造成的,即表达式/SQL的长度在PL/SQL中受限于包/过程的最大大小。SQL文本长度不超过20000字节,SQL文本过长时会造成SQL编译耗时长、内存使用增加,严重时,还可能导致数据库无法解析,甚至PGA内存泄漏耗尽操作系统可用内存。
2023-07-13 09:53:39
2186
原创 刍议oracle数据库sql逻辑读高性能问题
SQL语句不得逻辑读高,SQL语句逻辑读高很多情况下会出现性能问题,逻辑读高会引发数据库CPU资源使用率上升。产生高逻辑读的原因有:未创建索引、索引设计不佳、SQL语句写法存在问题等。覆盖条件大,造成索引覆盖较多的range、fast full scan等查询计划,均可能造成逻辑读高。比如,SQL单次逻辑读为1024,那么,其数据读取量则为1024 * 8KB=8MB。在实践中ORACLE数据库SQL逻辑读(即逻辑读大小)高会引发性能问题。2、分析SQL语句,优化SQL,创建合适的索引。
2023-07-06 09:06:54
961
原创 浅析oracle数据库的SQL中存在隐式转换性能问题
对于发生隐式转换的SQL,可通过查看其执行计划中的谓词信息发现隐式转换发生的具体位置,特征关键字为TO_NUMBER、SYS_OP_C2C,对应执行步骤通常为全表扫描,即使有索引也将无法使用。当发生隐式转换时,可能会导致对应字段上的索引无法使用(即索引失效),进而产生性能问题。隐式转换不仅发生在where条件中,还会发生在表连接中,常常导致无法使用索引,严重影响SQL执行效率。在实践中ORACLE数据库的SQL中存在隐式转换(即执行平均处理行数:查询出的行数,更新的行数)会引发性能问题。
2023-07-04 12:28:11
653
原创 浅谈高并发下I/O瓶颈如何优化
Selector 是基于事件驱动实现的,我们可以在 Selector 中注册 accpet、read 监听事件,Selector 会不断轮询注册在其上的 Channel,如果某个 Channel 上面发生监听事件,这个 Channel 就处于就绪状态,然后进行 I/O 操作。NIO是基于缓冲块为单位的流操作,在 Buffer 的基础上,新增了两个组件“管道和多路复用器”,实现了非阻塞I/O,NIO 适用于发生大量 I/O 连接请求的场景,这三个组件共同提升了 I/O 的整体性能。
2023-06-26 10:36:49
291
原创 性能测试中应用极限可恢复测试怎么做?
2、采用一般交易日联机峰值测试场景,对应用或系统增加负载压力至其最大处理能力值(性能指标正常情况下),再根据峰值测试场景并发用户数比例梯度(成倍)增加用户数,每梯度稳定运行5分钟,直到达到流控指标值,触发交易流控机制,交易报流控错误;4、将并发用户数(压力)减少,负载压力降至其最大处理能力值,停止减少并发用户数(压力),运行10分钟,停止场景压力,分析和记录测试结果数据;3)应用性能瓶颈,按测试场景并发用户比例成倍增加用户数,达到原有并发用户数的5倍不再增加并发用户数,继续稳定运行30分钟;
2023-06-24 11:17:22
197
原创 浅谈计算机系统设计和测评的基本原则
这里的执行 时间是计算机在完成一个任务时,包括访问磁盘、访问存储器、I/O 操作及系统开销所花费 的全部时间,也称为计算机的响应时间。当 e S → 时,有 1/ (1 ) n e S F = − 由此得到 Amdahl 定律 的一个重要推论:若只针对整个系统的一部分进行优化.则系统获取的性能改善极限值受 Fe的约束,系统加速比不大于 1/(1-Fe)。这个原则的基本 思想是:对于经常发生的事件,赋予它优先的处理权和资源使用权,加快它的处理速度,以 便提高整个系统的性能。3.程序访问的局部性原理。
2023-06-19 10:16:37
366
原创 性能测试之jmeter使用beanshell实现生产交易数据topn获取
在性能测试session获取场景中,亦可用此方法先保存到本地再参数化,有的系统还有对session进行加密(可参考前面分享的beanshell实现的几种加密算法),同时在服务器的配置文件中修改session过期时长,设置得足够长满足整个测试场景得需要(比如两三天),即可进行测试。out.write("交易码:"+codeKeyi+","+"交易量:"+amounti+","+"平均处理时间:"+avgProcTimei+","+"平均响应时间:"+avgRspTimei+"\t\n");
2023-06-14 07:33:38
106
原创 性能测试之jmeter使用beanshell实现base64编码
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。//获取登录后的动态session进行加密。然后计算机一个字节占8位,不够就自动补两个高位0了。
2023-06-08 10:20:13
1508
原创 性能测试之监控部署:node_exporter+promethues+grafana
性能测试,监控,node_exporter,promethues,grafana
2023-06-04 11:24:14
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人