2007-09-20

四大方面讲述SQL2005与SQL2000的改进

来源: 动态网站制作指南 作者: 评论 0 条
 

  语句级快照和事务级快照终于为SQL Server的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,假如是高并发系统还要慎用。假如一个用户总是被提示修改不成功要求重试时,会杀人的!

  9、数据库快照。

  原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。

  10、Mirror。

  Mirror可以算是SQL Server的Data guard了。

  二、开发方面

  1、Ranking函数集。

  其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQL Server2005的row_number比Oracle的更先进。因为它把Order by集成到了一起,不用像Oracle那样还要用子查询进行封装。但是大家注重一点。如下面的例子:

    select ROW_NUMBER() OVER (order by aa)
    from tbl
    order by bb

  会先执行aa的排序,然后再进行bb的排序。

  可能有的朋友会抱怨集成的order by,其实假如使用ranking函数,Order by是少不了的。假如担心Order by会影响效率,可以为order by的字段建立聚集索引,查询计划会忽略order by 操作(因为本来就是排序的嘛)。

  2、top。

  可以动态传入参数,省却了动态SQL的拼写。

  3、Apply。

  对递归类的树遍历很有帮助。

  4、CTE。

  阅读清楚,非常有时代感。

  5、try/catch。

  代替了原来VB式的错误判定。比Oracle高级不少。

  6、pivot/unpivot。

  个人感觉没有case直观。而且默认的第三字段(还可能更多)作为group by字段很轻易造成新手的错误。

  三、DBA治理方面

  1、数据库级触发器。

  记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很兴奋吧。

  2、多加的系统视图和实时系统信息。

  这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。

  3、优化器的改进。

  一直以来个人感觉SQL Server的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。

  4、profiler的新事件观察。

  这一点很好的加强了profiler的功能。但是提到profiler提醒大家注重一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。

  5、sqlcmd

  习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQL Server Management Studio的朋友使用。

  四、其它

  1、登陆的控制。

  始终遗憾SQL Server的登陆无法分配CPU/内存占用等指标数。假如你的SQL Server给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。而SQL Server假如能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。

  2、数据库物理框架没有变动。

  undo和redo都放在数据库得transaction中,个人感觉是个败笔。假如说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。但是同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。

  3、还是没有逻辑备份。

  备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。

  4、SSIS(DTS)太复杂了。

  SQL Server的异构移植功能个人感觉最好了。(假如对比过SQL Server的链接服务器和Oracle的透明网关的朋友会发现SQL Server的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
共3页: 上一页 [1] 2 [3] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:如何解决SQL Server占用内存的问题  
下一篇:改进SQL Server数据库系统安全五步走
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号