技术开发 频道

主流列式数据库评测:Sybase IQ

  2.SSB查询测试

  有读者反映我的上一系列文章的测试不全面,遗漏了SSB测试,这次专门补充写上,以下是时间对比表。


  由于SSB的数据量实际比tpc-h少,并且查询语句也较简单。所有查询都能在10秒以内完成。

  五、小结

  由于用户的实际需求千差万别,因此很难简单地划分那类查询属于数据仓库方面而哪些查询不是。比如,tpc-h查询中2个大表的exists和not exists条件未必不常用。tpc-h由一个独立的tpc组织来维护,得到大多数软硬件厂商的支持,Ssb是一个大学研究的成果,scala=10的查询,都是几秒钟完成一个查询,不足以作为评估数据库的主要数据集的选择。而用户真实的数据查询中,不限定条件的全表分组汇总也很常见。好的数据库管理系统应该能够最大限度地适应用户不同类型的查询语句,并针对不同查询都尽量给出较好的执行计划,当然要做到这点很难。SybaseIQ作为新兴的列式数据库的一员,在3个测试中的总体表现都还不错。

  Sybase IQ支持大多数的SQL标准写法和分析函数,一般数值和字符不能隐式自动转换,要显式用cast函数等转换,程序员还需要注意日期类型的特殊性,但这种努力往往也能带来乐趣。它还在默认索引之外支持用户自定义索引和主键,给用户查询带来了方便。

  Infobright的短板主要落在tpc-h查询的4\17\20\21等几个,这类查询的特点是表间关联条件比较复杂,人工优化的效果更加明显。

  SybaseIQ的数据加载工具能较好地利用多个CPU,性能还不错,但对整数类型列,文本导入的性能稍差一些,,支持管道和Linux下很多实用的文字处理命令工具,比如tr,awk可以弥补某些ETL功能的不足,能解决比如文件的最后一个列的分隔符问题等。但最好能在数据库本身的功能中增加这些选项,以便更多的平台都可以使用。Sybase IQ的文件数据合法性检查更严格,但无法提示出错的各行,最好采取类似Oracle的sql*loader的bad文件的方式,这样有利于提高插入效率

  Sybase IQ的压缩率一般在2到5倍左右。当存储数据仓库的大量数据时,能有效地减少数据的存储空间,提供更多的空间供用户使用。

  由于本人接触SybaseIQ数据库的时间不长,一些性能优化的方法还未掌握,文章中的不足和错误之处,欢迎读者们讨论和指正。

0