|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在我们工作的过程中,经常能听到很多不使用MySQL的理由,虽然其中有一些是对MySQL的误解,不过同样也有一些是合情合理的。 本文示例源代码或素材下载
关于明天的RDBMS系统布局而言,逝世锁难以免—在高容量的OLTP情况中更是极其广泛。恰是因为.NET的大众言语运转库(CLR)的呈现,SQLServer2005才得觉得开辟职员供应一种新的毛病处置办法。在本月专栏中,RonTalmage为您先容怎样利用TRY/CATCH语句来办理一个逝世锁成绩。
一个示例逝世锁 让我们从如许一个示例入手下手提及,它在SQLServer2000和2005中都能引发逝世锁。在本文中,我利用SQLServer2005的最新CTP(社区手艺预览,CommunityTechnologyPreview)版本,SQLServer2005Beta2(7月公布)也一样合用。假如您没有Beta2或最新的CTP版本,请下载SQLServer2005Express的最新版本,用它来举行实验。
大概产生的逝世锁情形有良多,但最风趣、最奇妙的是那些关于浏览器和编写器相互堵塞的逝世锁。以下代码在pubs数据库中就发生了如许一个逝世锁。(您能够在SQLServer2000的两个QueryAnalyzer窗口中或SQLServer2005的两个ManagementStudioqueries中并列运转这段代码。)在个中一个窗口中的代码注释后面增加以下语句:
--Window1header
DECLARE@au_idvarchar(11),@au_lnamevarchar(40)
SELECT@au_id=111-11-1111,@au_lname=test1 在第二个窗口中增加以下语句,举行第二次毗连:
--Window2header
DECLARE@au_idvarchar(11),@au_lnamevarchar(40)
SELECT@au_id=111-11-1112,@au_lname=test2 在两个窗口中都利用以下语句作为代码注释:
--Bodyforbothconnections:
BEGINTRANSACTION
INSERTAuthorsVALUES
(@au_id,@au_lname,,,,,,11111,0)
WAITFORDELAY00:00:05
SELECT*
FROMauthors
WHEREau_lnameLIKETest%
COMMIT 在第三个窗口中运转以下语句,确保authors表格中没有任何包括以下id的数据:
不可否认,MySQL也是一个很好的关系型数据库,或许在技术上它与其他领先的关系数据库相差并不大,或不具有劣势。但是,对于一些企业环境来说,MySQL显然不具有优势。 |
|