- 0
- 0
- 约1.62万字
- 约 48页
- 2017-05-30 发布于四川
- 举报
* * * * * * * * * * * * * * * * * * * * * * * * * * * * 15.注意索引无法被使用的情况 被索引字段在过滤谓词上使用了全模糊查询的方式如col like ‘%ABC%’ 这种情况的处理原则还是尽量避免或者进行改写,具体方法可参照前文有关模糊查询的部分。 ? 被索引字段在过滤谓词中使用了!=,,NOT IN等 这种情况的处理原则还是尽量避免或者进行改写,比如说取不等于或NOT IN部分的反,然后就可以将条件改为等于或者是IN了。但要评估各自占总记录数的比例,如果占比过高的话,索性就用全表扫描了。 15.注意索引无法被使用的情况 被索引字段在过滤谓词中使用了函数。 此时除非建立函数索引,否则普通索引是无法被使用的,如例: WHERE TO_CHAR(zip) = ‘94002’; ? 类似这种情况我们可以将改写一下,将计算移动到等号右侧: WHERE zip = TO_NUMBER(‘94002’); 改写的原则就是使过滤谓词一边,也就是左侧保持“干净”,这样在zip字段上的普通索引就可以被使用了。因为毕竟函数索引在做索引维护的时候成本是比较高的,而且在zip字段上所建立的函数索引只能用于这种使用了该函数的场景,针对其它没使用函数的zip字段直接做过滤条件的语句是无法共用的,整体使用效率就打了折扣。 15.注意索引无法被使用的情况 因此,但凡能够通过改写解决问题的情况就不要建立函数索引。如果实在改写不了,评估建立函数索引后效率会有所提高后,也要考虑建立,毕竟全表扫描的情况是要尽量避免的。 16.减少REDO日志生成的一些手段 通过一些手段可以达到减少某些SQL的REDO日志生成量,从而达到提高效率的目的。对于报表系统、批处理系统、大批量数据加载等操作还是有一定的现实意义。 但切记一点的是,对关键的业务数据库是禁止使用该方法的,因为减少了REDO日志会使数据库做恢复时可能丢失一些没有被记录日志的数据,在对数据的完整性要求非常严格的系统中,这种操作是应该被禁止的。 16.减少REDO日志生成的一些手段 CTAS语句 CREATE TABLE a2 AS SELECT * FROM a1; --未使用 CREATE TABLE a2 NOLOGGING AS SELECT * FROM a1; --使用了 NOLOGGING? 创建(重建)索引 CREATE INDEX idx_t1 ON t1(col1); --未使用 CREATE INDEX idx_t1 ON t1(col1) NOLOGGING; --使用了NOLOGGING ALTER INDEX idx_t1 REBUILD; --未使用 ALTER INDEX idx_t1 REBUILD NOLOGGING; --使用了NOLOGGING ? 移动表 ALTER TABLE t1 MOVE; --未使用 ALTER TABLE t1 MOVE NOLOGGING; --使用了NOLOGGING 16.减少REDO日志生成的一些手段 直接路径插入 INSERT INTO t2 SELECT * FROM t1; --未使用 ALTER TABLE t2 NOLOGGING; --使用了NOLOGGING INSERT /*+APPEND*/ INTO t2 SELECT * FROM t1; --使用了APPEND ? 注意:APPEND提示要与NOLOGGING结合使用; 对于INSERT INTO… VALUES语句,不要使用APPEND提示, 因为起不到作用; 使用了APPEDN提示后的插入语句必须及时提交,这也限制了并 发性,因此在联机交易型系统中禁止使用该提示。 ? SQL
您可能关注的文档
最近下载
- 会计报表附注(企业会计准则).pdf VIP
- 2025年深圳市考公务员考试《行测》真题及答案.docx
- 2025年山东省公务员考试《行测》真题及答案.pdf
- 股权转让合同协议简单范本.doc VIP
- 2025年山东省公务员考试《行测》真题及答案.docx
- 2025年江西省公务员考试《行测》真题及答案.pdf
- 数字普惠金融对中小企业融资约束的影响研究.docx VIP
- 【新教材】人教版(2024)七年级上册数学第五章 一元一次方程 综合素质评价试卷(Word版,含答案).docx VIP
- 2025年江西省公务员考试《行测》真题及答案.docx
- 2025年河北省公务员考试《行测》真题及答案.pdf
原创力文档

文档评论(0)