SQL Server 2008构建SOA管理软件:U9技术实践与优化策略

需积分: 9 1 下载量 121 浏览量 更新于2024-08-17 收藏 4.97MB PPT 举报
"本文档是关于使用SQL Server 2008构建基于SOA(Service-Oriented Architecture,面向服务架构)的大型管理软件的技术实践,主要由用友软件股份有限公司U9研发中心的黄卫撰写。文档介绍了U9业务架构和技术架构,并分享了在IntelLab的性能测试结果,以及一系列在设计和优化数据库方面的技术实践,如选择逻辑主键、行版本快照、数据压缩和使用特定SQL优化技巧等。" 在U9业务架构中,关键点在于构建一个能够支持高并发和高性能的系统。系统规模庞大,包含4000张业务表,数据库大小通常为40GB,存储3年以上客户数据。U9技术架构的设计考虑了这些需求,以确保系统的稳定性和效率。 在数据库设计方面,U9采用了不同的数据组织方式,包括平台框架元数据(3NF-4NF)、基础商业组件(3NF)和ERP模块组件(2NF-3NF)。选择逻辑主键是一个重要的决策,文章提到了两种常见的策略:无意义整数顺序号(Bigint)和全局唯一标识符(GUID)。无意义整数顺序号虽然设置简单,但不适用于分布式环境且可能导致数据迁移冲突;而GUID虽支持分布式,但占用空间较大。U9采取了一种折衷的主键策略,结合SiteID、日期和顺序号,兼顾了空间占用和分布式支持。 为了提升并发性,U9利用了SQL Server 2005引入的行版本快照功能,允许读操作在写操作进行时不被阻塞,从而显著提高系统性能。此外,通过启用数据压缩来减少磁盘I/O消耗,U9的大部分表和索引都应用了页压缩,以优化存储效率。同时,还讨论了使用包含列索引实现索引覆盖,以减少全表扫描,以及通过表值参数和XML优化硬编码SQL的查询性能。 U9分页算法的实现和计算列的应用也是提高性能的重要技术手段。表值参数可以更高效地传递大量数据,而计算列则允许在不改变原始数据的情况下进行快速计算。 最后,文中提到了通过存储过程实现主键分配算法,以及使用CLR(Common Language Runtime)实现自治事务,这两点都是为了减少存储过程调用次数和提高系统响应速度。 "U业务架构-基于SQL Server 2008构建SOA大型管理软件技术实践"是一份深入探讨如何利用SQL Server 2008特性优化大型企业管理软件的技术文档,对于理解和实施SOA架构,以及在SQL Server环境下优化数据库性能具有很高的参考价值。