《表4 读取不同格式前兆数据的运行速度比较》
在读取前兆数据库数据的时候,发现部分测项在保存预处理数据时没有对小数位数进行限制,导致小数位数过大,最大达到了16位,这样的精度是不真实的,它是浮点数在转换为字符串时系统保留的位数,对于数据运用而言没有实际意义,反而增加了数据库负担,影响了读写速度。如果在保存数据时对小数位数进行合理限制可以有效提升数据库存储效率。目前测震数据在数据库中的存储格式为SEED格式(IRIS,2006),通常采用Steim2压缩算法。Steim2压缩算法是SEED波形数据的一种整型数据的压缩算法,该算法是一种压缩效率较高的差分压缩算法(罗新恒等,2003)。由于它保存的是数据序列的差值,所以在有限的存储空间内可以保存更多的数据,以分钟值前兆数据为例,如果有效位数为5位,加上一位空格共6位,采用前兆数据库存储方式保存数据,一天的数据量(1 440个数据)占用空间为8 640字节,而Steim2方式保存只需要800~1 000字节,占用存储空间为前兆数据库存储方式的1/10~1/8。由于前兆数据是浮点数,无法直接采用Steim2压缩算法压缩数据,需要将浮点数变换为整型数据,变换过程比较简单,假定一个数据系列中数据的最大有效小数位数为N,将该数据系列分别与10N相乘即可将该数据系列转换为整型数据。N是数据相互转换过程中的关键参数,所以采用Steim2压缩算法压缩浮点型数据时需要同时保存N值,这样才能准确完成数据逆转换(解压缩)。在测试计算机上安装Oracle 10g数据库后建立2张表,一张表用于存储前兆数据库采用的数据序列值,另一张表存储Steim2方式压缩的数据。分别读取2个表相同量级的数据,测试其读取速度,测试结果见表4。结果表明,Steim2压缩数据的读取速度明显优于空格分隔的数据序列,原因是其数据量小,占用内存少。表4中的耗时数据仅为读取数据库记录的时间,不包括绘制数据的时间。
图表编号 | XD00105193100 严禁用于非法目的 |
---|---|
绘制时间 | 2019.09.01 |
作者 | 王华柳、刘克骧、马志刚 |
绘制单位 | 云南省地震局腾冲地震台、云南省地震局腾冲地震台、云南省地震局腾冲地震台 |
更多格式 | 高清、无水印(增值服务) |