主持人: 我们的活动现在开始,首先请3位嘉宾做一下自我介绍。
胡百敬: 我是百敬,你们好。
姚巧枚: Hi..大家好。我是巧玫 是SQL Server 2005的作者之一,不过这本书比较难的部份都是百敬老师写的。
邹建: 大家好, 我是邹建。
网友: SQL Server 2000到SQL Server 2005的迁移成本有多大?
胡百敬: 单纯的版权费,移转成本较容易计算,但因为 SQL 2005 的差异较大,可能需要考虑学习、开发等不容易弄清的整体拥有成本。
网友: 在的网站用了300多个存储过程和30多个函数,用不用改动?
胡百敬: 基本上预存程序由2000转移到2005并没有带大的问题,不过像2000的版本里m原来应该写成 [数据库名].dbo.[数据表名],但是简写为[数据库名]..[数据表名] 的时候转移到sql 2005 会出错。就这个部份要稍微留意一下即可。
网友: 新书《SQL Server2005数据库开发详解》什么时候能买到呢???
胡百敬: 啊...这要请问电子工业出版社的同仁哩...真抱歉,我不太清楚。
网友: 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报表文件内嵌在程序里面。
网友: SQL 2005在灾难还原方面有哪些技术?能否简要介绍一下这些技术的原理和实现方法?
胡百敬: Backup/Restore、Clustering、Database Mirroring、Database Snapshot、Replication。
网友: 我只是一个sql server的初学者,能不能给我一个比较好的学习建议。
姚巧枚: 除了多多阅读技术相关的杂志外,当遇到技术问题时,最好的方式就是学习如何在[在线说明]内找答案。还有多使用讨论区跟一些sql达人交换使用心得。
网友: 在sql2005中借鉴了oracle中的一些技术,是那些技术?sql2005与最新版的oracle还有多大的差距?
胡百敬: 哇...照微软官方说法,各有所长。SQL 2005 的确很多地方是像 Oracle 学习,如 Schema、Partition。但若是在 Windows 的平台上,SQL Server 的表现比较好。所以,若你连 Windows 操作系统一起考虑,或整体拥有成本,可能 SQL Server 是较佳的选择。
主持人: 刚才看到很多网友关心胡,姚老师的新书,我来解答一下.关于胡老师和姚老师的新书《SQLServer2005数据库开发详解》,时间大概是6月末7月初左右。
网友: 在sql2005中借鉴了oracle中的一些技术,是那些技术?sql2005与最新版的oracle还有多大的差距?
姚巧枚: 可参考下列网址,不过这个是台湾地区微软的网址 http://www.microsoft.com/taiwan/sql/prodinfo/compare/oracle/default.mspx。
网友: 很多人关注SqlServer的,为什么BI部分的人很少呢?
网友: QL2005与Oracle性能及承载能力是否有很大差距?
胡百敬: 其实,就我所接触的顾问案,实体的差距应该不大,重点在于是否有专业的人才,若人才好,透过高明的分析设计,就可以切割需求,照 80/20 定律的方式...我有看到以 SQL Server 承载 200 Tera bytes 的系统:)
网友: 胡老师 SQL SERVER 的数据与ACCESS 数据交互 能用作业实现吗?
胡百敬: 看你的需求,你可以建立 linked server 连结到 Access,然后就可以直接以 SQL 语法存取,自然可以建立作业。
网友: sql2005的索引机制有什么改进吗?
胡百敬: 其实,这些参照 Books online 比较详尽。我只能说我印象较深的是 include 字段语法,让建立的 cover index 比较有效率。另外,在建立与维护索引时,可以更好的控制,例如使用 cpu 数,以及同时有人存取数据时,还可以在线维护索引。
网友: 请问SQL2005在使用难度方面有没有变化?
姚巧枚: SQL Server 2005 提供了更丰富的功能与开发工具。因此在使用上会觉得较以往难。而难易度与功能多少是一体两面的,你只要挑你用的到的去学就好。大体上我们会将数据库分为管理、开发、BI三部份。若要三个面相都很厉害的话那就是SQL 铁人了。
网友: SQL Server 2005从Beta的放出到现在也就是一年多的时间,如何来创作此本书籍的?
胡百敬: 约 2002--2003年 我就被台湾地区的微软要求追踪研究这个产品...因为我们要在导入产品时,能够解决问题 :)
网友: SQL Server2005的新特性为开发人员提供了哪些便利?
邹建: CLR/ado.net2.0/smo, 使用sql方面, T-SQL改进了不小, xml数据类型也是一个非常不错的东西。
网友: 胡姚两位老师以前还写过什么书吗?
姚巧枚: 胡老师写的书比较多也比较广,可以上 google 网站搜寻胡老师的名子即可找到相关书籍。
网友: 两位老师的新书里是否讲到报表功能?
姚巧枚: 新书里面会有一章在讲如何开发报表,不过里面谈的大部分是Reporting Services 2005新增的功能。
网友: sql server2005对非管理员帐户使用正则表达式处理函数有开放权限吗?
邹建: 当然有开放。
网友: 对于数据分析服务这块的看法是什么?
胡百敬: 就台湾的产业而言,因为制造与服务导向,需要节约各种成本,以及比客户更了解客户的需求,因此很重视对资料的深入分析。 AS 2005 比 2000 的功能庞大了一倍以上,且从设计的理念有根本上的差异,虽然还是保持了向前兼容,但若真要好好发挥 AS 2005,恐怕要重新考虑,重新设计。
网友: 在我们转向2005的过程中, 我们需要注意那方面的问题呢?
胡百敬: 在 Books online 上有表列两个版本的不兼容性,以及提供 Upgrade Advisor 做事前的分析。你可以先用 Upgrade advisor 稍作分析,再决定如何因应。另外,2000 和 2005 可以同时安装在同一台机器上,从 2000 备份出来的数据库也可以 restore 到 2005(反向不行),所以你可以先行测试。
网友: 对于SMO来说,您觉得这种功能的提出意味着什么?将主要应用于什么场合?
姚巧枚: SMO 在设计上尽量延用前一版 DMO 的设计架构与对象名称,但由于 SQL Server 2005 大幅新增了功能,因此 SMO 可以说是 DMO 的 Superset,它必须完整支持 SQL Server 2005 的各项新功能,如 HTTP Endpoint、数据表和索引的 Partition、Snapshot 交易隔离层级、XML 数据型态与 Schema、Service Broker Services…等等。透过 SMO 可以管理 SQL Server 7.0、2000 以及 2005 等版本,但对于更早的 6.0、6.5 版本可能就无法完全兼容了。你可以透过其内丰富的类别完成 SQL Server Management Studio 与SQL Server Configuration Manager 等各项管理工具所提供的诸多功能。
网友: 如何处理海量数据,比如:导出、备份、查询等。
胡百敬: 切割功能、使用者、数据存放。数据再大量,都会有 80-20 的分布,80% 的人只用 20% 的数据,80% 的功能用 20% 的运算力就可以满足。将耗资源,不常用的大量数据与常用的功能切开。
网友: sql server 2005对linux和BSD的支持怎么样?
胡百敬: 依据微软的惯例...可能不会支持。
网友: 问:对于XML的加入以及XML存储格式的加入,您觉得意味着什么?
胡百敬: 未来,数据出了数据库后,不管是用 Web Service 传递、利用 BizTalk 等整合流程、以 .NET Dataset 开发,以 Office 的文件存放,以 Browser 浏览...任何地方,只要描述数据,就是 XML SQL Server 2005 支持 XML 只是遵循 ANSI SQL 2003 的标准,其它如 Oracle、IBM DB2 也都支持。这是一个必然的趋势,让存放与使用更为一贯。
网友: 我是一个初学者,现在刚毕业不久,想知道是否能读懂两位老师的新书?
胡百敬: 老实说,我和巧玫合写的开发一书有点难...可能需要有 SQL Server 的使用经验。
网友: 对于XML的加入以及XML存储格式的加入,您觉得意味着什么?
姚巧枚: SQL Server 2005 将 XML 包含在 DB 内,而不是在 DB 的数据表内存放着相关的管理信息,以及指向档案系统上的 XML 档案。这代表着与其它关联数据处理享有相同的搜寻、更新、安全机制、备份/还原、交易管理与记录稽核等等,也就是一致性地管理各种型态的数据。 以下列出放在 SQL Server 2005 的好处供你参考: 1.管理上的一致性,例如整体数据的备份/还原、安全控管、复制 (replication)。 2.需要验证数据的正确性,例如 well-formed 和透过 XML schema 确认(validate)。 3.前端应用程序存取技术的一致性,统一用相同数据库存取对象(如 ADO.NET、OLE DB、SOAP 等等)与 SQL Server 2005 存取资料;而不需另外藉助如档案系统对象来读取与存放另存在外的 XML 档案。 4.XML 数据与其它的数据域位有关联,在存取时要互相参照,以完整呈现或过滤资料等等,而这些功能可以透过整合 XQuery 后的 T-SQL 办到。 5.透过 XML 索引提升查询 XML 局部数据的效率。
网友: 能不能说说sql server的tsql与标准sql有什么区别?
胡百敬: T-SQL 是 ANSI SQL 的延伸,尽量支持 ANSI SQL 的规范,但若说最为符合的交集是 ANSI SQL 92,其后 ANSI SQL 99 和 2003 都只能陆陆续续增加支持。但 T-SQL 本身也有一大堆自家的特色。因此,若你需要跨不同的 DB,或是未来的趋势,可能需要稍为暸解 ANSI SQL,否则,若专注 SQL Server,则只需要读懂 T-SQL 就够了。
网友: 为什么SQL SERVER 2005那么占内存
姚巧枚: 这个部份可能要看你如何使用,才能了解为什么会那么占内存。
网友: SQL SERVER2005的推出会不会意味着更多的SQL SERVER的DBA的涌现?
邹建: DBA的涌现跟sql server本身没有直接关系, 市场需要的结果.
网友: 请问胡老师,nonclustered index中,会对主键排序么?
胡百敬: Primary Key 和 Nonclustered index 不可以混为一谈,Primary key 的基本要求是 unique、not null,另外,我们会选择符合需求的最小长度字段。而 Nonclustered index 就是数据表本身照所选择的索引字段顺序摆放。所以 Nonclustered index 就是数据表。换句话说,若你两者选的字段相同,自然就是相同的排序,若两者选择不同,PK 会有独立的索引结构,而 Clustered index 直接排序整个数据表。
网友: 作为初学者,我们应该直接学习2005呢?还是从2000开始学起?
胡百敬: 直接从 2005 吧。
网友: 《SQLServer 2005 开发圣经》在大陆有买的吗?怎么哪里都找不到呢?
姚巧枚: 台湾地区的[SQLServer 2005 开发圣经] 就是大陆发行的这本[SQL Server 2005数据库开发详解] http://www.dearbook.com.cn/book/108133。
网友: 胡老师在台湾地区是做讲师吗?在何处任职?
胡百敬: 我是恒逸信息的讲师,台湾地区微软、联合报系、睿智...等公司的顾问。也有受大陆微软的邀请,到大陆讲过课 :)
网友: 请问 sql2005 中有物化视图的概念吗?
姚巧枚: 可能没有直接的对应,或许indexed view和 replication 等功能的组合有些近似。
网友: 如何设置查询分析器的自动缩进,有这个功能么?
邹建: 暂无。
网友: 怎么找出长时间没有使用过的存储过程吗。还有出错的存储过程。还有有的存储过程和函数执行时间太长,造成死锁有什么好办法吗?
胡百敬: SQL Server 的 Profiler 可以录制 SQL Server 的使用,你可以录制一段时间后,再分析 SQL Server 的使用。其实,我一直强调切割,过大的预存程序、数据表...没有效率也不好维护。同时会造成 lock、block、dead lock 等等。或许 SQL Server 2005 你可以用 Profiler 录制并分析 dead lock 等成因。若在 2000 则需要透过 DBCC TRACEON(1204,3605)。
网友: 两位的新书中有没有讲解XML数据访问的内容?
胡百敬: 有。
网友: sqlserver 32位版 与 64位版 性能差距有多大?
胡百敬: 这样的询问有些空泛,我比较建议先商借机器测试。一般来说 64 bit 一定比 32 bit 好,但好多少,要看你的数据库设计,存取方式...无法一概而论。
网友: 有没有在写sql server2005程序开发的书?
邹建: 还没有。
网友: 对于Reporting Services, Intergration Services等等,您觉得这种功能的加入对程序员现有的改变大吗?
胡百敬: 看程序员的工作,若他原来的工作是在做数据整合,或分析报表则会有很大的影响,但若不是,当然影响不大。
网友: 以前我经常听说sql server2000的数据库100百万运行效率与oracle不相上下,如果超过百万则不然。不知道现在2005的数据量可以达到多少?
胡百敬: 其实,我比较不会这样比,而是怎么样设计数据库。我所顾问的 2000 数据库案子上千万笔纪录,数 tera 数据的都有。效能是以使用者满意为准,若使用者可以接受,则选择拥有成本最低的方案。
网友: 以前用SQL Server 2000做网站,使用时间长数据库占用内存非常大,不释放。2005 会解决吗?
邹建: 这个有改进, 不过, sql始终是优先获取未用内存, 以保障效率。
网友: SQL2005的查询分析器能不能独立出来用啊?
姚巧枚: SQL Server 2000 的 Query Analyzer 在 SQL Server 2005内 以改在SQL Server Managemet Studio 使用。另外将以往的索引微调精灵(Index Turing Wizard)单独扩增一个应用程序,称为[Database Engine Tuning] 协助使用者在尚未深入了解数据库结构、索引、数据分布统计、索引检视(Indexed View)和数据分割的运作原理之前,就能够有效地建立这些对象以提升系统效能,而不至于误用导致效能更差。
网友: 《SQL Server 2005数据库开发详解》适合的读者人群是哪些?
姚巧枚: 想要开发数据库系统的人员,以及稍有SQL Server 以及.NET使用经验的人。
网友: 2005据说有BI功能,能否介绍一下何为BI?
胡百敬: Business Intelligence,主要是整合多个资料来源,累积大量历史数据,弹性而深入的分析,这需要 Integration Service(ETL 工具)、SQL Server 2005 当作 Data warehouse、AS 提供多维度分析,和 Data mining 预测数据。以及透过 Reporting Service 呈现,一般还会搭配第三方的工具程序在前端友善地呈现分析结果。
网友: 书中对于事件探察器有没有深入的讲解?
胡百敬: 有介绍 Profiler 的使用方式。
网友: 有没有开源的BI研究用数据库推荐?
胡百敬: 比较没听说...BI 虽然在竞争越来越激烈的企业中将不可或缺,但目前的普遍度还不广,可能还需要这些社群的关注。
网友: 以前是做程序工作,现在想进入DBA这个领域,怎么迈出学习的第一步?
姚巧枚: 先找一些入门的书,如数据库分析设计(例如什么事数据正规划),以及学会如何使用T-SQL 语法,进阶部份就是学会如何对数据库作灾难复原的工作,(例如 Backup/Restore 、Cluster 、Mirroring),以及较常用到的数据转换部份(例如 SSIS)。
网友: 在台湾 使用SQLServer的数据库开发者占多大比例?
胡百敬: 台湾比较特殊,因为大多是中小企业,所以 60% 以上用的是 SQL Server :)
网友: sql server 2005是否开放了更多的服务器或数据库底层的配置参数?
胡百敬: SQL Server 向来不是很突显设定,但其实他有一堆可以透过 sp_configure、sp_dboption 和 dbcc 设定的属性。与 2000 比起来,设定项目应该算是互有增减吧。
网友: SQL2005有哪些针对 集群服务器 的特性?
胡百敬: SQL Cluster 功能面与 2000 差不多,节点变多,标准版本也支持,稳定度较高 。但 2005 比较强调新增的 Database Mirroring、Database Snapshot
网友: SQL Server 2005 在核心引擎中加入了 .NET 的公共语言执行环境,是这样吗?两位专家的新书里有没有提到相关内容?
姚巧枚: 有。
网友: sql2005中表的关系图能达到自动了吗,就像access那样自动生成的。
胡百敬: 你点选增加数据表到数据库图表中,它就会画了,不知这样算不算你要的自动 :)
胡百敬: SQL Cluster 功能面与 2000 差不多,节点变多,标准版本也支持,稳定度较高 。但 2005 比较强调新增的 Database Mirroring、Database Snapshot。
网友: SQL Server 2005 在核心引擎中加入了 .NET 的公共语言执行环境,是这样吗?两位专家的新书里有没有提到相关内容?
胡百敬: 有。
网友: SQL Server 2005 在核心引擎中加入了 .NET 的公共语言执行环境,是这样吗?两位专家的新书里有没有提到相关内容????
姚巧枚: 是加入了CLR。书本内有提到如何使用.NET开发 SQL Server 2005 的预存程序、触发程序、使用者自订函数、使用者自订型态以及使用者自订汇总函数(Aggregate)等五种。
网友: 2005比2000在安全性方面有没有进步?
胡百敬: 哇,这进步很多,是微软的宣传重点之一,如Schema、加解密、Certificate、Password policy、Agent Services Proxy...好多,好多:)
网友: 有没有办法sql server的数据转换到mysql中?
胡百敬: 我没有实际试过...但若 mysql 支持 OLEDB、ODBC 就应该可以透过 SSIS 或 2000 的 DTS 转换若实在不行,一般我们会直接转成文本文件,如 csv,在用对方的工具转入。应该没有问题
网友: 请邹老大解释一下字段是什么?
邹建: 字段是表的列的集合, 表的纵轴。
网友: SQL server2005内嵌了对.net的支持,对XML的功能进行了增强。如何来看待这两点的转变?
邹建: 开发人员可以用自己擅长的东西来操作数据库了 :D
网友: 能谈谈自增字段的工作原理吗?
胡百敬: 设定字段启动 identity 属性,并设定初始值(initial value)和递增值即可例如 create table tbl(c1 int identity(1,1))
网友: 有人关注BI,能讲一下BI么?
邹建: 你是想了解BI的技术, 还原剂BI这个职业的前景呢? 目前在国内, BI这个职位的人员很稀缺. 台湾好一点(我们公司在这方面现在根本招不到人, 只有培养)
网友: SQL server2005内嵌了对.net的支持,对XML的功能进行了增强。如何来看待这两点的转变?
胡百敬: NET 将可以大幅延伸 SQL Server 之 T-SQL 的不足,例如从服务器端直接整合因特网的资料、做 Regulare Expression 的比对等等,你可以想见 .NET 数千个 class 可以帮 SQL Server 做事,由于 SQL 2005 还支持 Web Service、Service Broker 等等...而 SQL Expressis 还免费,因此 SQL Server 有可能兼着做 AP Server XML 在前面有谈过,未来在数据应用上,将是 XML 的天下
网友: 对于有一定的SQLServer数据库实践经验 希望更上一层楼的中层开发者 有什么建议?
姚巧枚: 知识应要广要深,就数据库方面,你应该多深入探讨T-SQL 语法,或是如何建立大型数据库(例如 Dataware House)..等等。另外,应多了解如何使用.net开发程序,因为SQL Server 2005 大量与.NET 合作,若学会如何使用.NET 将能在使用SQL Server 时 更得心应手/
网友: 搞BI的一般都不用SQLServer。
胡百敬: 若单以 BI 产品的市占率而言,其实 SQL Server 在全球是第一名。但 BI 在全球的流行程度还不若 OLTP 的必要。一般会先有大量的 OLTP 数据后,再谈 BI。 BI 的流行程度不足,连美国都是如此,为此我还到美国加州教老美 BI...:)
网友: SQL SERVER2005是否有字符串正则替换和查找的功能?
邹建: manger studion的编辑可以, 没有T-SQL支持, 但可以自己写CLR。
网友: 处理海量数据时应遵循那些原则。
胡百敬: 切割需求、存放、使用人、批处理时间... 早期测试,调整架构小心设计索引避免长时间交易。
主持人: 为时2小时的聊天活动现在正式结束!感谢大家的参与!也感谢我们的嘉宾胡百敬,姚巧玫和邹建!