SQL Server中国周
和微软数据库顶级专家面对面 共讨大型业务应用技术最佳实践

主持人(熊建国):
各位网友大家好,各位微软专家以及IT168的专家,欢迎大家来到IT168。

首先请允许我简单介绍一下IT168,IT168是主流的咨询网站,我们的媒体理念是“拉近客观事实与用户的距离”,IT168企业服务群组主要定位于企业用户,我们有一个注册会员达150万的社区,也就是ITPUB社区,根据统计资料显示,里面有达到60%的会员都是数据库管理和数据库开发的人群。

今天我们有幸请到美国微软顶尖的设计技术专家和ITPUB的专家代表,在这里齐聚一堂,共同探讨数据库大型业务应用设计最佳实践,下面请各位嘉宾自我介绍,和我们在线的网友打个招呼。

 

金立钢:
大家好,各位线上的朋友大家好,我叫金立钢,来自于神州数码中国有限公司,目前主要在SQL Server 2005的商业智能领域进行工作,主要负责中国的政府以及大企业集团的决策支持系统。

刘如鸿:
大家好,我来自百合网,叫刘如鸿,在目前公司主要负责公司战略性的产品研发工作,包括整体的架构和研发。我们主要一些业务都是在SQL SERVER 2005平台之上。

王翔:
大家好,我叫王翔,来自于中国海关,我的主要工作是负责信息相关应用的开发设计,另外负责一块信息安全的运作。

 

S Muralidhar:
我是微软 SQL Server数据编程性团队首席架构师,目前专注于移动和嵌入数据库、客户端/中间层数据与应用程序架构设计。在加入微软之前就职于Oracle公司。

 

Anton Kirillov:
我是微软SQL Server Relational Engine 编程性团队测试经理。1998年加入SQL Server开发团队。,非常高兴来到中国。

 

Howard Yin:
我下面做一个自我介绍,我在微软工作了七年的时间,在这儿之前一直是在美国东部从事一些DBA的工作,在微软之后有五年是一直做咨询顾问,在最近两年是加入产品开发团队,我们这个团队主要是在一些大的项目上、技术上取得一些发展、提升。在中国地区我们也跟很多企业进行积极的合作。

 

主持人(熊建国):
我们邀请了三位非常具有代表性的ITPUB专家,下面请他们分别介绍一下自己公司一些相关的业务和系统。以及应用SQL Server数据库的情况。

 

金立钢:
在神州数码我们与微软的合作是非常紧密的,我们有很多平台都是绑在SQL Server2005,或者是SQL Server2000上面,我们在SQL Server2005年当中应用最广泛的是商业智能,它给了我们一种可以说是全新的感觉,包括它的数据仓库,包括ETL,包括多维数据分析,以及前端的数据展现。

目前我们一个非常典型的应用就是在海淀区政府的决策支持系统,我们知道作为一个政府来讲,它需要大量的信息来决定任何的一个计划,或者是明年需要做的哪些事情。

在这套系统当中,它包含了20多个委办局的数据,包括发改委、财政局、税务局等等,那面对如此大量的数据,以及这么多的数据源,我们需要用ETL进行整合,加载到多维数据库当中,进行多维数据分析,在整个政府当中所有的人都会来使用这套系统。

我们用SQL Server2005完成整套系统的搭建,包括数据的存储、集成、商业智能、展现等等,整个开发以及部署的过程我觉得还是非常顺利的, SQL Server2005基本上完全满足了我们对系统无论是功能性还是效益的要求,客户对我们这套系统也是非常满意的。

刘如鸿:
大家好,百合网是一家专门的分类网站,我们整套系统包括前端跟后端全部都是用SQL Server来提供的。目前为止我们最高流量是在一台SQL Server和Server上创造的。

我们公司是在05年5月份开始快速发展起来的,到2005到2006年初这半年的时间,我们整个百合网发生了快速的变化,从0个用户增长到四百万用户,我们通过不断对SQL Server的应用、优化、调整来完成这些目标。

目前百合网系统中,对SQL Server的使用包括三块内容,一块是在线用户系统,所有用户是以SQL Server来做存储的,还有就是对分类用户进行一些业务分析,能够找出关键的业务环节和一些重要的客户负载,

另外我们启用了SQL Server 分析服务,后端是用SQL Server 2005,为了解决寻求业务不断膨胀的时候,以及像优质会员,提高服务质量,拓展销售的模式,拓展整个服务的渠道,这样整个公司都是建立在SQL Server之上的。因为我们之前从零到四百万的时间我们仅仅用了半年的时间,我们相信在后续的一些应用里面还是能够达到我们业务上的要求。

王翔:
大家好,对于我们来说应用开发是一个数据库产品,SQL Server作为其中一个主要的选择,我们已经将它应用于数据线开发、测试以及部署的全过程,那么SQL Server其中一个应用型和义务属性,这是我们选择它一个非常重要的原因。

另外就是我们在做容灾的过程当中它也是很有帮助的,它自身配置比较方便,和第三方产品结合的时候也是不错的,我们更多将SQL Server与其他相关的产品都是集中在一个体系里面。在我们这边更多强调是一个运维,

另外我们这边数据交换,对外数据交换和数据下发的工作量比较大一些,SQL Server在这方面提供比较不错的支持,尤其是管理方面还是比较方便的。

开发还是一个其次的工作,在运维过程当中通过SQL Server以及相关XMI的支持,建立一个比较完整的技术运维体系,可以保证我们在运维过程当中会及时的了解产品和应用系统的一个运行健康情况。

熊建国(主持人):
下面请微软专家介绍一下SQL Server2000/2005在一些大的关键性应用方面的案例。

S Muralidhar:
简单介绍一下,Server作为数据库品牌和开发的品牌,我觉得值得补充的是我们在应用开发的整合,这个趋势也是越来越大的,非常紧密的结合,有这样一个架构,非常传统的架构,越来越发展成多层次的(n-tire)架构。

那么整个应用各种各样的提高,就是在服务性方面的提高,比如说SOA的架构,前不久在纳斯达克有一个非常优秀的架构师,在《华尔街日报》上做了一次现在在金融行业,特别是证券交易行业、IT投入的趋势,又提到现在发展的趋势,从以前专一的追求高可用性,就是在每一个层次上都追求高可用性,开始从以前绝对的高可用性,到现在追求一个合理的高可用性和合理的可恢复性。这样的话,使IT的投入变得更加合理,因为他们意识到一个非常重要的问题,就是在整个IT系统的建立上不可避免会出现问题,从你减少问题,提高高可用性的角度上,可用性提高越高,投入的资金将是会成几何倍的增长,如果我们在整合应用数据中使用这种高服务的技术,同时在提供合理的提高可用性的同时,能够更加合理的提高恢复性的数据,有错误,系统出现问题能够非常快的恢复,运作,这也是现在系统架构发展的趋势。

从一些成功案例来说,最近我们在东亚地区有一个核心银行业务,这个国家他们对银行业务也有非常高的要求,前不久有一个例子,有这么一家银行,他们有十分钟的下线时间,这个国家规定所有的这家银行的业务全都要停止营业一个月来整顿它的IT行业,这对它整个的营业,是整个公司的声誉,公司的业务有非常大的影响。所以我们这个系统对高可用性、高服务有非常大的要求,基本上我们做到就是整个能够自动修复所发生的错误。

那么发生错误的时候,所有切换都是在30秒以内,每一个层次都有互相保护的机制,互相保护可以达到将近一分钟的时间,这样整个系统在一起就能提高一个非常强大的在线的,我们在韩国做的电信电话公司,它的核心业务技术是传统的OSS的系统,那么这个系统原先实际上也是一个整合技术,原先韩国电信有九套分散的是使用是别的系统,整合之后完全整到一个SOA的架构。

技术上当然是有很多可以探讨的地方,也有很多地方可以交流,我们觉得从它的业务最主要的是业务上的,根据韩国自己内部的统计,每年花在保养、维修、支持整个IT的投入,节省了九千万美元,就是每年。同时更重要的一点就是他们能够更加迅速的推出新的服务,而通过SOA的这样一个高服务性的架构,他们使用SQL Server对他们今后工作业务不同的要求做了合理模块分割,每一个模块都可以根据工作流的需要,工作量的需要自己扩充。

所以我觉得微软SQL Server实际上作为整个的开发,可以帮助这个平台更快的、更有效的提出一个解决方案,能够看到效益。

那么最近他们推出了一个宽带业务,是高速无线宽带业务,如果使用他们传统的,需要超过一年的时间来开发后面的支持系统。那么使用他们现在高服务性的系统,那么在三个月里就要完成整个系统开发,然后推出新的业务。

我们在高性能的,高扩容性的基础上做了一些业绩。比如说在美国大家比较熟悉的纳斯达克的交易系统,这个我们也做了一部分工作,伦敦证交所整个平台都是微软的技术,这个就是简单的一些介绍。我们还有很多的案例,因为时间有限就不多说了。

熊建国(主持人):
听了各位专家介绍的案例,其实我们已经发现很多核心的大型应用,包括管理应用都采用了SQL Server技术,特别是SQL Server2005这个版本出来以后,很多网友认为这是一个企业级的产品。那么我有一个问题跟大家一起来探讨,微软SQL Server数据库多年来一直是低端产品的印象,我想跟大家一起探讨一下,在用户当中这种印象最深层次的原因有哪些?形成这种印象的原因是什么?

金立钢:
刚才我们几个也在聊这个话题,我是觉得因为一直以来中国最大的客户,就是在IT行业的客户,应该是中国的政府以及大企业集团,我们知道在经过了很多年,可以说将近十年的中国的信息化建设,那么中国的政府以及大企业集团,他们的信息化水平有了很大幅度的一个提高。

我们因为在神州数码,我们最主要的客户就是政府和这些企业集团的客户。那么我们到客户那里去,有一个很深的感受,就是它很庞大的机房,它现在的机房都很规范,包括各种应用服务器在里面,都已经搭建起来。

我想说的是在这几年信息化建设当中,中国的这些网络化建设,包括政府的信息化的建设,那么在这些服务器的搭建上面,我们知道更多的是analysis平台,而不是Windows平台,这样我觉得对于SQL Server的应用起到了一个很大的限制,

因为在目前的大形势下面,我们可以看到在客户整个信息化机房当中,大部分都是小型机,或者是P50系列的显示器,我们想放一台WindowsServer进去,对我们来讲,对客户来讲都是困难的一件事情,所以说这也产生了我们SQL Server数据库能够在客户应用方面有一些限制。

对于我个人来讲,因为我是微软的粉丝,比较庆幸的一件事情,我发现在政府的机房里面,Windows Server这样一个操作系统越来越多起来,我们所做的利用SQL Server2005做的决策支持系统,各种分析系统也开始在客户那里应用起来。我觉得至少现在是一个好的苗头,我们也在努力去做,希望客户更容易接受这样一个产品,但是我相信这肯定是一个过程。

刘如鸿:
有一部分中小企业,SQL Server只能应用在小型应用或者中型应用,不能做大型应用,其实这个是很矛盾的,我们也提到了我们的用户,从0个到现在只用了半年的时间,如果我们直接采用mysql会产生很大的问题,那么再一个在相对低端的快速增长的过程时候,SQL Server是非常合适的系统,但是同时我们也发现了一个问题,就是为什么我们开始用SQL Server很容易,因为它很好用,你从第一个用户到五十万用户,一百万用户的时候你都不用动,很好用。

但是为什么人们会认为这个产品低端?是因为我发现在从四百万再往上跑的时候,我要对它进行一些特别深入的性能调用的时候,就是写一个很简单的数据库脚本,你无法在它提供的操作界面里面完成这些设计,所以这个时候你越做高端的时候,你希望它的架构是开放的,希望对它任何控制上有一个精准的控制,包括对它的内存,有一个精准的控制,这方面也是跟整个SQL Server的体系有一些关系。但是Oracle这一点上觉得我什么都能干,所以我是高端的,SQL Server,他也是什么都能干,但是大家都觉得它不行,实际上很多都可以做。就是对标准性、开放性宣传得不够。

熊建国(主持人):
形成这种低端的原因还有哪些呢?

王翔:
我个人觉得有两三条原因,早期使用SQL Server的时候,Windows平台自身比较缺,在这种平台上做SA,或者做存储的时候能力相对有限一些。

第二点,作为一个DBA更习惯于稳定,更习惯用脚本,SQL Server里面需要通过UI来交互的,可能跟使用习惯有关系,第三就是配置因素,其他两个主要的数据库他们配置相对多一点,SQL Server很容易让人忽略其中很多细节的定制,第四我觉得是和培训有关系,SQL Server更多是基于UI的,有一些UI是用不了的,遇到问题的时候会打一些折扣。

熊建国(主持人):
还有一个问题,SQL Server的易用性会不会成为它低端性的一个原因呢?我发现学校里面好多学生,他们学习数据库、接触数据库大部分还是在SQL Server,这是不是它成为低端的一个因素呢?

刘如鸿:
应该会的,因为它太好用了,太好用的结果就是我什么都不用想,装上去用就完了,真正出问题的时候那些UI就没有用了。

Howard Yin:
有一个问题,如果同样工作量,同样具有挑战性的管理,如果你用的不是SQL Server,是不是肯定有一个更加完整的文档,更加完整的脚本来管理这个系统?这个答案一定是肯定的。实际上我们也看到很多这样的例子。

微软这个平台我觉得是有一个非常优点,就是容易上手,而且非常容易使你在非常短的时间内看到结果。但是我觉得这也是一个非常好的,就是我们往往忽略的一点,当有大量的工作量,海量的数据量,那么我们的管理,我们的操作,我们的运用都需要跟企业级的管理来支持这样一个企业级的平台。

那么从产品的角度来说,我们觉得这也是一个发展过程。大家可能知道SQL Server的诞生也用了很多的时间,我们也知道SQL Server早期的发明实际上是基于Sybase数据库,真正我们从Sybase这个应用里面走出来,实际上积累了很长时间。

这个起点是我们第一步。我们在这个过程中学到了很多的经验,在2000年时候在企业里应用,这也是一个过程。把我们重点放在怎么样这个数据库更好的在企业中得到应用。所以从起点到2005这个过程当中我们整个开发的重点实际上是围绕三个主体,一个是企业级可靠的数据,

第二个是一种动态的开发环境,非常动带的能够满足用户开发的需要。第三,就是我们说商业智能,怎么样从数据中挖掘出来我的价值。

另外一个企业级的数据库,不光是我做了一个企业级的定位就能够得到成功,还需要一个企业级的管理,在整个这个阶层围绕的数据库的开发、数据库的管理、数据库的使用,这里每一个都需要企业级的认识。我觉得微软和业界和我们合作伙伴一起努力。

数据表、在线、索引操作,这些功能都是针对海量数据,怎么样能够更好的操作好,在短时间操作好。所以整个针对对象是企业级的使用。那么我们觉得2005这个版本,我们比较自信的是完全能够承担任何工作的量,企业的工作量,都可以做到,从整个SQL Server的大环境,还是需要做一个整合,

所以从这个出发点我觉得微软需要做的是怎么样能够帮助在中国整个IT行业提高大家对SQL Server的认识,帮助他们提高使用性,这才能成为一个成功的企业级数据库。

所以这是我们希望今后一个能够和大家一起合作的方式。虽然各个数据库的功能有不同的地方,使用的方式有不同的地方,但是真正做好一个系统关键是我对这个数据库,我对这个技术有多少了解,我如果能够非常好的掌握这个技术,能够掌握SQL Server应该怎么样使用,那么我们就能够避免走弯路,能够得到最好的效益。

S Muralidhar:
历史性的来看,在过去SQL Server是比较弱一些,从2005到2008,在今后会加入很多针对企业的,就是从整个产品来说完全适应企业的需要,我过去在Oracle工作了很多年,如果从整个产品的功能来说,做一个比较的话,我觉得SQL Server是完全能够和Oracle相比的。那么如果我们从整个业界的生态环境来看,SQL Server是完全可以成为一个企业级的数据平台。

Anton Kirillov:
我觉得这点也是一个发展过程,自然的发展SQL Server,从刚刚发展的时候是它的一个新的产品,还没有经过很多的考验,那么经过这么多年,从整个SQL Server开发团队来看是很大的,或者是非常强的一个团队,所以从我的角度来说完全是一个企业级的开发团队。

熊建国(主持人):
从各位专家发言的过程当中,可能用户对SQL Server形成低端产品的印象,有一部分是历史原因,那么对于SQL Server2005,它现在完全可以称为是一个企业级产品,它完全可以跟Oracle相提并论的产品,那么让这些用户来改变这种印象是需要多长时间呢?从低端的印象当中走出来,这个过程需要大概多长的时间?

金立钢:
我觉得这个可能是需要一个过程,因为我们现在正在努力的这样去做,因为我们在商业智能领域我们看到了SQL Server2005给我们带来一个全新的感觉,我们现在几乎所有的商业智能的架构都是基于微软的SQL Server2005来做的,给我一个很新的感觉,当我们去给客户演示的时候,我们发现他对于我们演示出来整个应用的功能和结果他是非常满意的,感觉很惊讶,他发现我们这样可以实现这样这样的一些功能,完全解决了他所有的需求。当他听到我们后台使用SQL Server2005的时候他也很惊讶,他没有想到SQL Server2005很低层的东西做到这样一个程度,当然我们建议他使用这套系统的时候的确是有一些难度的,因为他需要打破传统的一些东西,比如他需要在他的网络上面假设新的WindowsServer,我也看到中国很多客户正在摒弃这种SQL Server与Oracle与DB2之间的这种差别,他们慢慢在接受全新的产品,主要是他看到了SQL Server能够给他真正带来一些益处,的确是跟以往不太一样的,我觉得它慢慢是可以来接受SQL Server2005这个产品的,并且在他没有想到的时候我们又推出一个更新的办法,SQL Server2008,我相信2008的推出也会给增加他的信心,我觉得这个过程可能在中国,大概要持续几年的这样一个时间。

刘如鸿:
对于SQL Server,我觉得从微软的角度来说,我的产品很好了,但是没有用,很多人觉得这是一个低端的,那么这个问题,我相信还是在宣传,特别针对专业社区的宣传,为什么?就是“酒香不怕巷子深”,SQL Server也是一样.我们更多是需要得到很多社区人士的认同,因为这帮人是IT及信息化的驱动者。

这个认同我想更多是在于像SQL Server它的文档是很全的,但是我想更多是要在一些解决方案的文档,大家看到,我所在的行业层面可以用SQL Server,有一些高可用性、高恢复性,包括各个方面的,这需要有一些成功案例去支撑的,从我个人经验来看,我觉得应该在下一个版本正式推出的时候前一个版本会得到认同,也就是意味着2000推出的话是2005得到认同的,因为所有新鲜事物接受都是有一个过程的。

王翔:
产品的好坏靠广告不是特别有用的,我觉得现在有很多新的开发趋势,如果微软产品能够在这个趋势上赶上一波,可能更有说服力一点。相比而言,微软给用户定制的案例展现部分稍微有一些弱。成熟案例这个部分很重要,尤其是我们普遍在业务变化这么快,大家需要快速根据案例来搭建这种平台,如果有半成品东西出来,此外,企业级应用的话运维的考虑会更多一点,如果运维过程中出现一个Crash或者down机的情况,人们对对这个产品的认识就会出现一个滑坡,相比较而言仍然需要在Case,或者KB方面给大家提供更多模式化的建设方法,尽管大部分应用并不是基于模式化的方式来建设这个信息系统的。

Howard Yin:
我们这个团队有一些内部交流网络,有一些企业级的应用的案例。不过没有中文版,这个意见我会带回去。

 

熊建国(主持人):
刚才谈到社区的接受,如果社区大部分改变这个产品的印象,这个产品真的是企业级应用就非常非常快了,微软是非常重视社区的,特别是在2008这个版本出来以后。.

我觉得还有很大一部分人会接受这个企业级应用产品,现在我也注意到了一些现象,在高校里面,SQL Server2005很多学生都开始使用,很多学生都装了,大家知道六月份高校很多计算机毕业的学生都面临答辩,做毕业设计,我也注意到他们很多学生都采用了2005这个版本,我觉得这可能是一个比较好的推广,但是我了解到一个社区里面,学生里面也有反映,现在2005没有2000简单了,我觉得是不是学生有这种感觉,就是一个很好的2005走向高端产品的信号?(大家笑)

刚才各位专家已经给我们介绍了他们的一些成功的案例,讨论了在2005上面一些非常关键的大型应用,但是他们也做了相当多的技术工作,使得他们的应用能够成功地跑在SQLServer数据库上。下面我们可以让他们把这些问题提出来,让微软专家当面解答一下,可能这些问题它不是一个个体,是具有代表性的问题,下面请百合网的总编刘如鸿,把你在实践当中遇到的一些问题提出来。

刘如鸿:
.NET集成为开发人员提供了便利,但是是否会带来一个潜在的问题,那就大量的存储过程或者自定义函数采用C#编写的话,会不会导致性能问题?当初微软设计该功能的目的是什么?还有有一些怎么样的建议,肯定是有一些基本的原则,哪些应该做,哪些不应该做。

我们知道SQL Server能够用其他语言进行开发,会不会带来一个潜在的问题,因为我也碰到过这样的产品,就是我的朋友在使用SQL Server的时候,大量存储过程采用了其他语言开发编写。

Anton Kirillov:
我是直接参与搞这个数据库与CLR集成的工作,我对您提出这方面问题我感到非常的高兴。我来解答你最后一个问题,微软的出发点是把这个控制权,把这个能力交给在数据库上的开发人员,让他们直接能够在数据库上的引擎里面直接做非常有效、非常强大的开发,这样的情况下他们可以在数据最贴近的地方做最最复杂的工作。

在这个之前,CLR是一个开发的工具,更多是一个脚本的引擎,而不是一个全方位的开发理念,能够整合到SQL Server这个当中,数据库的开发人员能够在最贴近的地方做最最复杂的工作。那么从整个开发的界面来说,数据库开发人员可以直接用这个界面来开发,而且可以使用整个开发界面跟踪的功能,找错的功能。

刚才您也谈到性能,除了性能以外还有两点是非常重要的,一个是安全性,第二个是开放性,那么从这两点来说,当我们把一些语言集成到SQL Server引擎里面,我们实际上是把整个语言和SQL Server的安全做了一个整合集成,而且做了非常仔细的测试,非常长时间的测试来保证整个语言这个框架可以比较安全可靠的运行。

从性能这个角度来说,很多时候用户使用能够得到益处,从这个储存过程的数量来说并不是一个很大的,因为储存过程直接可以在服务系统表里面,你可以存几百条,也可以存几百万条在里面,从我们测试来说很多情况下用户都能够得以使用CLR来储存,

比如说用户自定义的存储过程,这种情况下可以使用数据库引擎,或者是把这个挪移到客户端,第一种做法要把大量的数据从数据文档;处理数据对性能的依赖,比如使用CLR这样一个办法,运作,用户自定义,性能会成几倍、几十倍的提升。

我再强调一下,就是当这个运算,很强大的运算是越接近数据就能得到越大的性能提升.我们在北京有一个数据库技术的讨论会,有这么一个演示,一个运算放在数据库用自定义函数,另外就是纯粹的T-SQL语言来做,需要看哪种方式性能是最好的。

我们在对数据使用的时候,SQL语言集成到SQL Server里面,但是如果做数据更改,使用数据,就是说做数据的增删改,T-SQL语言就够了,;如果当我们这个过程是一个非常强大、大量运算,不是数据的更改,是运算的时候的性能非常重要,我们就使用CLR编译存储过程。

另外的好处就是系统的资源,CLR需要自己的内存,需要自己的CPU,计算资源,所以这也是一个考虑,这是实际的状况,这个储存过程是不是合适,如果当这个服务器的资源有限的话,我们就需要把过程拿到中间层去做。

熊建国(主持人):
下面王翔这边用的过程当中也有一个问题。

王翔:
现在我觉得Web2.0和Internet,还有数据库本身越来越广泛了,但是在使用SQL Server的时候发现如果基于XML,就是做数据更新的时候,我发现效率相比较其他的产品。有一些问题,我不知道这是我们应用的模式,还是SQL Server2005内置的存储机制上的作用,谢谢。

S Muralidhar:
在2005这个版本基本制定,在2005这个版本实际上是提供非常全面的支持,从索引这个角度,包括从后面整个系统检索这一个方案的优化,在2005这个版本体现到非常大的性能提升。

我补充一下,实际上我们也是看到将来的发展,SQL Server2005现在怎么样更好的使用更加功能强大的XML,支持到这样的数据系统,因为微软现在基本上所有Office的文档模式都是XML格式的了,从SQL Server这个角度来说,我们至少要对我们自己文档形态有一个更好的支持,对所有的都要有这样的支持,今后的发展,版本的发展,我们会对他们更加的支持,具体对相应版本的支持我们会有的。

王翔:
请两位专家能不能提出一些比较指导性的,在CLR和T-SQL的选择上,有没有一些比较好的建议.

S Muralidhar:
我的想法是如果你的数据使用的是非结构式的,如果数据是非结构式的,公开使用的,没有固定的模式,这样情况下是比较好的选择,提到什么时候是要使用索引,关键是你怎么样使用数据,还有你对使用的状态是非常重要的,是需要看到当中一部分的数据,还是对整个数据都要了解,当你对这个使用的状态有一个非常好的定义,接下去设计就会非常简单。

刘如鸿:
其实我们用户数据索引是半结构化的,就是你的索引有一百个,或者更多,但是我们不能确定是从十个开始或者一百个开始,像这种情况能不能用?像这种情况性能上的优化怎么考虑?

Howard Yin:
针对这个用户是有非常大的需要,分散性的,数据有一个特点,像我们这种状态,可能有几百个索引,实际上真正有数据的可能只有一小部分,那么怎样从索引建立一个储存方面都能够体现到这个,所以在下一个版本我们会推出这种。

熊建国(主持人):
金立钢做BI咨询顾问的,在实践过程中,你这边有什么问题?

金立钢:
我这边跟两位一样,在使用过程当中也注意到了一些问题,我们在做数据集成的时候,因为我们要涉及很多的数据源在做我们商业智能集成,我们现在用SSIS,这样一个产品来做集成,在05之前我们是做用DTS来做,当我开始用SQL Server的时候它跟DTS出现了一个很大的区别。现在想请专家主要帮助我解决一个问题,SQL Server它目前的机制是什么样的,它跟DTS区别是哪些?

Howard Yin:
这是一个很好的问题,实际上我们在2005的时候是重写SSIS,我们开发这个产品的目的是建设一个企业级非常高性能的一个工具,完全可以作为一个独立的企业级的工具,从用户使用下来的结果,用户的反馈还是非常好的,那么DTS和SSIS相比,做的时候界面有一些相似。

但是有一个非常大的不同的地方,DTS是一个独一的限制,但是SSIS最大的一个性能,说当我走一次,读一次数据的时候,我可以并行的同时启动几个开口,几条渠道,这个渠道同时都是唯一的一次数据,同时可以并行来处理不同的工作,每一个工作有它自己的渠道,所以我可以并行的用最高的速度来处理我的数据。比如说传统的在BPS里面我有一个软件,或者是这样的数据形态,当我通过DTS,或者是读一遍做一个处理,或者是读一遍做第二个处理,或者一步一步来做处理。

那么在SSIS里面就可以把这个数据读一遍之后,在这一遍里边做并行的数据,同时可以做多种数据,所以并行的是SSIS性能提升最大的,我们整个在SSIS里面,将储存作为一个数据的管理,直接可以多个渠道,SSIS是因为能够做更多的工作,它可能就需要更多的计算机,更多的内存,比如说是非常强大的一些,我们可以在数据,读一次数据元的时候直接做,也可以直接和我的数据库做一个网站,这些都是对内存要求比较大的,计算平台,有大量的内存满足他的需要。

刘如鸿:
提供四种高可用性,我们可以看到镜像是最新研究的,我同时也看到一些细节,在所有SQL Server提到不提供技术支持。

Howard Yin:
实际上这也是一个蛮有意思的故事,我们在发布DBM的时候实际上是我的一个客户,跟我另外一个客户,是两个非常大的企业客户,我们决定要做非常彻底的大量的测试,能够满足最强大的企业级的技术.

那么当我们到DBM的时候,我们内部做的测试还不多,有很多客户在测试,所以我们不打算把它作为正式发布,又过了几个月时间,然后进行了测试,在适当的时候是选择性的支持。

其实在这块我们关心的,其实从概念上来说,我觉得DBM比原有的灵活很多,两位专家给我们讲一下,它相对其他的三种高可用性,它的特点是在哪里?

Howard Yin:
我简单介绍一下,DBM作为一个高可用性的工具,我觉得微软是作为对高可用性的,或者是高恢复性整个一系列产品的一个服务,它的特点第一是一个非常快的切换. 第一是对数据的保护,因为DBM它是可靠性数据库系统,对储存系统作为一个保护,和集群的技术相比,从切换的时间来说DBM会比集群要快很多,第二,对于数据元,数据的完整和保护,数据源,如果只有一个数据是没有办法对它进行保护,从数据镜像,DBM这个角度来说,在镜像里面通过SQL Server恢复机制使用多线制,把这个交易的日志交易重新恢复到数据库里,这个步骤就可以非常有效的保护,能够储存这个层次发现的问题,这也是一个非常重要保护,从我们现在客户支持他们的统计来说,绝大部分的SQL Server数据库,大部分都是有物理性造成的,通过这样一个机制非常有效帮助用户来保护他的数据。所以这也是一个数据库镜像的特点。

刘如鸿:
DBM另外一种解决方案,在一个源切入的时候,就是另外的源交给其他的一些技巧输出的这些,像这些有一些建议吗?

Howard Yin:
从我个人的看法并不是说你选用了这一个功能,数据库镜像,实际上是一个要根据用户的需要,主要是从两点,可以根据这个需要组合不同的功能,然后提供一个解决方案,最近我们在日本就采用了一个数据库镜像集合、集成,再加上日志转移,再加上储存的(英文)上面,实际上是使用了四套技术,包括三套微软技术和一套储存硬件的技术来进行它整个的解决方案。我觉得在设计整个程序的时候是高可用性跟数据恢复性的这样一个情况,所以我觉得两点是比较重要的,一个是你能够容忍多少数据,这个就决定我使用了什么样的技术恢复我的数据,那么另外一个非常重要的标志,就是我能够允许下线时间是多少,这就决定我切换的技术,是要什么样切换的技术。

那么如果你看一下微软整个的技术,DBM,如果我们使用同步的数据库镜像,那么我们机制上可以保证数据库,数据是不会丢失的。那么如果你看另外一些镜像技术,会有一部分的落后,跟你日志转移的时候,复制可能是在几秒钟,根据我允许丢失多少数据你可以选择合适的技术,另外一个就是切换的时间,数据库镜像可能是在30秒下就可以做一个切换,集群是在一到两分钟左右,我们曾经看到过30秒切换,也看到过两分钟切换。

我们也看到了10分钟的切换,要看你的工作流量,比如说你有一个很大的很长的交易,如果这个交易需要走20分钟,那么你当中要做一个切换,这个切换过程就非常长,所以一方面技术,一方面是使用,所以整个它们要结合起来考虑,有一个完整的解决方案。

王翔:
现在企业来说,SOA建设之后由于很多历史的原因,它的数据结构定位成这样了,但是我们通过组织管理可以相对有效解决问题,我想请问一下有没有一些技术的组合是比较适合这个的。

Howard Yin:
作为解决方案来说,我们主要是通过SSIS来做一些工作,如果你在这个上面做一个搜索,或者检索,我们有一个数据库会做完整的的解决方案,我们最近也收购了一家公司,这个公司它有一个非常完整的的产品,将来我们会把这个产品融合,用Office,Server,为用户提供一个完整的解决方案。

金立钢:
我这里还有一个问题,因为现在我们在做项目的时候,有很多企业他对实时的BI有很大的需求,但是这种实时的BI会存在一些性能的问题,不会像有些事情已经做好了这种形式,它不会有这么好的性能,如何来提高实时的性能以及实时的BI和客户平衡之间的这种需求。

Howard Yin:
实时BI是我们在SQL Server今后几个大的,刚才你最重要的提到就是客户平衡,到深层后面的,再这个过程所谓的实时BI,就是实时的把数据进入到BI系统,然后能够尽快得到反映,而不是说我看到分析的数据一定写的实时,我觉得非常重要的一点是分析数据和分析客户的需要,在这种情况下客户要求实时,当用户需要看到实时BI,如果你更仔细分析的话,非常重要的去定义它,从它的业务角度精确的是需要看到多少,那么从微软技术的架构和整个OM数据架构来说,分区是一种很有效的办法,新的数据进入我的BI系统以后,对数据的更改需要的做,这样的情况下尽量减低现有的工作量,挖掘数据量。实时BI,我觉得在现在如果只是这样一个数据进入数据系统,然后我们做了一个实时的更改,这个也还是有很大技术的挑战。

如果是在维度上,在今后我们会从技术上做出一些努力,来帮助实现这样一种功能,但是我们觉得这个功能是在我们的视频上面,但是那也是一个很大的,这个业界都在讨论怎么样解决SQL Server,我们会做很大的工作,但是我们不能说保证下一个版本就会实现。

金立钢:
就是说从目前的设计上来讲,你如果想提升性能的话要求你的性能是很高的.

Howard Yin:
对,就是你最后处理的分区一定要做得越细越好。

金立钢:
包括维度的设计,如果维度时间很长的话对影响也很大。

Howard Yin:
实时的时间如果你有维度的改变,当我的维度一旦改变,很有可能整个数据都需要重新做,如果维度不变的话我可以处理非常细的这一个分区。这样的情况下我们可以相对来说可以更加频繁的来处理,给我们尽可能实时的数据报告。

 

刘如鸿:
我们看到SQL Server2005给我们提供了ServiceBroker,这个是可以替代的功能,但是我同时还看到了Windows方面的一些,我觉得SQL Server它不上也不下,你们对此的定位是怎么样的?

Howard Yin:
我觉得这是一个定位的问题,,实际上都是从高服务性的架构,就是提供了另外一种选择,而且也是一个引申,有一个特点,实际上它也是一个机制,但是它的起点,终点都是要实时的数据库,这和WCF不一样,它的起点和重点是第三方,这是不一样的地方,那么为什么使用ServiceBroker,有一个优点,那么在ServiceBroker,是存在一个表里面的,从表里面去拿的,我可以同时做整个的对话处理,还也一个很关键的,就是在传统的机制下,通过ServiceBroker我可以发消息,有相互的依赖性,所以从ServiceBroke来说,我们在消息,就是加入了很多业务的东西,那么在里是做不到的,最近我们做了一个案例,是ServiceBroke的机制,每秒钟能够处理9000,我们在ServiceBroker的把握,对一次抓住大量的消息,我觉得这是相辅相成的。

从整个应用架构来说,WCF可以作为一个渠道,传统的做法我们经常会看到分散的交易,比如我的交易,我在整个交易里面数据库,使用了SQL Server以后,我可以通过一个数据库,把它需要做的一个远程的交易,给传递过去,很大程度上减低了要求,这是需要一时模式上的改变,以前就是说我做一笔交易,同步的改变都要发生在所有的数据库上,现在的改变就是我做的这个交易,我怎么样把这个一步的交易反馈到我这个主机上,这也是一个架构的变化。举一个例子,当互联网上的时候,你做一个交易的时候,是同步在一个交易里面去看我有多少库存。这是一个分布式的交易,作为用户来说,这个工作量很大的时候,这个分布式的交易就变得不切合实际。

所以我们经常看到去大的网站去订购一个产品,订购一些书籍,我把我的订单送到这个网站,他收到一个订单,我会马上把你这个货发出去,一步的把这个要求发送到全库存,查这个是不是有这个库存,没有的话就自动找下一个分散的计算点,一步的发送到送货部,等到送货部完成以后,它会再给一个消息说,完成这个工作。

所以这整个是一个观念的改变,比如说传统的去购买这个东西,是一手交钱一手交货,但是随着互联网的发展,电子商务的发展,越来越变成分散性的这样的机制,所以我们从消息的机制来提供这样一个服务。

熊建国(主持人):
今天在线的网友也提了很多的问题,网友问到SQL Server2005我们该怎么样做好物理设计,请问微软的专家有没有比较好的建议?

Howard Yin:
所以数据库和数据库之间是ServicesBroker非常大的一个改变,就是我可以把我的逻辑做在数据库里,由ServicesBroker来传递这个消息。

物理设计我觉得有几个方面,数据库是一个对存储要求非常高的系统,所以存储是非常重要的,现在也有一个大的方面,首先是做SQL Server一个架构,当一个交易进入自己的数据库以后,第一步做的工作就是交易,它是非常序列性的,支持这一个日志的,往往数量不需要很多,但是需要专业,来支持日志的部署。

这样的情况下它的读写,序列性读写不会被其他的读写来打乱。当然这个日志一般情况下你都要对它比较有好的保护。那么其他用户的数据库最主要的是能够提供最好、最多的,同时能够使用的,但是比较重要的当我这个系统开始进入一个非常大工作量的时候,我对读写进行缓冲的时候,那些缓冲是不可能满足所有的需要,到了一定时间这个缓冲还是要有新的数据写到硬盘上,速度实际上还是牵扯到后端硬盘的写读,所以在建设整个环境的时候,还是要考虑到物理性的分配最大数量满足我们用户的需要。

那么另外一个重点,就是我们往往在考虑需要多少存储,储存这样系统的时候,往往是考虑到我有多少数量,比如说我有一个数据,然后我去做,我们往往也看到性能需要多少,这个是我们非常重要的一点。实际上业界有几个工具我觉得还是值得试用一下的。

熊建国(主持人):
我们知道上周我们听到消息,我们对SQL Server2008的版本已经发布了,我们知道前段时间人们一直在猜测,新的版本是SQL Server2008,我们想请专家探讨一下,这个2008版本的细节和核心的理念?

Howard Yin:
SQL Server2008是一个独立的发布,刚才我们也简要提到了开发的重点,有三个重点,发展到2008的四个重点,第一是可靠的,第二是动态的开发关系,第三是一个商业智能的,这三点是不变的。

所以在这方面做了更多的性能提升,最新加入了一个就是数据的延伸,在2008年我们会提供在这方面数据,我会介绍一个新的时间数据的状态,提高更高的精确度,对时区这样一个概念,另外会提出对控件数据库的支持,对文档数据这块的支持,有更好的支持,所以这是在关系数据延伸方面做出了一部分研究。

值得一提的是,我觉得从企业级的应用来说,在企业级的应用里会有更多的改进,从管理,在座关心比较多的问题,就是SQL Server2008怎么样变得更加工作理想,实际上是管理策略基础管理的模式。

那么作为一个DTS,现在我可以对一个服务集群,或者一个组制定一个管理策略,这个策略包括我需要做什么备份,可以包括我需要做什么样安全的设置,我需要在SQL Server安装以后做一些什么样的设置和更改,所有这些都可以作为一个。

甚至包括我需要监视哪些指标,做出哪些反映,都可以做出一个策略,每次我发布一个SQL Server的时候,或者已经对发布的SQL Server我只要发布它的管理策略,然后根据这个策略SQL Server会自动的做出所有的动作。

所以这是2008提出的一个新的方式,就是怎么样帮助管理有效的更加大量的东西。2008,微软我们会对越来越多的支持不同形态的数据,而且会储存不同媒介上的数据,使这些数据能够为用户提供不同的服务,从数据集成到数据分析,到数据的挖掘到数据的交流、同步、复制,那么这些功能和服务就可以通过微软不同的产品来实现。所以这这也是微软数据平台的一个构思。

熊建国(主持人):
由于时间关系我们今天的在线直播到此结束,非常感谢微软各位专家来ITPUB。各位网友今天的直播我们到此结束,下次节目再见。