|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在我们工作的过程中,经常能听到很多不使用MySQL的理由,虽然其中有一些是对MySQL的误解,不过同样也有一些是合情合理的。 在SQLServer2005的浩瀚被高度评价的特征中,有一个最合适那些对SQLServer编程的职员的就是通用言语运转时,缩写为CLR(CommonLanguageRuntime)。CLR同意编程职员间接在SQLServer中创立存储历程,触发器,用户界说函数,汇合和范例。CLR有良多的答应,可是它也具有一些缺点。
CLR的主要性有几个对照年夜的缘故原由。起首,因为SQLServer编程已成熟了,编码器运转在SQLServer本身大概的限定当中,而且很年夜水平上依附于内部代码来实行一些沉重的操纵。T-SQL(Transact-SQL)在前往数据汇合方面十分好,可是在其他方面就不是很好了。CLR使得办理成绩和缩减SQLServer外部的数据复制成为大概,经由过程在SQLServer中必要完整地分别程序来勉力完成。.NET利用代码和实行速率方面比SQLServer和T-SQL强很多;.NET中一样地位的代码因为是二进制,因而其运转屡次仍旧比构建为存储历程快上很多。
利用CLR的另外一个伟大的优点就是:平安。一切的代码都是在运转之前检测范例和允许平安的。比方,先前没有被写进的内存是不会被哀求中的代码会见的。CLR还十分的完美;.NET框架中的素有的器材都能够在存储历程、触发器大概用户函数中举行会见——除处置相似用户界面的类,这些类在SQLServer中没有效处。
为了不CLR的猖狂运转,微软创立了一个三层的平安模子,划定了CLR代码是怎样挪用的:平安、内部会见和不平安(SAFE,EXTERNAL_ACCESSandUNSAFE)。平安权限设置与传统的能够实行的存储历程一样主要。它不成以被SQLServer本身以外的任何器材修正。内部会见同意经由过程.NET来会见注册表和文件体系。不平安的定名很得当。被标志为不平安的代码不克不及做任何事变,而且他们实践上在调试大概实验情况以外没法利用。年夜多半的编程职员都不必要利用高于内部会见的器材。(假如你必要在存储历程大概函数的情况内会见文件体系大概注册表,那末很有大概标志着你必要从头思索你正在做的事变的逻辑了。)
但是,CLR其实不合适一切的器材。有一件事,它大概最合适那些不轻松、必要编程的、在T-SQL中完成的情况。很多复杂的操纵能够作为T-SQL中的存储历程完成,其实不必要做成内部处置。这意味着高低文交换和分外的事件包袱,这两项中的每项城市抵消你利用CLR带来的最次要的速率的提拔。CLR用于交换扩大存储历程是最好的——比方,那些与数据库干系亲切,可是T-SQL处置起来过于烦琐的,而且很难轻松地挪动到事物的营业逻辑真个。
另有一个大概的倒霉是:正如SQL的首脑RodPaddock在他的blog内里指出的,假如你将营业逻辑的某个部分挪动到更靠近数据库,那末有大概引发可丈量性的成绩。不论怎样说,SQLServer都更合适按比例扩展地放在单个的年夜型机上,而不是散布在多个较小的呆板上(这一般是营业逻辑的丈量体例S)。以上指出了有选择地利用CLR是何等的主要。T-SQL十分松散而且无效率;CLR/.NET具有扩大性和包涵性。准确的事情是接纳准确的工具,固然具有良多的选择是何等好的一件事变。
这一切听起来不错,无疑DBaaS具有很多相对于RDBMS的优势。然而MySQL学习教程,DBaaS也有其局限性,云服务中固有的局限性就是之一。当客户开始将数据放入云端时,他们会遭遇到无法控制的网络性能问题。 |
|