SQL Server定位于中型的数据库应用,操作较Oracle和MySQL等要相对简便。由于微软在Windows Server系列解决方案中多年的推广,目前SQL Server积累了充足的资料和文档,因而得到DBA(尤其是中小企业DBA)的喜爱。
综合来看,SQL Server在处理海量数据的效率,后台开发的灵活性,可扩展性等方面十分强大。由于现在数据库都使用标准的SQL语言对数据库进行管理,所以微软SQL Server可以兼容不同平台的SQL语言,为数据库迁移带来额极大的便利性,这一点是其他数据库所难以比拟的(试想DB2向Oracle迁移的难度)。SQL Server诞生以来就一直被用于开放式的x86环境,因此有不少第三方工具和应用程序是基于SQL Server数据库开发的。得益于其数据库大小无极限限制,标准接口方便调用等优势,SQL Server的用户可以说并不单纯是企业数据库用户,还有一批以数据库为核心的第三方软件用户。
因此,从用户需求来看,SQL Server服务器的选型需要根据自身应用是单纯数据库用户还是第三方应用??单纯的数据库应用更加看重计算性能与稳定性,而第三方应用则更加看重服务器对SQL Server数据库灵活扩展性的要求。
性能方面,SQL Server能够充分利用SMP技术来执行多线程任务,通过使用CPU的多个内核,优化并行计算性能,以适应繁杂的数据库查询所带来的高吞吐量。另外,SQL Server数据库的查询机制对处理器内缓存的点击率高达90%,因此优化缓存使用效率和尽可能大的利用缓存以提高数据查询命中率是DBA考虑的问题。
I/O方面,SQL Server对于内存和磁盘子系统的要求严格。由于并行计算效率高,对处理器的压力大,因而处理器在对内存的数据查询和硬盘随机读写上较其他层次型数据库压力要大的多。在以SQL Server数据库为后台的第三方应用中,这种需求尤为明显。
从以上分析可以看出,SQL Server作为一个关系型数据库,在对并行计算有较高需求的同时,还对内存I/O有较大压力??这对SQL Server的服务器可靠性提出了严格需求。一般来说,在系统处于高符合运作的情况下,大数据量的内存I/O极容易出现错误??也因此,很多服务器配备带有自效验(ECC)芯片的内存条。不过这只能一定程度上解决可靠性问题,作为计算核心的处理器,如何提高可靠性才是SQL Server服务器选型时首要考虑的问题。
兼顾性能与可靠性 至强7500双拳出击
处理器计算性能与可靠性之间,往往是博弈关系。我们简要回顾一下处理器发展过程中,这二者的平衡??还记得主频瓶颈么,处理器攀升到4GHz主频以上之后,功耗就开始急剧上升、同时稳定性也迅速降低(漏电是主要因素)。之后是多核处理器的发展,随着内核的增多,处理器仍然面临功耗瓶颈??除非你愿意花昂贵的电费获得有限的性能提升,并承担不稳定性风险。
于是,我们看到一项高调的Power处理器在攀升极致主频之后(Power 6一度有4.7GHz),也开始转向多核心架构;而SPARC处理器在走众核路线之后(著名的32核“尼加拉瓜”),也将注意力转向了主频与内核之间的平衡上(32核的主频只有不到1GHz)。其实原先这种做法可以理解,无非是对“主频敏感型”和并行度高的“内核敏感型”应用??尤其是层次型数据库和关系型数据库等做的优化。但是,在数据库计算越来越均衡的今天(如DB2已经将两种数据库融合成混合数据库,SQL Server也在综合两者优势),处理器也自然向着更加均衡的方向发展,以保证计算的稳定性。
相比上述RISC平台的转变,x86平台一直以来在英特尔的推动下均衡的向着多核、高能效、高可靠性的方向发展。3月底,英特尔发布了至强7500系列处理器,凭借8核16线程的强悍并行能力以及优秀的4通道DDR3内存控制器横扫x86平台??为八路及以上服务器带来“革命性”的性能提升。据官方数据表示,至强7500的内存带宽比至强7400高9倍,运行数据库程序时的性能则是后者的2.5倍,整数运算性能为至强7400的1.7倍,浮点运算性能则是至强7400的2.2倍。而且,由于使用了4个QPI接口,让服务器厂商无须借助其他控制器芯片,就可以扩展到8路服务器。
从SQL Server对并行计算性能的需求来说,至强7500的8核16线程可以充分发挥其深度索引所需要的并行度??对于中型数据库来说,一个八路的至强7500服务器(64核/128线程)足以应对日常的数据库查询。而至强7500增加的一条QPI总线,也大大提升了处理器和内存之间的访问带宽,四大通道DDR3带来的超高内存性能,加上单颗处理器支持16条内存插槽的强大扩展能力,无疑是SQL Server这种依赖内存I/O数据库的福音。
反观可靠性,英特尔在至强7500中加入了22条RAS特性,并首次在至强平台上实现了IA64上才有的MCA恢复功能,首次将x86平台的可靠性提升到如此程度。因而无论是在性能、可扩展性和可靠性上,都已经逼近RISC,甚至在某些指标上有所超越。
如果说选数据库服务器,首先要选的就是处理器,那么SQL Server作为土生土长在x86 Windows环境里的数据库,与英特尔至强7500一起可谓绝配。而对于中型企业的DBA们来说,Oracle数据库庞大而昂贵,MySQL则难于部署,DB2太过专属,而SQL Server是上佳选择。与至强7500“强强联手”,是SQL Serve数据库服务器的不二之选。