再见西城 发表于 2015-1-16 22:30:28

MSSQL网页编程之现盛行数据库程序开辟工具的对照剖析

在ORDERBY操作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快ORDERBY方面也没什么作用)。对照|程序|数据|数据库
[程序开辟系列一]现盛行数据库程序开辟工具的对照剖析

武汉华中师年夜信管系谢刚

择要:跟着盘算机手艺不休开展,各类数据库编程工具也跟着开展,使现今的年夜多半程序开辟职员能够挣脱单调有趣的用盘算机指令或汇编言语开辟软件,而是使用一系列高效的、具有优秀可视化的编程工具往开辟各类数据库软件,从而到达事半功倍的效果,可是如今市情上的数据库编程工具门类浩瀚,优秀不齐,好比VB,VC,DEPHI,PB等,对此我出格针对盛行的开辟言语先容响应的较为成熟的数据库编程工具。

关头字:数据库编程程序开辟工具

1几种数据库开辟工具的先容
1.1VB
全称VisualBasic,它是以Basic言语作为其基础言语的一种可视化编程工具。在中国以致全球都曾看到过它的身影,它曾是在中国最为盛行的编程工具,到如今还占有着十分主要的位置,关于它的优劣人人都有必定的懂得,VB作为一种较早呈现的开辟程序以其简单进修,开辟效力较高,具有完美的匡助体系等长处曾影响了好几代编程职员,可是因为VB不具有跨平台这个特征,从而也决意了VB在将来的软件开辟中将会渐渐地加入其汗青舞台;它对组件手艺的撑持是基于COM和ActiveX,关于组件手艺不休完美开展的明天,它也显出了它的掉队性;同时VB在举行体系底层开辟的时分也是绝对庞大的,挪用API函数需声明,挪用不便利,不克不及举行DDK编程,不成能深切Ring0编程,不克不及嵌套汇编;并且面向工具的特征差;收集功效和数据库功效也没有十分彪炳的体现,综上所述,VB作为一种可视化的开辟工具因为其自己的范围性,招致了它在将来软件开辟中慢慢被其他工具所取代。

1.2PB
全称PowerBuilder,是开辟MIS体系和各种数据库跨平台的首选,利用复杂,简单进修,简单把握,在代码实行效力上也有相称杰出的体现。PB是一种真实的4GL言语(第四代言语),可随便间接嵌套SQL语句前往值被赋值到语句的变量中,撑持语句级游标,存储历程和数据库函数,是一品种似SQLJ的标准,数据会见中具有没有可对比的天真性。可是它在体系底层开辟中犯了跟VB一样的毛病,挪用API函数需声明,挪用不便利,不克不及举行DDK编程,不成能深切Ring0编程,不克不及嵌套汇编;在收集开辟中供应了较多静态天生Web页面的用户工具和服务和体系工具,十分合适编写服务端静态Web使用,有益于贸易逻辑的封装;可是用于收集通信的撑持不敷;静态页面定制撑持无限,使得PB在收集方面的使用也不克不及十分普遍。面向工具特向也不是太好。

1.3C++Builder/Delphi
  它们都是基于VCL库的可视化开辟工具,它们在组件手艺的撑持、数据库撑持、体系底层开辟撑持、收集开辟撑持、面向工具特征等各方面都有相称不错的体现,而且进修利用较为简单,充实提现了所见即所得的可视化开辟办法,开辟效力高。因为二者都是Borland公司的产物,天然承继了该公司一向以来的优秀传统:代码实行效力高。可是,它们并非毫无弱点,它们所作的最年夜不敷的地方就是他们的匡助体系在浩瀚的编程工具中是属于对照差的。C++Builder的VCL库是基于Objectpascal(面向工具pascal),使得C++Builder在程序的调试实行上都面向掉队于其他编程工具。而Delphi则是它的言语不敷普遍,开辟体系软件功效不敷两个对照年夜的弱点。

1.4VisualC++
  是基于MFC库的可视化的开辟工具,从整体上说它是一个功效壮大可是方便利用的一种工具。它在收集开辟和多媒体开辟都具有不俗的体现,匡助体系也做得十分不错(Microsoft在细节方面的处置常常都让人以为亲热),可是固然是利用C++作为基础言语,可是它在面向工具特征上却不敷好,次要是为了兼容C的程序,了局左支右绌;在组件撑持上也不太好,固然说除撑持COM,ActiveX外还撑持CORBA,可是没有任何IDE撑持,是一切C编译器的功效,必要CORBA两头件撑持;最年夜的成绩是开辟效力也不高。

1.5Java编程工具
  今朝对照着名的是Borland出的JBuilder和IBM出的VisualAgeforJava,两种工具都有必定数目的是用人群。JBuilder承继了C++Builder/Delphi的特性,在可视化上做得十分不错,利用烦琐。因为Java自己言语的特性使得他们在收集开辟中具有头角峥嵘的体现,并且面向工具特征高,撑持的组件手艺也十分多,跨平台的特征也使得它在如今和将来的开辟中占有愈来愈主要的位置。可是在体系底层开辟和多媒体开辟中却体现得其实不让人那末中意,这个大概跟计划Java的企图有关吧。

2各类开辟工具在对数据库方面的撑持对照剖析
2.1数据会见工具:
2.1.1VB:DAO,ADO,RDO功效相仿;
2.1.2PB:Transaction,DwControl,可绑定任何SQL语句和存储历程,数据会见具有没有与对比的天真性
2.1.3C++Builder/Dephi:具有包含DataSource,Table,Query,Midas,ADO在内的二十多个组件和类完成数据会见
2.1.4VC:同VB,但有很多类库可供利用,但极不便利,开辟效力很低
2.1.5JAVA:JAVAJDBCAPI,分歧的IDE具有分歧的组件

2.2数据体现工具:
2.2.1VB:DBGriD,与数据库相干的数据体现控件只要此一种,只能体现复杂表格数据,体现手腕单一
2.2.2PB:DataWindow工具(功效非常壮大,其资本形貌语句组成相似HTML的别的一种言语,可在个中拔出任何工具,具有包含DBGrid在内的数百种数据体现办法),只此一项功效就必定了PB在数据库的功效从出生的那一天起就远远凌驾了某些开辟工具明天的程度
2.2.3C++Builder/Dephi:具有包含DBGrid,DBNavigator,DBEdit,DBLookupListBox在内的15个数据感知组件,DecisionCube,DecisionQuery在内的6个数据堆栈组件和包含QRChart,QRExpr在内的20多个报表组建,可天真体现数据
2.2.4VC:同数据会见工具
2.2.5JAVA:分歧的IDE具有分歧的组件,对照出名的有Jbuilder,PowerJ,VisualAgeforJava

2.3语句实行体例:
2.3.1VB:将一句SQL串绑定到一个命令工具中,了局前往到ResultSet工具中自行拆取
2.3.2PB:是一种真实的4GL言语,可随便间接嵌套SQL语句前往值被赋值到语句的变量中,撑持语句级游标,存储历程和数据库函数,是一品种似SQLJ的标准
2.3.3C++Builder/Dephi:利用数据库组件或类完成SQL语句串的实行和提交
2.3.4VC:同数据会见工具
2.3.5JAVA:SQLJ,JAVAJDBCAPI

3各类开辟工具其他的对照剖析
3.1面向工具特征
VB:差;PB:较好;C++Builder/Dephi:很好;VC:一样平常;JAVA:十分好

3.2跨平台特征
VB:跨平台性不怎样好,可是能够与WINDOWS家属无缝毗连。
PB:跨平台性一样平常
C++Builder/Dephi:WINDOWS家属,Linux
VC:无
JAVA:一切可以运转JAVA假造机的操纵体系

3.3组件手艺撑持
VB:COM,ActiveX
PB:COM,JavaBean,Jaguar,UserObject利用:CORBA+ActiveX
C++Builder/Dephi:COM,ActiveXCORBA(自己自带CORBA两头件VisiBroker,有丰厚导游)
VC:COM,ActiveX,CORBA(没有任何IDE撑持,是一切C编译器的功效,必要CORBA两头件撑持)
JAVA:JavaBean,CORBA;ActiveX

3.4收集或Web开辟撑持
VB:Asp,VBScript,具有编写DHTML的复杂IDE,编写静态页面十分便利;用于收集通信的撑持一样平常
PB:DynaSript,Web.PB;供应了较多静态天生Web页面的用户工具和服务和体系工具,十分合适编写服务端静态Web使用,有益于贸易逻辑的封装;用于收集通信的撑持不敷;静态页面定制撑持无限
C++Builder/Dephi:ISAPI,WININETAPI等各种收集或互联网API可自在而便利的挪用;供应了ServerSocket,ClientSocket等三十余个组件及类,用来处置收集通信把持,流处置,Mail,Email,FTP,HTTP等使用协定处置和天生静态页面和贸易逻辑的封装;功效壮大,利用便利
VC:SAPI,WININETAPI等各种收集或互联网API可自在而便利的挪用;供应CAsyncSocket等数目浩瀚的类;功效壮大但利用不太便利
JAVA:不成间接挪用API但内置十分多的收集及互联网功效;可使用ServletAPI,JavaBeanAPI,和JSP等协同开辟功效壮大的Web使用;功效壮大,关于某些IDE利用不太便利

4综合评价:
4.1VB:是新人开辟与体系有关的综合使用程序的首选;简单利用和厂商财力很强是其唯一的两点上风。VB开辟效力高,代码实行效力一样平常,可是进门和进修速率快,有较好的进修气氛和匡助书本和匡助文档。可是跟着微软的.net手艺的推行,VB将会渐渐推出汗青舞台。
PB:是开辟年夜型MIS及各种数据库跨平台使用的首选;从数据库前端工具来说乃至远远凌驾了Oracle的Develop系列等专门的工具;从通用言语角度来说功效也与VB等八两半斤;多媒体和收集功效与其他工具比拟较弱。

4.2PB最年夜的上风就是Datawindow手艺的成熟和便利,他成为PB与其他数据库开辟工具对抗的本钱。同时PB在对JAVA和WEB,和面向工具方面的开展也能够预感PB将成持续成为数据库体系(出格是MIS体系)开辟工具的首选。同时PB的壮大匡助文档也为初学者供应了进门基本,PB毗连数据库的自在和方面也为PB的供应了便利,同时PB对API的挪用和对报表的处置壮大。可是PB的初级编程书本的缺少和基本言语PowerScript的提高水平对PB的今天有必定的限定。

4.3C++Builder/Dephi:是独一一套可以同时合用于开辟数据库使用、收集及Web使用、散布式使用、可重用组件、体系软件、驱动程序、多媒体及游戏等一切软件的高效力开辟情况;VCL源码基于ObjectPascal是C++Builder独一的缺憾,基本言语不敷通用和开辟体系软件功效不敷是Dephi唯一的两点不敷。

4.4VC:从功效上讲除跨平台使用外甚么都可开辟;从开辟效力角度讲只范围于开辟windows体系使用、可重用组件及驱动程序。又由于有微软的撑持,其本身的基本言语的提高水平高,和其代码的实行效力初等特征、VC自带壮大匡助文档和大批优良课本,VC在数据库开辟工具中一直能够稳住阵角。

4.5JAVA:合用于开辟除体系软件、驱动程序、高功能及时体系、年夜范围图象处置之外一切的使用。在一样平常的办理信息体系中和一样平常的数据库开辟中,很少有人会选择JAVA,一是因为其开辟情况的设置较难,已和数据库毗连时较为卖力,对开辟职员的开辟履历和进修工夫都要很高请求,以是关于履历不是很丰厚的开辟职员通常为不选择JAVA,可是JAVA的壮大收集功效和真实的面向工具特征决意了JAVA的将来,JAVA将在一个较为临时的时段里能够与微软家属对抗。

5选择开辟工具的几点倡议:
5.1假如你的程序基础上完整是数据录进、查询、汇总、打印等,功能请求高,盘算利用C/S布局,那末PowerBuilder切实其实是不错的选择。

5.2假如数据库请求不高,只是当地的,关于用户界面、通讯、多媒体等方面有请求,那末我以为VB、VC、Delphi更好。我团体不太喜好BDE,次要是分发和创建别号对照贫苦。

5.3一旦你断定了基础利用的言语,那末接纳甚么体例也就定上去。如关于VC、VB,会见当地数据库通常是DAO,会见服务器上数据库一样平常利用ODBC/RDO/ADO。我在会见当地数据库一样平常不利用ADO,次要是在设置对照低的呆板上速率对照慢,不外DAO早晚要被ADO代替。

5.4同时分离MSSQL或是MySQL的其他功效,好比触发器,存储历程,视图等。

6申明:
6.1参考(收拾)网友定见部分:
1.1,1.3,1.4,2.2.3,3.3,3.4
6.2原创部分:
1.2,2.1,2.2,2.3,3.1,3.2,4(全体),5(全体)
6.3其他为对一些网友和本人的看的收拾归结
6.4因为本人才能无限,毛病的地方还请人人匡正!
6.5但愿对人人在举行数据库程序开辟选择开辟工具(或是进修)时有效
6.6最初提示一下,注重依据本人的喜好和基本选择一个或是多个合适本人并合适以后程序需求的开辟工具。切勿多而不精!

这章描述如何检查和处理在MySQL数据库中的数据损坏。如果你的表损坏很多,你应该尝试找出其原因!见G.1调试一个MySQL服务器。

飘飘悠悠 发表于 2015-1-19 15:48:52

如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。

admin 发表于 2015-1-25 12:58:12

一个是把SQL语句写到客户端,可以使用DataSet进行加工;

莫相离 发表于 2015-2-2 22:10:10

以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了

分手快乐 发表于 2015-2-8 12:00:34

也可谈一下你是怎么优化存储过程的?

活着的死人 发表于 2015-2-25 11:28:29

原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。

透明 发表于 2015-3-7 20:30:03

理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识

爱飞 发表于 2015-3-15 14:02:26

在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。

若天明 发表于 2015-3-22 01:42:47

只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
页: [1]
查看完整版本: MSSQL网页编程之现盛行数据库程序开辟东西的对照剖析