随笔分类 - 索引知识
索引知识
摘要:一段听说CSDN.COM里面很多好东西,同事建议看看合适自己也可以写一写,呵呵,今天第一次开通博客,随便写点东西,就以第一印象分区表简单写第一个吧。ORACLE对于分区表方式其实就是将表分段存储,一般普通表格是一个段存储,而分区表会分成多个段,所以查找数据过程都是先定位根据查询条件定位分区范围,即数据在那个分区或那几个内部,然后在分区内部去查找数据,一个分区一般保证四十多万条数据就比较正常了,但是分区表并非乱建立,而其维护性也相对较为复杂一点,而索引的创建也是有点讲究的,这些以下尽量阐述详细即可。1、类型说明:range分区方式,也算是最常用的分区方式,其通过某字段或几个字段的组合的值,从小到
阅读全文
摘要:oracle 索引监控 即使是一个初期设计非常优秀的数据库系统,在持续运行一段时间后,由于数据量的累加,数据库对象的变化,甚至是业务方面的改变,多可能会对数据库的性能带来影响。所以一个持续、健康的数据库系统,时常在半年或一年进行一次全面体检。其中极其重要的体检的指标就是对索引的修改。有可能当初设计合理的索引现在没有发挥大的作用,也有可能已经完成没有作用,甚至可能对数据库性能产生了负担。。。 那么就需要我们去监控、分析、修改甚至删除了。 我们可以打开索引监控性能。查看一段时间内索引的使用频率。[TEST1@orcl#26-12月-10] SQL>select index_name,tabl
阅读全文
摘要:(一) 分类: Oracle DBA2011-05-25 17:19679人阅读评论(0)收藏举报objectsqltable测试disk磁盘1.创建测试用表t_compress_indexSQL> create table t_compress_index as select * from all_objects; Table created 2.不使用索引压缩技术创建索引SQL> create index idx_t_compress_index on t_compress_index(owner,object_type,object_name); Index createdS
阅读全文
摘要:oracle虚拟索引的创建oracle在创建索引时,可以通过在SQL语句后添加 nosegment快速建立虚拟索引。例如,create index index_name on table_name(col_name) nosegment;如果在哪个session需要测试虚拟索引,可以利用隐含参数来处理alter session set "_use_nosegment_indexes" = true;就可以利用explain plan for select ……来看虚拟索引的效果;利用@$ORACLE_HOME/rdbms/admin/utlxpls查看执行计划。最后,根据需
阅读全文
摘要:函数索引的概念: 基于函数的索引也是8i以来的新产物,它有索引计算列的能力,它易于使用并且提供计算好的值,在不修改应用程序的逻辑上提高了查询性能。使用基于函数的索引有几个先决条件:(1) 必须拥有QUERY REWRITE(本模式下)或GLOBAL QUERY REWRITE(其他模式下)权限。 (2) 必须使用基于成本的优化器,基于规则的优化器将被忽略。 (3) 必须设置以下两个系统参数:QUERY_REWRITE_ENABLED=TRUEQUERY_REWRITE_INTEGRITY=TRUSTED可以通过alter system set,alter session set在系统级或线程级
阅读全文
摘要:关于is null和is not null不能利用索引的测试测试is null和is not null能否利用索引--创建测试数据create table student( id int primary key not null, sid int)--创建索引CREATE INDEX STU_SID ON STUDENT(SID ASC) PCTFREE 10 ALLOW REVERSE SCANS;--插入数据create procedure insertDate()BEGIN DECLARE v_id int; set v_id = 0; while v_id 由查询计划可以看出,该语句使
阅读全文
摘要:1、选择性 Oracle根据查询和数据,提供了多种方法来判断使用索引的价值。第一个方法是判断索引中的唯一键或不同键的数量。使用USER_INDEXES视图,该视图中显示了distinct_keys列。比较一下唯一键的数量和表中的行数,就可以判断索引的选择性。选择性越高,索引返回的数据就越少。索引的选择性可以帮助基于代价的优化器来判断执行途径。SQL> select index_name,table_name,num_rows,distinct_keys from user_indexes;INDEX_NAME TABLE_NA NUM_ROWS DISTINCT_KEYS----
阅读全文
摘要:simon 发表于 2012 -11 - 7 标签 oracle , 数据库优化 , 程序员 , 索引 阅读 878 次0 评论 关系数据库的精髓就是通过关系表进行规范化的数据存储,通过各种表连接技术和各种类型的索引技术来进行信息的检索和处理。合理的索引是保证各种操作快速、高效的关键。据统计,与数据库有关的性能问题,70%是因为程序员对索引和表连接的不了解,导致SQL语句共享性不高、全表扫描、索引被抑制而造成的。常用的索引类型有 B-树索引、位图索引、HASH索引、索引编排表、反转键索引、基于函数的索引、分区索引、本地和全局索引。一、索引设计基本原则 1) 针对B*树单字段索引的设计原则 1.
阅读全文
摘要:我们今天主要介绍的是Oracle性能调整,还有回收相关的表空间碎片的方案,如果你对其相关的实际操作步骤的感兴趣的话,以下的文章你就可以点击阅读了,AD:2013云计算架构师峰会超低价抢票中 以下的文章主要是介绍Oracle性能调整,以及回收相关的表空间碎片的几种方法,首先我们要将相关的表空间用compress=Y参数exp出来,在将其中表truncate后,将表imp进去。这是第一步,2、使用alter tablespace name coalesce; 手动收缩一次。3、将表空间的pctincreace参改为大于0,让其自动收缩。一般改为1。alter tablespace name sto
阅读全文
摘要:Submitted on 21-Jul-2000 9:17 UTCTom's latest followup | Bookmark | BottomLast updated 21-Feb-2012 19:10You AskedHi Tom,I've entered the following command to coalesce my 'users' tablespace but it returned without any coalescing:alter tablespace users coalesce;What is the reason? and
阅读全文
摘要:都知道alter table move 或shrink space可以收缩段,用来消除部分行迁移,消除空间碎片,使数据更紧密,但move跟shrink space还是有区别的。 Move会移动高水位,但不会释放申请的空间,是在高水位以下(below HWM)的操作。 而shrink space 同样会移动高水位,但也会释放申请的空间,是在高水位上下(below and above HWM)都有的操作。Move解决问题: a. 我们可以使用move将一个table从当前的tablespace上移动到另一个tablespace上: alter table t move tablespace tab
阅读全文
摘要:alter table xxx shrink space 和 alter table xxx move move命令是将数据从原来的段移到目标段的命令。 [move命令] SQL> alter table emp move;ORA-01652: unable to extend temp segment by 8 in tablespace AUTOSEG_TSTAUTOSEG_TST表空间没有足够的空闲空间。SQL> select f.tablespace_name,d.file_name,f.bytes/1024 KBytes,f.blocks,d.autoextensible
阅读全文
摘要:废话少说,直接讲分区语法。Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区。一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如:Sql代码 createtable graderecord ( sno varchar2(10), sname varchar2(20), dormitory varchar2(3), grade int ) partition by range(grade) ( partition bujige values less than(60), --不及格 partition jige values less than...
阅读全文
摘要:Oracle聚簇表介绍详细请参考:http://www.codesky.net/article/201007/167540.html一:首先介绍一下索引聚簇表的工作原理: 聚簇是指:如果一组表有一些共同的列,则将这样一组表存储在相同的数据库块中;聚簇还表示把相关的数据存储在同一个块上。利用聚簇,一个块可能包含多个表 的数据。概念上就是如果两个或多个表经常做链接操作,那么可以把需要的数据预先存储在一起。聚簇还可以用于单个表,可以按某个列将数据分组存储。 更加简单的说,比如说,EMP表和DEPT表,这两个表存储在不同的segment中,甚至有可能存储在不同的TABLESPACE中,因此,他们的..
阅读全文
摘要:一.Oracle中直方图的作用直方图是一种对被管理对象某一方面质量进行管理的描述工具,那么在Oracle中自然它也是对Oracle中某个对象质量的描述工具,这个对象就是Oracle中最重要的东西——“数据”。在Oracle中直方图是一种对数据分布质量情况进行描述的工具。它会按照某一列不同值出现数量多少,以及出现的频率高低来绘制数据的分布情况,以便能够指导优化器根据数据的分布做出正确的选择。在某些情况下,表的列中的数值分布将会影响优化器使用索引还是执行全表扫描的决策。当 where 子句的值具有不成比例数量的数值时,将出现这种情况,使得全表扫描比索引访问的成本更低。这种情况下如果where 子句
阅读全文
摘要:直方图概述直方图是一种统计学上的工具,并非Oracle专有,通常情况下它会表现为一种几何图形表,这个图形表是根据从实际环境中所收集来的被管理对象某个方面的质量分布情况的数据所绘制成的,通常会画成以数量为底边,以频度为高度的一系列连接起来的矩形图,因此直方图在统计学上也称为质量分布图。在Oracle中直方图是一种对数据分布质量情况进行描述的工具。它会按照某一列不同值出现数量多少,以及出现的频率高低来绘制数据的分布情况,以便能够指导优化器根据数据的分布做出正确的选择。在某些情况下,表的列中的数值分布将会影响优化器使用索引还是执行全表扫描的决策。当where 子句的值具有不成比例数量的数值时,将出现
阅读全文
摘要:概要 什么是单一索引,什么又是复合索引呢? 何时新建复合索引,复合索引又需要注意些什么呢?本篇文章主要是对网上一些讨论的总结。一.概念单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上。用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引)。复合索引的创建方法与创建单一索引的方法完全一样。但复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引。当表的行数远远大于索引键的数目时,使用这种方式可以明显加快表的查询速度。同时有两个概念叫做窄索引和宽索引,窄索引是指索引列为1-2列的索引,如果不特殊说明的话一般是指单一索引。宽索引也就是索引列超过2列的索引。设计索引的一个重要
阅读全文
摘要:数据库优化oracle存储工作磁盘 作为数据库管理员来说,要在表上建立索引很简单。但是要知道这个索引是否合适、如何优化索引则就具有一定的难度。这项工作也是用来评价一个数据库管理员是否算得上专家的一个重要指标。那么为什么索引优化有这么大的难度呢?这主要是因为索引优化是考察一个数据库管理员经验的时候。笔者今天就跟大家分享一下这方面的管理经验。 其实在数据库中本身就提供了一些比较有参考价值的信息,可以帮助管理员来做好索引的设计与优化。二元高度就是Oracle数据库中帮助数据库管理员来做好这个工作的工具。什么叫做二元高度呢?说实话笔者也不了解这个名词具体代表的含义。只知道索引二元高高度对把Rowi..
阅读全文

浙公网安备 33010602011771号