索引和缓冲池大小对DB2性能的影响

来源:互联网 发布:未找到软件源 编辑:程序博客网 时间:2024/06/11 02:42

       最近,做一个压力测试,生成1000万张卡的数据,发现程序的执行效率很低,优化程序逻辑、尽量减少数据库的读写次数之后,速度还是没有提高多少,后来针对具体的每一个SQL检查所需的时间,检查每一个查询的索引,有些唯一确定的建立唯一索引,之后速度有很大的提高,不过还是存在有部分SQL依旧耗时比较多,超过了10万微秒,多次检查,发现索引也建了,程序逻辑也不复杂,百思不得其解。后来想了一下,会不会是缓冲池的问题,将相关表对应的缓冲区大小放大一倍,重启,再运行,发现SQL的执行效率有质的提升,速度由10万多微秒下降到几百微秒。不过,并不是缓冲区越大越好,缓冲区过大,有时还会降低效率,因为在连接数据库的时候,系统会为缓冲区分配内存,如果缓冲区大小设置太大,那么会导致连接数据库的时间过长,如果数据量过小,反而会降低总体效率。总之,要找到一个平衡点,也就是缓冲区的命中率,命中率越高,效率越高。

 

       程序逻辑、索引、缓冲区,三者对性能的影响,这就是我这次学到的东西,当然,影响性能的因素很多,以后再有遇到,再来总结,也算是做个笔记。

原创粉丝点击