网站大量收购独家精品文档,联系QQ:2885784924

02-04 应用优化其他方法 (60 页) .ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
02-04 应用优化其他方法 (60 页)

May 13, 1999 Oracle RDBMS 大型应用优化其他方法 麦思博(北京)软件科技有限公司 2011.10 内容提要 临时表的使用方法 Logging与Nologging适当使用 关于热块问题 索引统计数据陈旧问题 多块读方法 索引与相关参数 会话级参数使用方法 Oracle 临时表 临时表的目的: 应用中的有的数据只是临时的存储,使用后不再使用; 永久表要存放在表中,给磁盘空间带来碎片; 临时比变量更有效,可以用SQL语句。 Oracle 允许在会话或事务其间创建临时表,以保存会话或事务的数据 : 临时表就是内存表,它不保存到表空间上; 临时表的数据仅在会话其间有效; 用CREATE GLOBAL TEMPORARY 完成临表的创建; 创建临时表可指定事务级后会话级有效; 不专门指定,则在会话结束后才释放; 对临时表做DML操作不产生重做日志(REDO LOG)。 Oracle 临时表-语法 在提交后删除行数据: 临时表可在提交后删除,语法为: Oracle 临时表-例子 创建临时表: 带GLOBAL TEMPORARY 创建;会话结束自动清除 : 内容提要 临时表的使用方法 Logging与Nologging适当使用 关于热块问题 索引统计数据陈旧问题 多块读方法 索引与相关参数 会话级参数使用方法 Logging Nologging 什么是redo 当块改变时,Oracle记录 改变向量,并发将这些存放SGA日志缓冲区由LGWR写到日志文件中 简单说: Redo = Transactions Logging Nologging 何时设置为NOLOGGING 下面情况可将表设置为NOLOGGING DIRECT LOAD (SQL*Loader) DIRECT LOAD INSERT (using APPEND hint) CREATE TABLE ... AS SELECT CREATE INDEX ALTER TABLE MOVE ALTER TABLE ... MOVE PARTITION ALTER TABLE ... SPLIT PARTITION ALTER TABLE … ADD PARTITION (if HASH partition) Logging Nologging 下面情况可将表设置为NOLOGGING ALTER TABLE … MERGE PARTITION ALTER TABLE … MODIFY PARTITION ADD SUBPARTITON COALESCE SUBPARTITON REBUILD UNUSABLE INDEXES ALTER INDEX ... SPLIT PARTITION ALTER INDEX ... REBUILD ALTER INDEX ... REBUILD PARTITION Logging Nologging 设置索引为NOLOGGING可加快处理速度 ALTER TABLE … NOLOGGING; INSERT /*+ nologging*/ … 下面情况可采用NOLOGGING Logging Nologging 创建表可指定NOLOGGING --创建时设置为NOLOGGING SQLCREATE 表指定NOLOGGING后,下面语句不产生日志: SQL INSERT INTO new_table_nolog_test ... SQL UPDATE new_table_nolog_test SET ... SQL DELETE FROM new_table_nolog_test ... NOLOGGING 特殊的创建表可指定NOLOGGING 限制写日志 修改不可恢复 修改不能传递到备用库 谨慎使用NOLOGGING 处于主要的生产数据库不要设置NOLOGGING 经常被其他数据库读取的数据库不要设置NOLOGGING 千万不能dataguard上用(如果已经做了database force logging 就没有事) NOLOGGING 用提示使用NOLOGGING insert /*+ append +/ into mytable values(1,‘alan’); Oracle归档模式下 当表为logging状态时,append/no append 都生成redo 当表为nologging状态时,只有append不生成redo Oracle非归档模式下 表在logging/nologing下:append 模式都不生成redo, 表在logging/nologing下:no append模式下都生成redo 在提示中使用NOLOGGING 可在提示中使用NOLOGG

文档评论(0)

317960162 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档