SQL Server 2008构建SOA管理软件实践:逻辑主键与性能优化

3星 · 超过75%的资源 需积分: 9 7 下载量 71 浏览量 更新于2024-07-30 收藏 4.97MB PPT 举报
本文是关于如何基于SQL Server 2008构建面向服务架构(SOA)的大型管理软件的技术实践分享,由用友软件股份有限公司U9研发中心的黄卫在2010年3月17日提出。文章讨论了在U9系统中遇到的关键技术和优化策略,包括逻辑主键的选择、行版本快照、数据压缩、索引覆盖、分页算法、计算列的使用以及XML优化等。 1. **如何选定逻辑主键**:在数据库设计中,逻辑主键的选择至关重要。无意义整数顺序号(Bigint)虽然设置简单,但不适用于分布式数据库,且数据迁移时容易引发冲突。全局唯一标识符(GUID)虽然支持分布式,但占用空间较大。U9系统采用的主键策略是SiteID+日期+顺序号,这种组合既节省空间又支持分布式应用,并通过存储过程和CLR实现自治事务,以降低内存中的冲突。 2. **行版本快照-读已提交数据**:SQL Server 2005引入了行版本控制,允许读操作在写操作执行时不被阻塞,提升了并发性能。启用快照隔离后,读操作可以从Tempdb中获取已提交数据的快照,减少了等待时间。 3. **使用数据压缩减少磁盘I/O消耗**:SQL Server 2008提供了页压缩功能,U9系统广泛使用这一特性来降低磁盘I/O,从而提高系统性能。通过数据压缩,可以显著减少存储需求,尤其是对于大数据量的表和索引。 4. **包含列索引实现索引覆盖**:通过创建包含列索引,可以使得查询只通过索引就能获取所有所需数据,避免了扫描整个表,进一步优化了查询性能。 5. **U9分页算法实现**:分页查询在大型系统中非常重要,U9系统采用了特定的分页算法来高效地处理大量数据的分页显示,确保了用户体验和系统性能。 6. **计算列在U9系统中的应用**:计算列可以在数据库层面定义计算公式,提供预计算的值,减少了应用程序的计算负担,提高了系统响应速度。 7. **表值参数(Table-Valued Parameter)的应用**:表值参数是一种更有效传递多行数据的方法,相比传统方式,它降低了网络传输开销,提高了批量操作的效率。 8. **使用XML优化硬编码SQL**:在处理复杂或动态的查询时,使用XML可以更好地封装和传递信息,避免了硬编码SQL导致的维护难题,同时可能通过XML优化提高查询效率。 U9系统的设计与实施充分考虑了高并发、高性能的需求,通过上述技术手段,实现了对大规模数据的高效管理和处理,确保了系统的稳定性和扩展性。这些实践经验对于开发大型企业级SOA系统具有重要的参考价值。