仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 849|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之SavePoint (bzszp )

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在Windows中MySQL以服务形式存在,在使用前应确保此服务已经启动,未启动可用netstartmysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart"命令,注意启动者应具有管理员权限。
保留点(SAVEPOINT)是事件处置过程当中的一个标记,与回滚命令(ROLLBACK)分离利用,次要的用处是同意用户将某一段处置回滚而不用回滚全部事件,这在PL/SQL开辟中仍是很有效处的。
上面的例子中,把SAVEPOINT标志在INSERT语句之前,假如这条INSERT语句试图将反复的数据保留到EMP表中的话,将触发实行事后界说的DUP_VAL_ON_INDEX破例处置,在这内里的ROLLBACKTOdo_insert命令将回滚下面的那条INSERT操纵,而不会影响后面的任何操纵。

DECLARE
emp_idemp.empno%TYPE;
BEGIN
UPDATEempSET...WHEREempno=emp_id;
DELETEFROMempWHERE...
...
SAVEPOINTdo_insert;
INSERTINTOempVALUES(emp_id,...);
EXCEPTION
WHENDUP_VAL_ON_INDEXTHEN
ROLLBACKTOdo_insert;
END;

假如你界说了多个savepoint,当你指定回滚到某个savepoint时,那末回滚操纵将回滚这个savepoint前面的一切操纵(即便前面大概标志了N个savepoint)。比方,在一段处置中
你界说了五个savepoint,从第三个savepoint回滚,前面的第4、第五个标志的操纵都将被回滚,假如不利用ROLLBACKTOsavepoint_name而利用ROLLBACK,将会滚全部事件处置。

假如你在递回子程序内里界说了一个savepoint,假如每个递回层都设置了SAVEPOINT.此时,你只能回滚到比来的一个savepoint.

Savepoint的声明能够在统一个事件处置内里反复界说.它的感化就是把savepoint从上一个地位转移到今朝的地位.因此,实行回滚也只回滚到比来的savepoint.
上面是一个例子:

BEGIN
...
SAVEPOINTmy_point;
UPDATEempSET...WHEREempno=emp_id;
...
SAVEPOINTmy_point;--movemy_pointtocurrentpoint
INSERTINTOempVALUES(emp_id,...);
EXCEPTION
WHENOTHERSTHEN
ROLLBACKTOmy_point;
END;

别的,Oracle没有对每一个session内里可使用的savepoint个数做限定.

Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
简单生活 该用户已被删除
沙发
发表于 2015-1-19 14:31:23 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
若天明 该用户已被删除
板凳
发表于 2015-2-4 20:33:54 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
若相依 该用户已被删除
地板
发表于 2015-2-10 08:09:30 | 只看该作者
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
透明 该用户已被删除
5#
发表于 2015-3-1 04:10:23 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
小妖女 该用户已被删除
6#
发表于 2015-3-10 12:44:43 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
admin 该用户已被删除
7#
发表于 2015-3-17 07:11:57 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
海妖 该用户已被删除
8#
发表于 2015-3-24 02:10:51 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 19:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表