职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1507|回复: 0

告诉你使用SQL Server 2005的3个理由(转载)

[复制链接]
cayean 发表于 2006-11-23 21:28 | 显示全部楼层 |阅读模式
来源:赛迪网 >> 技术应用子站 >> SQL Server

1:使用分区表来提高数据库性能

以前的处理大数据量时很多人会采取使用多个结构相同的表按时间段来分,不同时间的数据存在不同的数据表里,这样如果只查询一个表的数据就很快,如果需要跨表查询则再通过连接视图将这些表连起来伪装成一个表的样子,这样可以提高查询效率,但牺牲了程序设计的优雅性和数据库设计的简单性,特别是在处理关系、约束、数据完整性时会非常的繁琐复杂。

升级到sql2005可以采用分区表(partition table)来处理这种需求,我们可以将我们的分区规则写成分区函数,然后我们的分区表就可以按照这个分区函数来将我们的表存储在不同的存储介质上,当我们查询时SQL Server最优化程序会自动选择分区做Join这样当然要比大数量过滤起来有效的多。

2:通过Row_Number来给查询结果集加个序号

查询结果集没有序号郁闷的问题相信折腾了不少人,每每有客户指着我的Grid OR Report对我说“小莫,你能不能给这个地方加个序号?”对于这样的合理要求只能说是,然后就将查询来的结果手动的加个序号,对牺牲的性能也只好烧把高香祝福它能升上天堂,然后就是保佑着客户查询数据量不要太大。

升级到SQL2005 我可以将序号这个功能默认给用户不要他再给我提这样的合理要求了。

3:交叉表恶梦的结束

如果你做过考勤管理,选择建31个列还是添加31行?选择31列直观,但你查询的时候你也许更喜欢你头撞墙而不是来查询,添加31行当你决定用列显示日期的时候你发现你还是愿意撞墙。还有当你做类似学生成绩管理系统的时候你要将课程表中的课程数据做列学生表中的学生作行的时候这个时候你突然醒悟还是撞墙好些。

升级到SQL Server2005你可以用Pivot这个单词的意思就是“枢轴”有了轴你可以将行扭成列还可将列扭成行(UNPivot)
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-15 03:29 , Processed in 0.106217 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表