SQL Server 2005新特性与改进(一)


网友: sql2005在性能优化上相对于sql2000做了哪些改进?增加了哪些性能优化技术或者工具?

胡百敬: 哇,这是个大问题...先强调在 Books online 上也有列表。受限于敲字...我仅能简单表列更有效率的全文检索、执行计划、执行计划的重复运用、统计信息、分布式查询、DBCC 陈述式、储存引擎、SQLOS…等等最佳化查询引擎变得更聪明语法阶层的重新编译在多句语法的批次和预存程序中,不必完整重新编译整批次或预存程序。例如:几千行的预存程序中,用到了暂存数据表,在重新呼叫该预存程序时,只需要重新编译使用到暂存数据表的那几行语法。语法包含动态对象,例如:数据表变量、触发程序等等的执行计划可以被快取重复运用文字语意的最佳化:当语法格式是 exp1 Op exp2,而 exp 是字段名称和常数,op 为 <>、=、< 或 > 时,SQL 可以做更正确的判读如 a > 5 and a>3 and a=0 时,会传回 false 如 (a between 1 and 100) and (a between 100 and 200) 时,将条件改成 a=100 如 a>3 and a>5 时,其实是 a>5,在寻找索引时使用 a>5 切割数据表(Partition Table) 系统提供了大量的动态检视,以提供效能分析, Management Studio 多了很多的 Reports Profiler、Database Engine Tuning Advisor(2000 版的 Index Tuning Wizard)也比以前更细致 。

网友: sql2005中表的关系图能达到自动了吗,就像access那样自动生成的?

胡百敬: 或许你可以试试 Management Studio 内各数据库下的 "数据库图表" 功能,直接透过鼠标右键,新增一个数据库图表,然后透过对话窗选择数据表加入,就可以设定。一般也可以直接利用图表来建立数据库内数据表的 schema。

网友: Reporting Service 2005相比之前的版本在开发,部署方面有哪些重要的提升

姚巧枚: Reporting Services 在开发方面新增了ReportBuilder 以及ReportMode 。前端使用者可透过ReportBuilder 设计自订的报表。另外,在VS 2005的开发环境内新增了ReportViewer工具,透过这个工具,你可以将设计好的rdl报表文件内嵌在程序里面。

网友: 在sql2005中借鉴了oracle中的一些技术,是那些技术?sql2005与最新版的oracle还有多大的差距?

胡百敬: 哇...照微软官方说法,各有所长。SQL 2005 的确很多地方是像 Oracle 学习,如 Schema、Partition。但若是在 Windows 的平台上,SQL Server 的表现比较好。所以,若你连 Windows 操作系统一起考虑,或整体拥有成本,可能 SQL Server 是较佳的选择。

姚巧枚: 可参考下列网址,不过这个是台湾地区微软的网址 http://www.microsoft.com/taiwan/sql/prodinfo/compare/oracle/default.mspx。

网友: SQL2005与Oracle性能及承载能力是否有很大差距?

胡百敬: 其实,就我所接触的顾问案,实体的差距应该不大,重点在于是否有专业的人才,若人才好,透过高明的分析设计,就可以切割需求,照 80/20 定律的方式...我有看到以 SQL Server 承载 200 Tera bytes 的系统:)

网友: sql2005的索引机制有什么改进吗?

胡百敬: 其实,这些参照 Books online 比较详尽。我只能说我印象较深的是 include 字段语法,让建立的 cover index 比较有效率。另外,在建立与维护索引时,可以更好的控制,例如使用 cpu 数,以及同时有人存取数据时,还可以在线维护索引。

网友: 请问SQL2005在使用难度方面有没有变化?

姚巧枚: SQL Server 2005 提供了更丰富的功能与开发工具。因此在使用上会觉得较以往难。而难易度与功能多少是一体两面的,你只要挑你用的到的去学就好。大体上我们会将数据库分为管理、开发、BI三部份。若要三个面相都很厉害的话那就是SQL 铁人了。