SQLServer2008构建SOA管理软件技术实践——U9技术架构解析

需积分: 10 5 下载量 68 浏览量 更新于2024-08-17 收藏 4.97MB PPT 举报
"本文档主要介绍了基于SQL Server 2008构建SOA(Service-Oriented Architecture,面向服务架构)大型管理软件的技术实践,重点在用友U9系统的业务和技术架构,以及在高并发场景下的性能表现。文章还探讨了数据库设计中的关键问题,如逻辑主键的选择、数据压缩、行版本快照、分页算法、计算列、表值参数和XML优化等。" 在U9业务架构中,系统被设计为支持高并发和高性能,能够处理大规模的数据量。例如,它包含4000张业务表,数据库大小可达到40GB,并能保存3年以上客户数据。在IntelLab的性能测试中,U9在8000并发用户下表现出色,平均响应时间为0.18秒,平均事务处理时间为2.5秒。 在技术实践部分,文档讨论了如何选择合适的逻辑主键。无意义的整数顺序号(Bigint)虽然设置简单且空间占用小,但不适用于分布式数据库。而GUID虽然支持分布式,但空间占用较大。U9采取了一种折衷策略,将SiteID、日期和顺序号组合成一个Bigint作为主键,既保证了空间效率又支持分布式。 行版本快照是SQL Server 2005引入的一个特性,它允许读操作在写操作进行时不被阻塞,提升了系统的并发性。启用行版本控制后,读操作可以从Tempdb获取已提交数据的快照,避免了等待写操作完成。 为了减少磁盘I/O消耗,U9广泛使用了SQL Server的数据压缩功能,这有助于提高读写速度。此外,U9还采用了包含列索引来实现索引覆盖,进一步优化查询性能。 在处理大量数据时,高效的分页算法至关重要。U9的分页算法实现有效地处理了大数据集的分页显示。计算列在系统中也有应用,可以动态计算数据,无需每次都进行计算操作。表值参数(Table-Valued Parameter)的使用则提高了批量操作的效率,减少了SQL语句的硬编码。 最后,通过CLR实现的自治事务和内存Low-High算法,U9减少了存储过程的调用次数,优化了主键分配过程,从而提高了整体系统性能。 该文档提供了丰富的SQL Server 2008在构建大型SOA系统中的实践经验,对于理解和优化基于SQL Server的管理软件系统具有很高的参考价值。