首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【DB笔试面试561】在Oracle中,如何预估即将创建索引的大小?

♣ 题目部分 在Oracle中,如何预估即将创建索引的大小? ♣ 答案部分 如果当前表大小是1TB,那么在某一列上创建索引的话索引大概占用多大的空间?...对于这个问题,Oracle提供了2种可以预估将要创建的索引大小的办法: ① 利用系统包DBMS_SPACE.CREATE_INDEX_COST直接得到。...说明:USED_BYTES代表实际使用的字节数,而ALLOCATED代表申请的字节数。...第二种办法:Oracle 11g新特性:NOTE RAISED WHEN EXPLAIN PLAN FOR CREATE INDEX 这是一个非常实用的小特性,在Oracle 11gR2中使用EXPLAIN...& 说明: 有关如何预估即将创建索引的大小可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-1381160/ 本文选自《Oracle程序员面试笔试宝典

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【DB笔试面试562】在Oracle中,如何监控索引的使用状况?

    ♣ 题目部分 在Oracle中,如何监控索引的使用状况?...♣ 答案部分 在开发应用程序时,可能会建立很多索引,那么这些索引的使用到底怎么样,是否有些索引一直都没有用到过,在这种情况下就需要对这些索引进行监控,以便确定它们的使用情况,并为是否可以清除它们给出依据...监控索引有两种方式: 1、直接监控索引的使用情况 (1)设置所要监控的索引:ALTER INDEX IDX_T_XX MONITORING USAGE; (2)查看该索引有没有被使用:SELECT *...,分析索引的使用情况 可以从视图DBA_HIST_SQL_PLAN中获取到数据库中所有索引的扫描次数情况,然后根据扫描次数和开发人员沟通是否需要保留索引。...从图中可以看到有一个3.6G大的索引在13号到22号从没使用过,接下来,可以继续查询该索引是否是联合索引,创建是否合理,分析为何不走该索引,从而判断是否可以删除索引。

    1.3K20

    如何使用Lily HBase Indexer对HBase中的数据在Solr中建立索引

    2.首先你必须按照上篇文章《如何使用HBase存储文本文件》的方式将文本文件保存到HBase中。 3.在Solr中建立collection,这里需要定义一个schema文件对应到HBase的表结构。...6.然后启动Morphline作业,是一个MapReduce任务,它会首先读取存在HBase中的原始文件,然后开始创建Solr的全文索引,最终把索引也会保存到HDFS。 ?...注意Solr在建立全文索引的过程中,必须指定唯一键(uniqueKey),类似主键,唯一确定一行数据,我们这里的示例使用的是HBase中的Rowkey。如果没有,你可以让solr自动生成。...7.总结 ---- 1.使用Lily Indexer可以很方便的对HBase中的数据在Solr中进行索引,包含HBase的二级索引,以及非结构化文本数据的全文索引。...否则Solr会无法创建collection,YARN也无法启动创建索引的MapReduce任务。

    4.9K30

    Oracle总结【视图、索引、事务、用户权限、批量操作】

    前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容… 在数据库中,我们可以把各种的SQL语句分为四大类… (1)...不会影响基表 删除基表,会影响同义词吗? 会影响同义词 序列 Mysql的自动增长可以直接在创建表的时候,在字段后面跟上auto increament关键字就行了。...不会 在hibernate中,如果是访问oracle数据库服务器,那么User.hbm.xml映射文件中关于标签如何配置呢?...管理系统决定何时使用索引 (2)用户不用在查询语句中指定使用哪个索引 (3)在定义primary key或unique约束后系统自动在相应的列上创建索引 (4)用户也能按自己的需求,对指定单个字段或多个字段...emp_ename_job_idx,多列索引/联合索引 create index emp_ename_job on emp(ename,job); 如果在where中只出现job不使用索引 如果在where

    2K41

    数据库:视图和索引

    大家好,又见面了,我是你们的朋友全栈君。 目录 一、视图 1.什么是视图? 2.为什么使用视图? 3.如何使用视图? 二、索引 1.什么是索引? 2.为什么使用索引? 2.如何使用索引?...(创建、删除) 3.适用场景有哪些? 4.注意事项有哪些? ---- 一、视图 1.什么是视图? 视图是一张虚拟表,并不在数据库中以存储数据值集的形式存在。在引用过程中依据基表动态生成。...高效:复杂的连接查询,每次执行时效率比较低,可以考虑新建视图,每次从视图中获取,将会提高效率。 定制数据:将常用的字段放置在视图中。 3.如何使用视图?...with check option关键词词用于保证视图的查询条件不被修改,但其他字段可以修改。 二、索引 1.什么是索引? 索引是供服务器快速在表中查询一行数据的数据结构,可以比作书籍的目录。...第1条语句的条件字段是主键,主键自动创建索引,根据记录地址查找;而第2条语句的条件是普通字段,做的是全表扫描。 2.如何使用索引?

    63050

    别再说不懂索引了

    所谓的存储引擎,说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。...在创建表时,InnoDB 存储引擎会根据不同的场景选择不同的列作为索引: 如果有主键,默认会使用主键作为聚簇索引的索引键(key); 如果没有主键,就选择第一个不包含 NULL 值的唯一列作为聚簇索引的索引键...比如将商品表中的 product_no 和 name 字段组合成联合索引 (product_no, name),创建联合索引的方式如下: CREATE INDEX index_product_no_name...越靠前的字段被用于索引过滤的概率越高,实际开发工作中建立联合索引时,要把区分度大的字段排在前面,这样区分度大的字段越有可能被更多的 SQL 使用到。...使用前缀索引是为了减小索引字段大小,可以增加一个索引页中存储的索引值,有效提高索引的查询速度。在一些大字符串的字段作为索引时,使用前缀索引可以帮助我们减小索引项的大小。

    58020

    Mysql索引

    key(id,name):联合主键索引 unique(id,name):联合唯一索引 index(id,name):联合普通索引 4.全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。...index_name ON (column(length)) 删除索引 DROP INDEX index_name ON table 唯一索引 唯一索引,与普通索引类似,但是不同的是唯一索引要求所有的类的值是唯一的...,account,created_time) 在使用查询的时候遵循mysql组合索引的”最左前缀”,下面我们来分析一下 什么是最左前缀:及索引where时的条件要按照建立索引的时候字段的排序方式 不按索引最左列开始查询...,则其右边的所有列都无法使用查询(多列查询) Where c1= ‘xxx’ and c2 like = ‘aa%’ and c3=’sss’ 改查询只会使用索引中的前两列,因为like是范围查询 不能跳过某个字段来进行查询...Collation 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。 Cardinality 索引中唯一值的数目的估计值。

    1.9K10

    【MySQL】表的内外连接和视图

    内连接 内连接实际上就是利用 where 子句对两种表形成的笛卡尔积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。...语法: select 字段名 from 表名1 left join 表名2 on 连接条件; 例如,先创建两张表: 学生表,并插入数据: 成绩表,并插入数据: 接下来要做的: 查询所有学生的成绩,...如果这个学生没有成绩,也要将学生的个人信息显示出来 我们使用左外连接,将学生表的信息在左边显示,当左边表和右边表没有匹配时,也会显示左边表的数据: select * from stu left join...视图规则和限制 与表一样,必须唯一命名(不能出现同名视图或表名); 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响; 视图不能添加索引,也不能有关联的触发器或者默认值; 视图可以提高安全性...,必须具有足够的访问权限; order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖; 视图可以和表一起使用。

    18110

    MySQL慢查询及解决方案

    使用多列索引的查询语句 MySQL可以为多个字段创建索引。一个索引最多可以包括16个字段。对于多列索引,只有查询条件使用了这些字段中的第一个字段时,索引才会被使用,也就是左匹配原则。...,否则将无法使用该联合索引; 13)From子句中表的出现顺序同样会对SQL语句的执行性能造成影响,From子句在解析时是从后向前的,即写在末尾的表将被优先处理,应该选择记录较少的表作为基表放在后面,同时如果出现...4.3 表结构优化 这里主要指如何正确的建立索引,因为不合理的索引会导致查询全表扫描,同时过多的索引会带来插入和更新的性能开销; 1)首先要明确每一条SQL语句最多只可能使用一个索引,如果出现多个可以使用的索引...3)对于区分度不大的字段,不要建立索引; 4)一个字段只需建一种索引即可,无需建立了唯一索引,又建立INDEX索引。...5)对于大的文本字段或者BLOB字段,不要建立索引; 6)连接查询的连接字段应该建立索引; 7)排序字段一般要建立索引; 8)分组统计字段一般要建立索引; 9)正确使用联合索引,联合索引的第一个字段是可以被单独使用的

    85020

    【MySQL】015-MySQL索引

    通过在查询涉及的列上创建索引,数据库引擎能够快速定位和检索满足查询条件的数据,而不必扫描整个表。 唯一性约束:索引可以用来确保某一列或列组的值在表中是唯一的,从而维护数据的完整性。...★ MySQL创建唯一索引的常见方式 001 在CREATE TABLE语句中创建唯一索引 在创建表的同时定义唯一索引,使用UNIQUE关键字确保列中的值是唯一的。...我们在users表中创建了两个唯一索引,分别用于email和username列,以确保这两列中的值不重复。...尽可能地创建联合索引:相对于创建的单一索引来说,如果适合创建联合索引应当选择建立联合索引,因为联合索引多个字段在一个索引上,可以很大程度地减少磁盘占用的空间,提高维护索引效率。...因为在联合索引中,数据是按照索引第一列排序,在第一列相同的情况下才按照第二列进行排序,也就是最左边的列是全局有序的,而其余的列都是局部相对有序的,查询时如果连最左的列都无法匹配到,那么自然无法使用索引。

    8810

    mysql索引及执行计划

    BTREE查找算法演变 B-TREE 普通BTREE B+TREE 叶子节点双向指针 B++TREE 枝节点的双向指针 mysql中如何使用BTREE b树分三层 聚簇索引构建过程 leaf 叶子 存储数据行时就是有序的...clustered 聚簇(exent 区)索引 extent区 : 连续的64的数据页 默认1m IOT组织表 : 会按照聚簇索引组织方式,存储表中的数据行 聚簇索引是建表时的 主键列 如果没有主键是第一个非空的唯一键...创建索引 alter table 表名 add index 索引名(字段); alter table 表名 add index 索引名(字段1,字段2) 联合索引要保证最左原则 前缀索引 alter...(主键或者唯一建再用不等于时会转换成大于小于范围查询) 或者隐式转换 在5.7之前会有查询结果集大于25%就会走全表数据 统计信息不准确 联合索引应用细节 如何查询联合索引应用那部分索引 explain...=1 and c='a'; 在联合索引中如果中间出现了不等值条件 或者 大于或小于 like %% 就会走到部分列的索引, 会在查询条件 不等值条件 或者 大于或小于 like %%, 就不会在下一个查询条件走联合索引的下一列

    1.3K31

    mysql操作命令梳理(1)-索引

    1、创建索引 索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。...以下命令语句分别展示了如何创建主键索引(PRIMARY KEY),联合索引(UNIQUE)和普通索引(INDEX)的方法。...在MySQL中,有值‘A'(升序)或NULL(无分类)。 Cardinality 索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。...主键,是一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字 PRIMARY KEY 来创建。...test表的复合主键 (若其一为单索引字段时,左边的id才会有索引) 它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性 一般情况下,主键的字段长度和字段数目要越少越好

    1.2K60

    01-EF Core笔记之创建模型

    使用EF Core的第一步是创建数据模型,模型建的好,下班走的早。EF Core本身已经设置了一系列约定来帮我们快速的创建模型,例如表名、主键字段等,毕竟约定大于配置嘛。...注意:如果CLR中属性不能为null,则无论如何配置都将为必填。 也就是说,如果能为null,则默认都是可空字段,因此在配置时,只需要配置是否为必填即可。...继承 关于继承关系如何在数据库中呈现,目前有三种常见的模式: TPH(table-per-hierarchy):一张表存放基类和子类的所有列,使用discriminator列区分类型,目前EF Core...仅支持该模式 TPT(table-per-type ):基类和子类不在同一个表中,子类对应的表中仅包含基类表的主键和基类扩展的字段,目前EF Core不支持该模式 TPC(table-per-concrete-type...):基类和子类不在同一个表中,子类中包含基类的所有字段,目前EF Core不支持该模式 EF Core仅支持TPH模式,基类和子类数据将存储在同一个表中。

    3.1K20

    Mysql资料 索引--索引管理

    (唯一) 3.联合索引 -primary key(id,name):联合主键索引 -unique(id,name):联合唯一索引 -index(id,name):联合普通索引 4.全文索引fulltext...TEXT 那么这个 会员编号,作为主键,使用 PRIMARY 会员姓名 如果要建索引的话,那么就是普通的 INDEX 会员身份证号码 如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复...其他的如空间索引SPATIAL,了解即可,几乎不用 索引类型 我们可以在创建上述索引的时候,为其指定索引类型,分两类 hash类型的索引:查询单条快,范围查询慢 btree类型的索引:b+树,层数越多,...、Hash、Full-text 等索引; 操作索引 创建索引 在创建表时就创建(需要注意的几点) create table s1( id int , #可以在这加primary key #id int...index #不可以这样加索引,因为index只是索引,没有约束一说,不能像主键,还有唯一约束一样,在定义字段的时候加索引 name char(20), age int, email varchar(30

    74100

    mysql基础

    索引的优点: • 通过创建唯一索引,来保证数据库表中的每一行数据的唯一性。 • 可以加快数据的检索速度。 • 可以保证表数据的完整性与准确性 索引的缺点: • 索引需要占用物理空间。...唯一索引:(unique)顾名思义就是不可以出现相同的索引内容,但是可以为空(null)值 如何创建普通索引或者唯一索引?...(2)要使用外键约束表的引擎一定得是InnoDB引擎,MyISAM是不起作用的 (3)在干掉外键索引之前必须先把外键约束删除,才能删除索引 第7集 mysql核心知识之联合索引 简介:详细介绍联合索引...联合索引又称组合索引或者复合索引,是建立在俩列或者多列以上的索引。 怎么来创建联合索引?...• 表中经常查数据的字段,可以考虑建立索引。 • 想要保证表中数据的唯一性,可以考虑建立唯一索引。 • 想要保证俩张表中的数据的完整性跟准确性,可以考虑建立外键约束。

    1.6K10
    领券