SQL Server 2008构建SOA软件:计算列与主键策略在U9系统中的应用

需积分: 10 5 下载量 96 浏览量 更新于2024-08-17 收藏 4.97MB PPT 举报
"本文主要探讨了在U9系统中,基于SQL Server 2008构建SOA大型管理软件的技术实践,特别是在计算列的应用上,解决字段过多和字符过多的业务主键问题,同时介绍了如何优化数据库性能,包括行版本快照、数据压缩和索引策略等。" 在构建大规模的SOA(面向服务架构)系统中,U9系统面临的一个挑战是业务主键的设计。由于允许客户自定义业务,有时会遇到超过SQL Server 16个索引键限制的情况。为了解决这个问题,开发团队采用了计算列,将多个业务字段拼接成一列,创建唯一性索引,确保数据的唯一性。然而,当拼接后的计算列字符过长,可能会超过SQL Server索引键900字节的长度限制。在这种情况下,他们通过持久化计算列来适应这一限制。 U9系统采用了一系列技术来提高性能和并发能力。例如,他们利用行版本快照功能,在SQL Server 2005及以上版本中,启用行版本控制以减少读写操作之间的阻塞,提升了系统的并发性。此外,为了降低磁盘I/O消耗,U9广泛使用了SQL Server的数据压缩功能,这有助于减小表和索引的存储空间需求。 在逻辑主键的选择上,U9系统采取了一种结合SiteID、日期和顺序号的策略,以Bigint类型表示,既节省空间又支持分布式数据库应用。同时,通过存储过程和CLR实现的自治事务来高效分配主键,采用内存Low-High算法减少存储过程调用次数,进一步优化性能。 此外,为了提高查询效率,U9系统还使用了包含列索引,实现索引覆盖,减少全表扫描。同时,表值参数(Table-Valued Parameter)的应用则优化了SQL语句,避免了硬编码,提升了执行效率。 本文详细阐述了在U9系统中,如何利用SQL Server 2008的特性,如计算列、行版本快照、数据压缩和优化的主键策略,来构建高性能、高并发的大型管理软件。这些技术实践对于理解和改进类似的SOA系统具有重要的参考价值。