- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结构锁 (5)结构锁 结构锁用于执行依赖于表结构的操作。结构锁又分为结构修改锁(Sch-M)和结构稳定性锁(Sch-S)两种。 当执行表的数据定义语言操作(例如添加列或除去表)时使用结构修改锁;而当编译查询时,使用结构稳定性锁。 结构稳定性锁不阻塞任何事务锁,因此在编译查询时,其他事务(包括在表上有排它锁的事务)都能继续运行。但不能在表上执行表的数据定义语言操作。 大容量修改锁 (6)大容量修改锁 当将数据大容量复制到表,且指定了 TABLOCK 提示(或者使用 sp_tableoption 设置了 table lock on bulk 表选项)时,将使用大容量更新 (BU) 锁。 大容量更新 (BU) 锁允许进程将数据并发地大容量复制到同一表,同时防止其它不进行大容量复制数据的进程访问该表。 7.2.3 阻塞和死锁 任何基于锁的并发系统都不可避免地具有可能在某些情况下发生阻塞的特征。当一个连接控制了一个锁,而另一个连接需要冲突的锁类型时,将发生阻塞。其结果是强制第二个连接等待,或在第一个连接上阻塞。 当某组资源的两个或多个线程之间有循环相关性时,就会发生死锁。任何多线程系统中都有可能发生死锁。当不同的用户分别锁定一个资源,而又等待对方释放其锁定的资源时,会出现死锁现象。 阻塞和死锁 例如,运行事务1 的线程 T1 具有 choice表上的排它锁。运行事务2 的线程 T2 具有 student表上的排它锁,并且之后需要 choice表上的锁。由于事务 1 已拥有了它,所以事务2 无法获得这一锁,它被阻塞,等待事务1释放锁。此时,事务1又需要student表的锁,但因为事务2已将它锁定了,故也无法获得该锁。它也被阻塞,等待事务2释放锁。在事务提交或回滚之前两个线程都不能释放资源,而且它们因为正等待对方拥有的资源而不能提交或回滚事务。这样就形成了死锁。 阻塞和死锁 在SQL Server 2000中,由锁监视器线程对死锁进行检测。SQL Server 2000通常自动定期检测死锁。当锁监视器对特定线程启动死锁的检测时,它识别到线程正在等待的资源,然后查找该特定资源的拥有者,并递归地继续执行对那些线程的死锁搜索,直到搜索一个循环。用这种方式识别的循环形成一个死锁。 阻塞和死锁 识别死锁后,SQL Server 2000自动设置一个事务打破死锁的线程。SQL Server 2000 会查看所有的参与线程以及每个线程做了多少工作。通常SQL Server 会选择工作量最小的参与线程作为死锁牺牲品。终止该线程,从而结束死锁。 7.2.4 对锁的操作 虽然SQL Server自动执行锁定,但仍然可以通过以下方法自定义应用程序中的锁定: l? 处理死锁和设置死锁优先级。 l? 处理超时和设置锁超时持续时间。 l 设置事务隔离级别。 l? 对 SELECT、INSERT、UPDATE 和 DELETE 语句 使用表级锁定提示。 l 配置索引的锁定粒度。 7.3 作 业 作业是由SQL Server代理程序按顺序自动执行的一系列指定的操作。作业可以执行广泛的活动,包括运行Transact-SQL脚本,命令行应用程序和Microsoft ActiveX脚本。作业还可产生警报以通知用户作业的状态。 作业既可以在本地服务器上执行,也可以在远程服务器上执行。可以手动运行作业,也可以定时自动执行,或由某些特定的事件激发执行。可以创建作业来执行经常重复和可调度的任务,例如,创建一个作业定期完成系统数据备份。管理员也可以为作业安排执行时间表,SQL Server代理服务将按照指定的时间表自动执行作业。 7.3.1 SQL Server代理服务 在用户定义的自动化任务被执行前,SQL Server代理服务必须处于运行状态。和运行在Windows NT/2000上的其他服务一样,SQL Server代理服务也必须以某一帐户启动和运行。 可以通过企业管理器设置SQL Server代理服务启动帐户,也可用Windows NT/2000的系统管理工具设置SQL Server代理服务启动帐户。 SQL Server代理服务的启动 与启动SQL Server服务器一样,可以使用SQL Server服务管理器启动SQL Server代理服务器。这只需从服务管理器窗口的“服务(R):”下拉列表中选择“SQL Server Agent”即可,如图7-5所示。 图7-5 启动SQL Server代理服务 7.3.2 创建作业 要想让SQL Server 2000代理服务自动处理一个任务,第一步是创建对应的作业。 一个作业是由一个或多个作业步骤组成的。作业步骤可以是可执行程序、Wi
您可能关注的文档
- SQL Server 2005数据库基础项目3学生管理数据库中的数据操作.ppt
- SQL Server 2005数据库基础项目4学生基本信息查询.ppt
- SQL Server 2005数据库基础项目5 学生成绩查询.ppt
- SQL Server 2005数据库基础项目6学生管理数据库的编程.ppt
- SQL Server 2005数据库基础项目8学生信息管理系统的构建.ppt
- SQL Server 2005数据库技术与应用第1章 数据库基础.ppt
- SQL Server 2005数据库技术与应用第4章 管理数据库.ppt
- SQL Server 2005数据库技术与应用第5章 表.ppt
- SQL Server 2005数据库技术与应用第6章 数据操作实例.ppt
- SQL Server 2005数据库技术与应用第7章 视 图.ppt
- SQL Server2000实用教程第8章 SQL Server系统应用实例.ppt
- SQL Server2005第1章_SQL_Server_2005的安装和配置.ppt
- SQL Server数据库及PHP技术第1章 数据库系统概述.pptx
- SQL Server数据库及PHP技术第2章 关系数据库.pptx
- SQL Server数据库及PHP技术第3章 数据库管理.pptx
- SQL Server数据库及PHP技术第4章 结构化查询语言.pptx
- SQL Server数据库及PHP技术第6章 数据库高级主题.pptx
- SQL Server数据库及PHP技术第7章 PHP数据库程序设计.pptx
- SQL Server数据库应用开发技术第9章.ppt
- SQL Server数据库应用开发技术第10章.ppt
文档评论(0)