MYSQL网页编程之有关SQL Server 2005 CLR
由于MySQL数据库已经如此普及,对企业来说它无疑是一个更好的选择。 在SQLServer2005的很多被鼎力保举的特征内里,有一项大概对那些利用SQLServer事情的编程职员最有用的是CommonLanguageRuntime,大概简写为CLR。CLR可让编程职员间接在SQLServer中创立存储历程、触发器,用户自界说函数,汇合体和范例。CLR有良多的答应,可是也有一些缺点。关于CLR的主要性有一些次要的缘故原由。起首,跟着SQLServer编程手艺的成熟,代码编写职员堕入了SQLServer本身的一些限定当中,而且在很年夜水平上依附内部的代码来实行一些沉重的移植。T-SQL(事件处置SQL)在前往数据集方面很好,可是除这个以外则体现欠安。CLR使得成绩的办理有了大概,而且在SQLServer外部举行数据操纵,而这些底本必要一个完整自力的程序来完成的。.NET的操纵代码和实行速率比SQLServer/T-SQL好很多;.NET中的统一位的代码能够运转更快地运转很多次,当它是二进制的,而不是作为存储历程来构建时。
利用CLR的另外一个伟大的优点就是平安。一切的代码都在运转前检测范例和平安权限。比方,先前没有被写进的内存是不同意被成绩中的代码读取的。CLR也很完美;.NET框架中的每样器材都能够从存储历程、触发器大概用户函数举行会见——除处置相似用户接口的类,它在SQLServer是不管怎样不会有效的。
要避免CLR代码胡乱运转,微软为CLR代码的挪用创立了一个三层的平安模子:SAFE,EXTERNAL_ACCESS和UNSAFE。SAFE权限汇合在实质上与传统的存储历程可以做的事变一样。在SQLServer以外不克不及对其举行任何修正。EXTERNAL_ACCESS同意经由过程.NET对注册表和文件体系举行会见。UNSAFE正如其名。标志为UNSAFE的代码不克不及做任何事变,而且它实践上是不该该在调试大概实行情况以外利用的。年夜多半的编程职员应当永久都不必要用到高于EXTERNAL_ACCESS级其余任何器材。(假如你必要在存储历程大概函数的情况中与文件体系大概注册表对话,这有大概意味着你必要从头思索你实验的逻辑了。)
但是,CLR并非合适统统。一方面,它大概合适那些不简单、必要举行编程,在T-SQL中完成的情况。很多复杂的操纵能够在T-SQL以存储历程的体例完成,而且不必要扩大到内部历程。这意味着高低文互换和分外的事件开支,这两项中的任何一项开支都能起首抹消你利用CLR取得的速率提拔。CLR最好用于替换扩大存储历程——比方,那些必需关闭在数据库中,可是却十分贫苦,没法用T-SQL沉着完成,同时又不克不及轻松挪动到营业逻辑开端的事变。
另外一个大概的弱点就是:正如SQL的首脑RodPaddock在他的blog中指出的,假如你讲营业逻辑中的某个元素挪动到数据库,那便可能会引发可丈量性的成绩。究竟,SQLServer更合适于按比例进步的单个年夜型呆板,而不是高出在几个对照小的呆板(一般是依照营业比例来的)上。这一点指出了有选择的利用CLR有多主要。T-SQL简便、无效;CLR/.NET高贵而且局限普遍。准确的事情选择准确的工具,只管具有浩瀚选择也不错。
你会发现实际上MySQL可以更少地占用资金,前者的每CPU许可费用一般从4000美元到25000美元不等,而MySQL企业版的支持和维护成本就更低了。 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过! 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过! 代替了原来VB式的错误判断。比Oracle高级不少。 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力 学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!
页:
[1]