`
michael.softtech
  • 浏览: 208818 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

oracle一些小tip

阅读更多

近日在做报表的时候,有时候cpu利用率会很高,查看了一下发现主要是一些全表扫描(full scan) , 于是

了解了一下这个概念,顺带温习了一下oracle索引的相关知识,记录如下:

 

1. rowno与rowid

   前者是oracle对select出来的数据按照顺序分配的一个逻辑编号。

   后者是一个伪列,基本上每行记录生成之后就有一个rowid并且不再变化

2. B树索引与Bitmap索引

    B树索引实际就是一个平衡树索引,叶子节点上是key:rowid这种记录信息,每个索引条目指向一行。

    Bitmap索引是对基数比较小的key值,每个key值能索引一个或多个记录(一行记录根据值对每个key标记为0或者1).

    也正是如此,bitmap的索引列如果有更新时,需要锁定key值与待更新的key值相同的记录。因此容易引起死锁问题。

    所以位图所谓不适合与索引字段频繁更新的表。最好应用在数据仓库中。

3. 全表扫描

    首先需要明确的是oracle有大表和小表之分。

    大表如果有必要那么通过索引检索效率会高很多。小表的话直接全表扫描也是效率很高的。

    大表发生全表扫描的原因是没有索引或索引失去作用。

    B树索引如果遇到<>,is null ,is not null等条件时可能会失去作用。

4. oracle的一些基本概念

    block>extent>segment

    block通常为2k,4k,8k....

    extent 默认size为1M(uniform extent)

    oracle推荐的extent管理方式是LMT(locally managed tablespace).通过

    在tablespace的头里面维护extent的占用和空闲信息来提高效率。

    (相反的还有Dictionary managed tablespace,通过数据字典的方式维护相关信息)。

    可以通过表dba_tablespaces来了解tablespace的信息。

 

    每个extent下面的block必须是连续的地址空间。

    每个segment有多个extent组成,而且可以根据需要调整,所以segment下面的extent不一定是连续的。

    此外,每条记录可能会处于一个或多个block里面,而block也是oracle的基本操作unit,哪怕只查找一条记录,也会

    读取至少一个block的内容。

5. 可以通过 set autotrace traceonly explain 来查看sql的执行到底是全表扫描还是通过索引查找。

6. 可以通过,user_indexes,user_ind_columns了解系统(当前用户下)的具体索引情况。

分享到:
评论

相关推荐

    tiptop erp linux和oracle培訓PPT

    tiptop erp linux和oracle培訓PPT,很不錯的學習資料

    Oracle for Tiptop 系统培训教程

    Oracle for Tiptop系统培训教程主要涵盖了Oracle数据库的基础知识,包括体系结构、重要概念、数据存储、数据库的启动和关闭、服务器参数文件、表空间管理、用户管理、备份与恢复以及警告日志和相关工具。以下是对...

    Tiptop_系统培训教程-oracle

    Oracle_for_Tiptop_系统培训教程,希望对大家有帮助!

    oracle tiptop

    Oracle Tiptop 系统是神州数码管理系统有限公司提供的一个基于Oracle数据库的管理解决方案。本教程主要涵盖Oracle数据库的核心组成部分和管理实践,旨在帮助用户深入理解Oracle数据库的体系结构、内存结构、进程、...

    3.Oracle for Tiptop 系统培训教程 .ppt

    3.Oracle for Tiptop 系统培训教程 .ppt

    Oracle-for-Tiptop-系统培训教程-PPT课件.ppt

    Oracle for Tiptop系统培训教程主要涵盖了Oracle数据库的体系架构、内存及进程、数据存储、数据库启动和关闭、表空间管理、用户管理、数据库备份和恢复以及警告日志和相关工具等内容。以下是对这些知识点的详细说明...

    TIPTOP+GP创建复制新工厂(oracle).pdf

    TIPTOP+GP创建复制新工厂(oracle)

    Tiptop全套教材

    TIPTOP全套教材是一套全面涵盖Linux基础、VI编辑器教程、Oracle SQL数据库知识以及BDL(Business Data Language)编程语言的教育资源。这套教材旨在帮助学习者深入理解这些IT技术,提升他们的技能水平。 首先,让...

    TIPTOP SQL错误代码

    TIPTOP SQL错误代码是指在使用Informix数据库管理系统时,可能会遇到的一系列错误代码,这些代码帮助用户识别和解决问题。 Informix是一个强大的关系型数据库管理系统,由IBM开发,广泛应用于各种业务环境中。当SQL...

    tiptop管理员手册.zip

    tiptop管理员、oracle数据库管理

    TIPTOP ERP不完全实施开发手册.chm

    TIPTOP ERP不完全实施开发手册,里面有常用linux命令,TIPTOP、JAVA、jsp、oracle常用命令

    Oracle简版客户端

    Oracle简版客户端,用于Excel与Oracle连接;内附安装说明

    大班课 ORACLE部分-5

    TIPTOP培訓課程之培訓教材- 大班课 ORACLE部分-5

    TIPTOP 營運中心刪除及新增說明

    这些操作都需要对TIPTOP GP5.25的系统架构和Oracle数据库有深入的理解,以避免数据丢失或系统不稳定。在执行任何更改之前,建议备份关键数据和配置,以防止意外情况发生。同时,遵循最佳实践,定期检查系统的健康...

    tiptop 销售分析模块稳定

    文档中提到了TIPTOP销售分析系统的Oracle版本数据库手册,这表明该系统支持Oracle数据库管理系统,并且提供了详细的数据库结构文档,以便于用户更好地理解系统内部的数据存储方式。手册主要包括以下几部分: 1. **...

    Oracle多个表空间合并成一个表空间,验证通过

    ### Oracle 多个表空间合并成一个表空间详解 #### 背景介绍 在进行数据库维护时,可能会遇到需要将多个表空间合并为一个的情况。这种情况通常发生在新项目的开发过程中,尤其是当新项目需要引用来自其他表空间的...

    Oracle基础知识

    Oracle 基础知识 Oracle 是一个关系型数据库管理系统(RDBMS),它是由 Oracle Corporation 于 1979 年开发的。...这篇文章只是 Oracle 基础知识的 Tip of the iceberg,还有很多其他的知识点需要学习和掌握。

    tiptop管理员手册

    《易拓 tiptop 管理员手册》是神州数码专门为 ...这份手册详细阐述了 tiptop 系统的管理和维护流程,无论是对 Linux 的操作还是对 Oracle 数据库的管理,都为管理员提供了实用的指导,确保 tiptop 系统的稳定高效运行。

    Perl.for.Oracle.DBAs

    The tip and warning icons were drawn by Christopher Bing. This colophon was written by Linley Dolby. The online edition of this book was created by the Safari production group (John Chodacki, Becki ...

Global site tag (gtag.js) - Google Analytics