SQL Server 2008 SOA管理软件实践:行版本快照与并发优化

需积分: 9 1 下载量 24 浏览量 更新于2024-08-17 收藏 4.97MB PPT 举报
本文档主要探讨了如何在SQL Server 2008环境下构建一个基于SOA(面向服务的架构)的大型管理软件,以U9业务系统为例,该系统由用友软件股份有限公司开发,用于支持高并发和高性能需求。在U9的架构设计中,作者黄卫分享了关键的技术实践和策略。 首先,文章强调了逻辑主键的选择,提到了两种常见的逻辑主键类型:无意义整数顺序号(如BigInt)和全局唯一标识符(GUID)。无意义整数顺序号简单易用,占用空间小但不支持分布式数据库和可能导致数据迁移时冲突;GUID则支持分布式,但占用空间较大。U9选择了结合SiteID、日期和顺序号的组合作为主键,既能节省空间又确保分布式应用的支持。 其次,文章重点介绍了行版本快照技术在SQL Server 2005之后的优势,它允许在读取操作中避免写操作的阻塞,从而显著提升了系统的并发性和响应速度。在SQL Server 2005之前的版本,读操作由于写操作的锁会受到影响,而启用行版本控制后,从Tempdb直接获取已提交数据的快照可以实时返回,减少了等待时间。 此外,作者还提到了其他技术实践,如使用数据压缩来减少磁盘I/O,通过列索引实现索引覆盖,以及U9独特的分页算法。表值参数的应用也被提及,这有助于优化SQL查询。文中还提到利用XML优化硬编码SQL,以及通过存储过程和CLR(公共语言运行库)实现自主事务处理,降低存储过程调用的开销。 U9数据库的设计遵循了第三范式(3NF)到第四范式(4NF)的原则,包括平台框架元数据、基础商业组件和ERP模块组件,这些组件保持了良好的数据结构。数据库规模庞大,包含了4000张业务表,且考虑到历史数据,数据库大小约为40GB,存储了至少3年的客户数据。 通过在8000并发下的性能测试,U9系统表现出色,平均响应时间为0.18秒,平均事务处理时间为2.5秒,证明了其在高并发环境下的稳定性和效率。这些技术实践为其他开发者在构建类似规模和复杂性的SOA系统时提供了有价值的参考。