赛迪网 > IT技术 数据库 > SQL Server
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

告诉你使用SQL Server 2005的3个理由

发布时间:2006.11.09 05:02     来源:专家blog    作者:水墨清风

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

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

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

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

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

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

3:交叉表恶梦的结束

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

升级到SQL Server2005你可以用Pivot这个单词的意思就是“枢轴”有了轴你可以将行扭成列还可将列扭成行(UNPivot)

(T114)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 教你SQL Server数据库安全规划全攻略 (11-07) · SQL Server日志文件总结及充满处理 (11-07)
· SQL非正常删除日志文件(ldf)恢复方法 (11-07) · 教你在Access数据库中如何使用SQL (11-07)
· 教你使用SQL查询DB2 9中的XML数据 (11-03) · 九大措施教你安全配置SQL Server 2000 (11-02)
· SQL Server 数据库中加密数据须知 (11-02) · SQL Server数据库备份出错及应对措施 (11-02)
· 优化实例:从运行30分钟到运行只要30秒 (11-02) · 如何在SQL Server中快速删除重复记录 (11-01)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管