仓酷云

标题: MSSQL网页编程之Microsoft数据引擎 MSDE [打印本页]

作者: 小妖女    时间: 2015-1-16 22:25
标题: MSSQL网页编程之Microsoft数据引擎 MSDE
mysql的原来开发者又开发了MariaDB,MariaDB适合用来替代mysql吗数据
Microsoft数据引擎MSDE

概述
创立使用程序的开辟职员面对着如许一个选择:在浩瀚的数据库选项中,应当选择哪种手艺?在选择一种数据库手艺之前,开辟职员必要思索良多要素。好比,该使用程序必要撑持几个用户?一切的用户是不是会同时会见数据库体系?该使用程序的开辟触及到哪些用度?假如该使用程序的需求跟着工夫的推移而产生变更,该手艺是不是同意对该数据库的功效和范围举行扩大?
直到比来,Microsoft推出了两种数据库办理计划:MicrosoftJet(即MicrosoftAccess数据引擎,该引擎伴同Access和MicrosoftVisualStudio公布)和MicrosoftSQLServer。因为每种手艺计划都有本身的上风,同时又存在某些范围性,因而,之前假如请求开辟职员选择如许一种数据库手艺:使它既满意从桌面到数据中央情况下运转,而数据库使用程序又顺应临时和短时间必要,一样平常而言是很坚苦的。因为基于Jet的办理计划具有易于利用和开辟本钱低的长处,因而,关于桌面大概共享的使用程序而言,它是一种很不错的选择。但是,开辟职员发明:跟着使用体系范围的扩展,在他们将Jet使用程序移植到SQLServer的平台之前,必要对程序代码举行大批的修正。值得开辟职员乐意的是:跟着一个与SQLServer兼容的数据引擎―Microsoft数据引擎(MSDE)的公布,开辟职员能够选用一种新的体例来创立基于桌面和共享情况的数据库使用程序。使用MSDE,开辟职员能够创立自在散布的桌面和共享的数据库办理计划。当必要对体系的范围举行扩大时,接纳这类办理计划的数据库使用程序能够很简单地移植到SQLServer中。
数据引擎触及哪些手艺
从实质上讲,一个处于运转形态的“数据引擎”就是一个中心历程。一个数据库办理体系,好比Access大概SQLServer,将使用这个中心历程来存储和办理数据库中的数据。从这类意义上讲,我们一般能够把一个数据引擎看做是一个没有响应的图形办理工具的数据库办理体系。数据引擎次要有两种感化:一是用来存储数据,二是用来处置别的工具对存储的信息所提交的哀求。我们一般把用来检索大概更新数据的哀求称作数据库查询。
一般,数据引擎与自界说数据库使用程序一同对客户机使用程序提交的数据库哀求举行呼应。自界说数据库使用程序是用某种开辟工具,好比MicrosoftVisualStudio创立的。在这类情形下,因为自界说的数据库使用程序已包括了内置的工具对底层的数据库举行办理,因而,在数据引擎中,就没有需要包括图形工具来对数据库举行办理了。别的,因为数据引擎具有简单散布的特性,开辟职员能够将响应的数据引擎包括到自界说使用程序中,在使用程序的安装过程当中,用户能够经由过程拔取该引擎组件而将其安装到体系中。
Microsoft数据引擎
Microsoft数据引擎(MSDE)与SQLServer完整兼容,在以VisualStudio6.0大概Access2000为开辟工具所创立的桌面和共享的数据库办理计划中,该引擎能够用来对数据库举行处置。关于VisualStudio6.0大概Access2000开辟职员来讲,他们能够在不但独对MSDE举行注册的情形下公布利用MSDE创立的数据库使用程序。MSDE用到了SQLServer供应的一些手艺,而且与SQLServer7.0完整兼容。在Access2000中,MSDE是取代Jet(Access2000数据库利用的缺省引擎)的幻想选择。别的,关于VisualStudio6.0开辟职员而言,假如他们想创立自界说的数据库使用程序,而且但愿在这些自界说的使用程序中利用与SQL兼容的的数据库,那末,他们能够经由过程接纳MSDE作为数据引擎的体例来到达这一目标。MSDE与SQL的兼容性意味着:开辟职员能够对现有的以MSDE作为数据引擎、桌面和共享的数据库使用程序代码不作任何修正,就能够将其移植到SQLServer中。
MSDE以供应某种服务的体例在背景运转。在此,服务指的是今后台历程运转的使用程序。服务与别的的使用程序的运转体例有所分歧。好比,只需用户经由过程从“入手下手”菜单拔取“启动”选项,对应的使用程序就能够投进运转。但关于服务而言,如MSDE,情形就不是如许。它们的启动和封闭一般是由操纵体系来完成的。以MSDE作为数据引擎的桌面和共享的数据库使用程序一般具有以上限制:在数据库使用程序存活时代,MSDE服务应当处于运转形态。一样平常而言,利用服务的工具是别的使用程序,而不是终端用户。一样平常情形下,服务在背景运转,当它吸收到客户机使用程序向它提交的处置哀求时,它就转往实行响应的哀求。关于MSDE来讲,这些哀求是一些将要对数据库实行的操纵。因为利用服务的工具是客户机使用程序,而不是终端用户,因而服务不必要有效户界面。在Access2000中创立的一个工程大概一个VisualBasic使用程序能够间接与某个服务举行交互。关于MSDE而言,这些客户机使用程序充任了用户界面。
MSDE的特征:
*完整与MicrosoftSQLServer7.0和之前的版原形兼容。
*关于VisualStudio6.0大概MicrosoftOffice2000开辟职员而言,他们能够将基于MSDE的数据库使用程序收费公布给终极用户。
*能够在Windows95,Windows98,WindowsNT,和Windows2000(Intel和Alpha)平台上运转。
*具有客户机/服务器的系统布局(MSDE在数据库服务器,而不是在客户机上实行对数据库的操纵)。
*以供应服务的体例在背景运转。
*在数据库的开辟过程当中,开辟职员不必要为该引擎创立响应的用户界面。别的使用程序,好比用Access2000大概VisualBasic开辟的自界说使用程序必要为数据库供应响应的用户界面.
Jet4.0
Jet4.0是在MicrosoftAccess2000中利用的缺省的数据引擎。在VisualStudio6.0开辟工具包中,也包括了这一引擎。Jet是基于文件的数据库办理体系。这类范例的数据库办理体系具有以下特性:体系中的数据库包括在一个自力的数据库文件中,而且对数据库的读写操纵是由客户机把持的。Jet能够在多用户的情况下利用,而且开辟职员还可以将接纳Jet作为引擎的数据库使用程序扩大为桌面和共享的数据库使用程序。MicrosoftAccess为Jet数据引擎供应了一个易于利用的界面。开辟职员还能够使用VisualBasic大概别的开辟工具来创立自界说的前端使用程序,在这些使用程序中,包括了以Jet作为引擎的数据库。
SQLServer
SQLServer是一个基于客户机/服务器形式的数据库办理体系。与基于文件的数据库中利用的引擎分歧,在基于客户机/服务器形式的数据库办理体系中,数据引擎将卖力办理数据库的读写操纵。因为这一特征,基于客户机/服务器形式的数据库办理体系,好比SQLServer,能够在很年夜的水平上进步体系可以处置的并发用户数和数据量。以后,企业中利用的年夜型数据库使用程序必要撑持的并发用户数和处置的数据量在不休增添,SQLServer就是为满意这一急切必要而计划的。这些数据库使用程序包含在明天已完成和在未来还必要进一步改善的企业办理体系和决议撑持体系。SQLServer具有各类刊行版本,以满意在分歧的情况下对处置的数据量、并发用户数和硬件的分歧请求。
数据库与SQL的兼容性
数据库与SQL的兼容性指的是,数据库在多年夜水平上与用来举行数据库通讯的ANSI布局化查询言语(ANSI-SQL)行业尺度坚持分歧。MSDE和SQLServer二者都服从Transact-SQL(T-SQL)中界说的言语标准,而Jet则没有接纳这类标准。与此分歧的是,Jet界说并完成了它本人的一套查询言语。在这类查询言语中,Jet能够挪用VisualBasic使用程序(VBA)中的函数历程。Transact-SQL是一套界说完美的言语,开辟职员能够经由过程这类言语来举行数据库使用程序和数据库服务器之间的通讯,并可以对数据库服务器举行编程处置。Transact-SQL是ANSI-SQL的一个超集,使用Transact-SQL,开辟职员能够经由过程对服务器举行编程的体例来使服务器实行一些定制的事件逻辑处置。用户能够经由过程在客户端挪用这些以事务大概动静的体例驱动的事件逻辑处置历程,而实践实行时,这些逻辑处置历程则是在服务器上完成的。MSDE与Transact-SQL的言语标准坚持分歧意味着:MSDE中的工具不加修正就可以够在SQLServer中运转。因而,在这一点上,MSDE要优胜于Jet。
怎样选择数据引擎
假如你手头的数据库使用程序的功效和范围已不克不及满意数据库体系的需求,你大概筹办新建一个基于功效壮大的数据引擎的使用程序,也大概盘算经由过程利用一个新的数据引擎来取代本来的引擎的体例对现有的数据库使用程序举行移植,不论你接纳哪种体例,对现有的前提和企图利用的每种数据引擎的特征举行必定的懂得长短常主要的。那末,你究竟应当选择哪一种数据引擎呢?假如你但愿创立桌面和共享的数据库使用程序,那末,你能够思索用MSDE来取代Jet。在本节中,我们会商了在开辟的过程当中良多数据库使用程序对体系提出的需求,别的,我们还供应了一些倡议,以告知开辟职员怎样选择一个符合的数据引擎,使该引擎可以在最年夜水平上满意他们将要创立的工程需求。
数据库使用程序的需求
表1列出了在企业情况下运转的数据库使用程序的需求,并申明了每种数据引擎在多年夜水平上可以满意这些需求。假如你的使用程序在以后(大概在未来会)具有在表1最右边的一列中所给出的任何需求,你就应当思索用MSDE来取代Jet作为数据库的引擎了。
在哪些情形下应选择MSDE作为数据库体系的引擎
在以下两种情形下,我们能够选用MSDE作为数据库使用程序的引擎。一是用MSDE取代Jet来移植现有的数据库使用程序,以进步它的可伸缩性。二是以MSDE作为引擎来创立桌面和共享的数据库使用程序,当体系的范围扩展时,这些数据库可以很简单地移植到SQLServer。
MSDE与SQLServer的兼容性
MSDE数据引擎与SQLServer完整兼容。因而,在MSDE中创立的表格、存储历程、触发器,和别的数据库工具在不举行任何修正的情形下就能够在SQLServer数据库中运转。可是,在Jet中创立的工具,好比查询工具,就不克不及在不举行任何修正的情形下移植到SQLServer数据库中运转。假如但愿在未来把以后创立的数据库使用程序移植到SQLServer中,大概现有的数据库使用程序在处置的并发用户数、数据量大概在别的某一方面已大概将要凌驾Jet引擎的限定,那末,应当选择MSDE作为使用程序的数据引擎。接纳这类办理计划,你能够在不修正任何代码的情形下,绝不吃力地在未来某一天将本人的数据库使用程序移植到SQLServer。
基于服务器的处置
与Jet分歧,MSDE不是一个基于文件的数据引擎,因而以MSDE作为引擎的数据库使用程序不会遭到基于文件的数据库对处置的数据量的限定。因为在基于文件的数据库中,对数据库的操纵是在客户机长进行的,因而这类范例的数据库影响了使用程序的功能。而在基于服务器的数据库体系中,好比在SQLServer和MSDE中,用来对客户机使用程序提交的哀求举行处置的操纵是在服务器上完成的,在对哀求处置终了后,服务器将响应的了局前往给提交哀求的客户机使用程序。接纳这类处置体例,年夜年夜削减了收集的负荷,而且,它还可使用户在没有较高设置终真个情形下,以可以被承受的速率会见数据库。
当多个用户在同时利用一个基于文件的数据库时,每个用户都必需翻开一样的文件以从中读写信息。因为每个用户只要轮到了他的按次才干对数据库文件实行响应的操纵,因而,基于文件的数据库就会成为影响体系功能的一个瓶颈。基于服务器的数据库办理体系专门计划用来办理客户机使用程序会见数据库办理体系时所碰到的这一成绩,因而它能够进步体系的功能。
当客户机使用程序散布在收集上的分歧呆板时,在客户机处置数据的体例会使基于文件的数据库体系的功能进一步下落。当一个基于文件的共享数据库放在收集中的一个文件服务器上时,假如客户机使用程序向文件服务器提交一个查询哀求以对共享数据库实行响应的操纵,即便实行该哀求的了局只发生一笔记录,文件服务器也必要将该哀求中包括的一切源数据经由过程收集传送给提交哀求的客户机使用程序。在基于服务器的数据库中,数据引擎将在服务器上实行客户机使用程序提交的一切处置哀求,在处置终了后,只将处置的了局前往给客户机。在这类形式下,使用程序在带宽较窄的收集毗连上仍旧可以以较好的功能来会见服务器上的数据库。
假如你的数据库使用程序散布在收集上、多个用户必要同时会见你的数据库、大概用户只能经由过程一条带宽较窄的收集毗连举行会见,只需存在以上的任何一种情形,你就应当选用MSDE作为你的数据库使用程序的引擎。
平安性
固然MSDE和Jet都同意对表格大概存储历程这些自力的数据库工具举行需要的回护,但在WindowsNT大概Windows2000平台上运转的MSDE数据库能够使用Windows2000供应的平安机制来回护数据库工具,但Jet数据库却不具有这类特征。
假如你但愿在数据库使用程序中使用Windows2000中供应的这类平安机制,那末你应当选择MSDE作为你的数据引擎。
受权
任何注册了Office2000专业版大概进修版的客户,大概任何注册了在VisualStudio6.0企业版大概专业版中包括的工具组件的用户都能够收费取得MSDE,这些工具组件包含:
*VisualStudio6.0,专业版和企业版
*VisualBasic6.0,专业版和企业版
*VisualC++(r)6.0,专业版和企业版
*VisualInterDev(tm)6.0专业版
*VisualJ++(r)6.0,专业版
*VisualFoxPro(r)6.0专业版
关于那些接纳MSDE作为数据引擎来创立桌面和共享的数据库办理计划的开辟职员而言,只需他们对上面的软件举行了注册,就能够取得受权收费公布他们创立MSDE办理计划。这些必要注册的软件产物包含:
*MicrosoftOffice2000开辟版
*MicrosoftVisualStudio6.0专业版大概企业版中的相干工具组件(在本节的后面列出了这些工具组件)
关于那些以MicrosoftOffice大概VisualStudio作为开辟工具的开辟职员而言,假如他们在使用程序中包括了以Jet作为引擎的数据库,他们也被受权收费公布这些数据库。可是,以Jet作为引擎的桌面和共享的数据库使用程序却不克不及便利地移植到SQLServer中。假如开辟用度是影响创立数据库使用程序的一个主要要素,把MSDE作为数据库的引擎是你最好的选择。
MSDE小结
假如开辟职员但愿创立桌面大概共享的数据库使用程序,而且企图在未来对这些数据库使用程序的功效和范围举行扩大,那末,选用MSDE作为数据引擎将具有以下长处:从近期来看,可以下降体系的开辟用度,从远期来看,又供应了最为便利的体例,以对以后创立的数据库使用程序举行移植。当你地点构造的范围扩展后对数据库体系的功效和功能提出新的需求时,你能够在不修正现无数据库使用程序中的任何代码的情形下,将它完整移植到基于SQLServer的平台上运转。别的,因为MSDE与SQL完整兼容,开辟职员可使用一样的数据会见言语在范围绝对较小的MSDE数据库体系和范围较年夜的SQLServer数据库体系之间完成无缝转换。
在哪些情形下选用Jet
关于一些特别的数据库体系而言,以Jet4.0作为引擎也是一个很不错的选择。在这一节中,我们将会商在哪些情形下应当选用Jet作为数据库引擎。
散布性
在接纳Jet作为引擎的数据库体系中,因为数据库包括在一个自力的文件中,因而备份和公布数据库的事情就变得十分简单。固然在数据库体系的运转过程当中,别的文件会经由过程诸如VisualBasic大概MicrosoftAccess这类范例的使用程序来会见Jet数据库文件,但因为开辟职员对这些文件之间的相干性举行了优秀的界说,因而,会见数据库文件的操纵不会占用体系大批的存储空间大概利用大批的处置器资本。与Jet数据库比拟,MSDE数据库对照难于公布和安装。因而,假如但愿简化数据库的公布和安装的历程,选用Jet作为数据库的引擎是一个很不错的选择。
开辟用度
开辟职员能够将基于Jet4.0的数据库伴同用上面的工具开辟的数据库使用程序一同刊行:
*MicrosoftOffice2000
*MicrosoftAccess2000
*VisualStudio6.0任何版本中的相干工具组件(在文章的后面部排列出了这些组件)
假如开辟用度是创立数据库使用程序时要思索的主要要素,选用Jet作为数据引擎是一个很不错的选择。
可伸缩性
MSDE和Jet数据库都能够在桌面和共享的数据库使用程序中运转。关于有些数据库使用程序而言,它们所处置的数据量大概永久也不会凌驾2GB,而且所撑持的用户数也不会凌驾20个。假如你手头有一个Jet数据库使用程序,即便跟着体系范围的增加,它所处置的数据量也不会很年夜,而且必要撑持的用户数也不敷多,那末,将Jet作为现无数据库的引擎仍不掉为一个好的选择.
对体系资本的需求
因为Jet数据库经由了紧缩处置,因而在那些资本无限的平台上,选用Jet作为数据库的引擎是符合的。在这篇文章所会商的三种数据引擎中,以Jet作为引擎的数据库占用的存储空间和损耗的体系内存起码。假如利用的呆板的磁盘空间大概体系内存十分无限,那末选用Jet作为引擎将长短常明智的选择。
与之前版本的兼容性
Jet4.0对那些基于之前的版本的数据库供应了最年夜的兼容性。你能够将现有的多个分歧版本Jet数据库使用程序放在统一个体系中运转。只需你不将SQLServer大概MSDE到场到数据库体系中,那末你现有的体系仍将是一个基于Jet/Access办理计划的数据库体系。假如在你现有的一个Jet数据库使用程序中挪用了在Jet之前版本中界说的一个函数,大概挪用了如许一个函数:你必要举行大批的处置事情才干将该函数转化到与SQL兼容的数据库中运转,那末,接纳Jet作为数据库的引擎将比接纳MSDE大概SQLServer7.0具有更年夜的优胜性。
JET小结
关于那些在以后请求处置的数据量不年夜、必要撑持的并发用户数也未几,而且在未来也不会有很年夜增加的的数据库办理体系而言,基于Jet的数据库体系具有开辟用度低、保护便利的长处,而且与之前版本的Jet数据库体系具有最年夜的兼容性。
在哪些情形下应选择
SQLServer
看到这一节的题目,你大概想问:为何不以MSDE大概Jet作为引擎来开辟一切的数据库体系呢?对这个成绩的谜底是:基于Jet乃至是MSDE的数据库体系在有些情形下已不克不及满意实践的必要了。鄙人面,我们对这些情形举行了申明。
数据库的容量
基于MSDE的数据库最多能存储2GB巨细的数据。基于Jet的数据库中的每个文件可以存储的数据也没法凌驾2GB。因为Jet数据库文件能够经由过程互相链接的体例来增年夜存储才能,因而终极存储的数据量只遭到磁盘空间巨细的限定。可是,办理多个数据文件将是一项十分坚苦的事情。因而,假如你现有的数据库的巨细凌驾了2GB,大概是在未来会冲破这一限定,那末选用SQLServer作为数据库体系的引擎将是最好的选择。
撑持的并发用户数
当数据库体系必要撑持的并发用户数不凌驾5个时,接纳MSDE作为数据库的引擎将会取得最优的体系功能。Microsoft尽力保举:为了使MSDE数据库体系体现出优胜的功能,体系所撑持的并发用户数不要凌驾5个。
从手艺和受权的角度下去讲,基于Jet的数据库体系撑持的用户数能够到达255个,但在实践中,体系撑持的用户数最好不要凌驾20个。如许的缘故原由是:Jet数据库体系接纳基于文件的体例来存储数据,因而,跟着毗连的用户数目的增添,必要对文件实行读写操纵的用户数也将不休增添,从而使体系的功能变差。
因为SQLServer能够撑持不计其数个并发用户,因而能够在最年夜水平上满意企业级数据库体系的功能需求。因而,假如一个数据库使用程序必要撑持的用户数凌驾了5个时,选用SQLServer将是最明智的选择。
SQLServer小结
假如用户请求一个自力的数据库处置的数据量凌驾2GB,而且用户请求在会见数据库体系时可以取得优秀的功能,那末,应当选用SQLServer作为数据库体系的引擎。在一切的数据引擎中,SQLServer供应了最优胜的功能和最好的可伸缩性。
对MSDE允许的注释
任何注册了Office2000专业版大概进修版的用户,大概任何注册了在VisualStudio6.0企业版大概专业版中包括的工具组件的用户都能够收费取得MSDE,这些工具组件包含:
*VisualStudio6.0,专业版和企业版
*VisualBasic6.0,专业版和企业版
*VisualC++(r)6.0,专业版和企业版
*VisualInterDev(tm)6.0专业版
*VisualJ++(r)6.0,专业版
*VisualFoxPro(r)6.0专业版
公布MSDE办理计划所需的允许
假如VisualStudio6.0大概Office2000开辟职员在他们创立的办理计划中利用MSDE,只需他们恪守了在开辟过程当中所用到的别的软件产物的终极用户允许协定,就能够将他们的办理计划公布给他们的客户大概终极用户,Microsoft不会由于开辟职员利用了MSDE而收取响应的版权费。
当MSDE办理计划与SQLServer举行互操纵时必要取得的允许
假如开辟职员公布的基于MSDE的数据库使用程序在运转的过程当中必要与SQLServer举行交互,那末,关于开辟职员在客户机上安装的数据库使用程序的每份拷贝,他们必要猎取一份Microsoft客户会见允许(CAL)。关于中央的SQLServer数据库,开辟职员也必要为安装的每个拷贝猎取一份允许。假如你想懂得有关SQLServer7.0报价和受权允许的更具体的信息,请会见SQLServerWeb站点中的相干内容:
http://msdn.microsoft.com/isapi/gomscom.asp?Target=/sql/70/gen/pricing.htm.。
有了rowbase的binlog后,我们来分析一下怎么实现闪回。平时的DML无非三种操作,增删改,先说三种操作的日志格式。
作者: 不帅    时间: 2015-1-19 11:07
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
作者: 爱飞    时间: 2015-1-24 15:37
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
作者: 蒙在股里    时间: 2015-2-1 21:40
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
作者: 兰色精灵    时间: 2015-2-7 15:36
这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。
作者: 分手快乐    时间: 2015-2-22 12:32
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
作者: 山那边是海    时间: 2015-3-7 00:31
SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
作者: 愤怒的大鸟    时间: 2015-3-14 00:20
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
作者: 仓酷云    时间: 2015-3-20 23:30
你可以简单地认为适合的就是好,不适合就是不好。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2