- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
511g新特性模式的管理
Oracle Database 11g:面向 DBA 和开发人员的重要特性
模式管理
通过显著加快并简化许多常见操作的新功能,更高效地管理数据库对象。
Oracle Database 11g 包括大量特性,这些特性不仅能够简化作业,在某些情况下,还可以将某些常见的耗时操作缩减为实际上的一行代码。在本文中,您将了解其中一些特性。
DDL Wait 选项
Jill 是 Acme Retailers 的 DBA,她尝试更改名为 SALES 的表,为其添加一列 TAX_CODE。这是很常见的任务;她执行以下 SQL 语句:
SQL alter table sales add (tax_code varchar2(10));
但是,她收到了以下消息,而非“Table altered”之类的内容:
alter table sales add (tax_code varchar2(10))
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
错误消息描述的是:该表目前可能正由一个事务使用,因此要获得该表的独占锁定不太可能。当然,表的行不会永远锁定。当会话 执行提交动作后,会释放对这些行的锁定,但在此之前,由于解除锁定期间很长,其他会话可能会更新表的其他行 — 这样,获得表的独占锁定的时机又消失了。在典型的业务环境中,以独占方式锁定表的窗口会定期打开,但 DBA 可能无法恰好在那时执行 alter 命令。
当然,Jill 也可以反复键入相同的命令,直到获得独占锁定或者失败(两者取其先)。
在 Oracle Database 11g 中,Jill 有更好的选择:DDL Wait 选项。她可以执行以下命令:
SQL alter session set ddl_lock_timeout = 10;
Session altered.
现在,如果会话中的 DDL 语句没有获得独占锁定,也不会显示错误消息。相反,它将等待 10 秒钟。在这 10 秒钟内,它将不断重试 DDL 操作,直到成功或超时(两者取其先)。如果执行以下命令:
SQL alter table sales add (tax_code varchar2(10));
该语句将挂起,并且不会显示错误消息。这样,Jill 就将重复尝试操作外包给了 Oracle Database 11g(就像电话通过程序重试繁忙号码),而不必反复尝试以获得难以捉摸的独占锁定可用时机。
现 在,Jill 十分喜欢这个特性,并与其他所有 DBA 一起分享这个特性。由于在系统繁忙期间更改表时,每个人都遇到过相同的问题,他们都发现这个新特性非常有帮助。因此,Jill 很想知道是否可以将该行为设为默认行为,这样就不需要每次都执行 ALTER SESSION 语句?
是的,可以。如果您执行 ALTER SYSTEM SET DDL_LOCK_TIMEOUT = 10,会话将在 DDL 操作期间自动等待该时间段。与任何其他 ALTER SYSTEM 语句一样,该语句可被 ALTER SESSION 语句覆盖。
添加具有默认值的列
尽管对该特性感到满意,Jill 还在考虑与第一个问题相关的另一个问题。她希望添加 TAX_CODE 列,但该列不能为空。显然,当她向非空表添加非空列时,还必须指定默认值“XX”。因此,她编写了以下 SQL:
alter table sales add tax_code varchar2(20) default XX not null;
但她在这里停下了。SALES 表十分巨大,大约有 4 亿行。她知道,在执行该语句时,Oracle 会立即添加该列,但在将控制权返回给她之前将更新所有行中的值“XX”。更新 4 亿行不仅要花费很长时间,还要填充撤销段、生成大量重做任务并产生极大的性能开销。因此,Jill 必须在“安静时段”(即,停机期间)才能进行此更改。Oracle Database 11g 中有更好的方法吗?
当然有。上述语句将不会对表中的所有记录执行更新。尽管对于列值将自动设为“XX”的新记录来说,这不是问题,但当用户选择现有记录的该列时,这将返回 NULL,是吗?
实际上并非如此。当用户选择现有记录的列时,Oracle 将从数据字典获取默认值并将其返回给用户。这样,您就实现了一箭双雕:可以将一个新列定义为非空并具有默认值,同时不会导致任何重做和撤销开销。真棒!
虚拟列
Acme 的数据库包含了一个名为 SALES 的表,如前所示。该表的结构如下:
SALES_IDNUMBERCUST_IDNUMBERSAL
您可能关注的文档
- 3门峡传媒大厦工程概况.doc
- 3语3、5、7、作业日志.doc
- 3重1大事项巡视情况表.doc
- 3项计划书格式异同.doc
- 3重1大制度实施办法.doc
- 4-1塔机安装作业指教书.doc
- 4(下)1单元导学设计彭毅.doc
- 4-1上学期家长会发言稿.doc
- 3颗枸杞豆教学设计.doc
- 3轴搅拌桩监理细则.doc
- 3223G00005-商务交际英语(初级)-2023版人才培养方案课程教学大纲.docx
- 2023D00128-数据库系统-2023版人才培养方案课程教学大纲.docx
- 2123S01023-卫生公共关系学-课程教学大纲J21公共卫生学院 2023版人才培养方案课程教学大纲.docx
- 3023D02012-经济应用文写作-2023版人才培养方案课程教学大纲.docx
- 2923D02011-美学-2023版人才培养方案课程教学大纲.docx
- 2023D00103-运筹学-2023版人才培养方案课程教学大纲.docx
- 2923D02009-坤舆群学书院-2023版人才培养方案课程教学大纲.docx
- 3023S05007-电子电力技术A-2023版人才培养方案课程教学大纲.docx
- 2123D01022-医学文献检索J21公共卫生学院 2023版人才培养方案课程教学大纲.docx
- 3823S01005-环境影响评价-2023版人才培养方案课程教学大纲.docx
最近下载
- RBA6.0责任商业联盟行为准则管理体系全套程序文件汇编(含表格).pdf VIP
- 2024年时事政治知识点汇总.pdf VIP
- 预制舱安装方案.doc
- 三氯化铝(MSDS)安全技术说明书.pdf VIP
- 强责任转作风、严纪律、提效能活动心得体会范文(通用9篇).doc
- 肿瘤学复习重点总结.docx VIP
- 任务一:家庭垃圾我会分--垃圾分类我能行 (教案)浙教版劳动二年级上册.docx
- 第8单元 第24章 第1节 人口增长与环境保护2023-2024学年八年级下册生物同步教学设计(北师大版).docx
- 《HSK标准教程4上》第1课《简单的爱情》自用课件.pptx
- 2021最新苏教版科学(2017)六年级上册教学计划及教学进度表.docx
文档评论(0)