精华内容
下载资源
问答
  • Oracle下查看索引的语句
    万次阅读
    2021-12-13 18:30:21

    1. 查询一张表里面索引 

    select * from user_indexes where table_name=upper('表名'); 

    2. 查询被索引字段 

    select * from user_ind_columns where index_name=('索引名称'); 

    3. 给某一字段创建索引 

    create index 索引名 on 表名(字段);
    更多相关内容
  • Select *FROM dba_ind_columnsWhere index_owner='TEST73' AND table_name=upper('tx_log_t')可以查询数据库的表上面的索引字段。参考博文:Question: I added an index hint in my query, but the hint is being ...

    Select *

    FROM dba_ind_columns

    Where index_owner='TEST73' AND table_name=upper('tx_log_t')

    可以查询数据库的表上面的索引字段。

    参考博文:

    Question:  I added an index hint in my query, but the hint is being ignored.  What is the correct syntax for an index hint and how do I force the index hint to be used in my query?

    Answer:Oracle index hint syntax is tricky because of the index hint syntax is incorrect it is treated as a comment and not implemented.  Here is an example of the correct syntax for an index hint: select /*+ index(customer cust_primary_key_idx) */ * from customer; Also note that of you alias the table, you must use the alias in the index hint: select /*+ index(c cust_primary_key_idx) */ * from customer c; Also, be vary of issuing hints that conflict with an index hint.  In this index hint example, the full hint is not consistent with an index hint: select /*+ full(c) index(c cust_primary_key_idx) */ * from customer c;

    展开全文
  • Oracle 查询表的索引包含的字段

    千次阅读 2020-07-30 15:40:00
    select a.uniqueness 索引类型,b.index_name 索引名称,b.column_name 字段 from user_indexes a ,user_ind_columns b where a.table_name=b.table_name and a.index_name = b.index_name and ...

    字段保留在 dba_ind_columns视图中

    select a.uniqueness 索引类型,b.index_name 索引名称,b.column_name 字段 from user_indexes a ,user_ind_columns b
    where a.table_name=b.table_name and a.index_name = b.index_name 
    and a.table_owner=upper('SAPSR3') and  a.table_name='ANLU' order by a.uniqueness desc;
    

      

    展开全文
  • 最近遇到一个Oracle SQL语句的性能问题,修改功能之前的运行时间平均为0.3s,可是添加新功能后,时间达到了4~5s。虽然几张表的数据量都比较大(都在百万级以上),但是也都有正确创建索引,不知道到底慢在了哪里,...
  • 如果分别按纳税人识别号,税务机关代码,月份3个字段查询,每个字段在该表中的可选性或约束性都不强,如一个纳税人识别号有很多纳税记录,一个税务机关代码和同一月份记录就更多了,所以3个字段合起来,"某个纳税人识别号+...

    转:

    首先,在大多数情况下,复合索引比单字段索引好.以税务系统的SB_ZSXX(申报类_征收信息表)为例,该表为税务系统最大的交易表.如果分别按纳税人识别号,税务机关代码,月份3个字段查询,每个字段在该表中的可选性或约束性都不强,如一个纳税人识别号有很多纳税记录,一个税务机关代码和同一月份记录就更多了,所以3个字段合起来,"某个纳税人识别号+某个税务机关代码+某月"的记录就少多了.因此复合索引比单字段索引的效率高多了.很多系统就是靠新建一些合适的复合索引,使效率大幅度提高.

    但是,复合索引比单字段索引的内容原理复杂,复合索引有两个重要原则需要把握: 前缀性和可选性.如果糊里糊涂的滥用复合索引,效果适得其反.

    以例子来说明,例子如下:

    假设在员工表(emp)的(ename,job,mgr)3个字段上建了一个索引,例如索引名叫idx_1.3个字段分别为员工姓名,工作和所属经理号.然后,写如下一个查询语句,并不断进行查询条件和次序的排列组合,例如:

    Sql代码

    select * from emp where ename = 'a' and job = 'b' and mgr = 3 ;

    select * from emp where job = 'b' and ename = 'a' and mgr = 3 ;

    select * from emp where mgr = 3 and ename = 'a' and job = 'b' ;

    select * from emp where mgr = 3 and job = 'b' and ename = 'a' ;

    select * from emp where job = 'b' and mgr = 3 and ename = 'a' ;

    .....

    回答问题:在各种条件组合情况下,刚才建的索引(idx_1) 是用还是不用?也就是说对emp表的访问是全表扫描还是按索引(idx_1)访问?

    答案是 :  上述语句中只要有ename='a'条件,就能用上索引(ind_1),而不是全表扫描(这就是复合索引的前缀性).

    复合索引的原理和设计建议

    1.复合索引的第一个建议: 前缀性(Prefixing)

    先从例子说起.假设省,市,县分别用3个字段存储数据,并建立了一个复合索引.请记住: oracle索引,包括复合索引都是排序的.例如该复合索引在数据库索引树上是这样排序的,即先按省排序,再按市排序,最后按县排序:

    省  市  县

    北京  北京  东城

    北京  北京  西城

    北京  北京  海淀

    ... ...

    黑龙江  哈尔滨  道里区

    黑龙江  哈尔滨  道外区

    黑龙江  哈尔滨  香坊区

    ... ...

    黑龙江  齐齐哈尔 龙沙区

    黑龙江  齐齐哈尔 铁锋区

    黑龙江  齐齐哈尔 富拉尔基区

    ... ...

    湖南  长沙  芙蓉区

    湖南  长沙  岳路区

    湖南  长沙  开福区

    ... ...

    oracle不是智能的,它只会按图索骥,该索引结构是先按省排序的,所以只要给出省名,就能使用索引.如果没有省名,oracle就成了无头苍蝇,乱找一气,变成了全表扫描了.例如,如果你只给一个县条件,如"开福区",oracle肯定不会使用该索引了.

    2.关于skip scan index

    有时候复合索引第一个字段没有在语句中出现,oralce也会使用该索引.对,这叫oralce的skip scan index功能,oracle 9i才提供的.

    skip scan index功能适合于什么情况呢?如果oracle发现第一个字段值很少的情况下,例如假设emp表有gender(性别)字段,并且建立了(gender,ename,job,mgr)复合索引.因为性别只有男和女,所以为了提高索引的利用率,oracle可将这个索引拆成('男',ename,job,mgr),('女',ename,job,mgr)两个复合索引.这样即便没有gender条件,oracle也会分别到男索引树和女索引树进行搜索.

    但是,(gender,ename,job,mgr)索引本身设计是不合理的,它违背了复合索引的第二个原理,可选性(Selectivity),见下面描述.

    3.复合索引的第二个原理:可选性(Selectivity)

    您可能会问:复合索引中如何排序字段顺序?这时就要用到复合索引的第二个原理:可选性(Selectivity)规则.oracle建议按字段可选性高低进行排序,即字段值多的排在前面.例如,(ename,job,mgr,gender),(县,市,省).这是因为,字段值多,可选性越强,定位的记录越少,查询效率越高.例如,全国可能只有一个"开福区",而湖南省的记录则太多了.

    4.复合索引设计建议

    (1).分析SQL语句中的约束条件字段.

    (2).如果约束条件字段比较固定,则优先考虑创建针对多字段的普通B*树复合索引.如果同时涉及到月份,纳税人识别号,税务机关代码3个字段的条件,则可以考虑建立一个复合索引.

    (3).如果单字段是主键或唯一字段,或者可选性非常高的字段,尽管约束条件比较固定,也不一定要建成复合索引,可建成单字段索引,降低复合索引开销.

    (4).在复合索引设计中,需首先考虑复合索引的第一个设计原理:复合索引的前缀性.即在SQL语句中,只有将复合索引的第一个字段作为约束条件,该复合索引才会启用.

    (5).在复合索引设计中,其实应考虑复合索引的可选性.即按可选性高低,进行复合索引字段的排序.例如上述索引的字段排序顺序为:纳税人识别号,税务机关代码,月份.

    (6).如果条件涉及的字段不固定,组合比较灵活,则分别为月份,税务机关代码和纳税人识别号3个字段建立索引.

    (7).如果是多表连接SQL语句,注意是否可以在被驱动表(drived table)的连接字段与该表的其他约束条件字段上创建复合索引.

    (8).通过多种SQL分析工具,分析执行计划以量化形式评估效果.

    ---------------------

    作者:lovely可爱欧辰

    来源:CSDN

    原文:https://blog.csdn.net/liqfyiyi/article/details/13290201

    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • oracle数据库中字段为空时如何建立索引 直接在字段有空值的列上建立一个函数索引 这里我们用到 decode函数 我们可以建立一个函数索引 DECODE(字段名,NULL,‘0’,NULL) 建立好函数索引之后 我们想要用上此索引 查询...
  • oracle查询索引(oracle查看表索引)

    千次阅读 2021-04-30 10:02:20
    oracle查询索引(oracle查看表索引)2020-07-24 11:01:26共10个回答选中表右键View然后查看index通过PL/SQL可以直接查看某表是否建索引,通过SQL查询selectstatus,T.*fromuser_indexesTwheretable_name='表名'oracle...
  • 当where子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引。通常情况下,如果在WHERE子句中不使用诸如UPPER、REPLACE或SUBSTRD等函数,就不能对指定列建立特定的条件...
  • 当where子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引。 通常情况下,如果在WHERE子句中不使用诸如UPPER、REPLACE 或SUBSTRD等函数,就不能对指定列建立特定的...
  • oracle查询索引、唯一约束、字段

    万次阅读 2022-01-19 15:10:19
    查询表的索引情况 select t.Index_Name,t.table_name,t.column_name,i.tablespace_name,i.uniqueness from user_ind_columns t,user_indexes i where t.index_name=i.index_name and t.table_name=i.table_name ...
  • Oracle索引建立原则  · 确定针对该表的操作是大量的查询操作还是大量的增删改操作。  · 尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。  · where语句中...
  • Oracle 查询索引

    千次阅读 2020-07-31 10:13:34
    Oracle下查看索引的语句 1. 查询一张表里面索引 ...2. 查询索引字段 select * from user_ind_columns where index_name=('in_bills'); 3. 给某一字段创建索引 create index in_bills on...
  • oracle 全文检索 oracle全文索引 多列字段检索,匹配多列字段搜索功能。
  • Oracle多个字段联合索引保证唯一性

    千次阅读 2021-09-26 16:00:30
    今天在开发过程中遇到了需要两个字段联合保证唯一性,所以查阅了一些资料和博客,梳理一下以便之后用到!!! 首先,你要搞明白什么是唯一索引和唯一约束,其次它们之间的区别是什么? 前提 二者的定义 唯一...
  • NULL 博文链接:https://hackpro.iteye.com/blog/1845366
  • 一般而言,数据库查询慢首先是查看sql写法有无问题,然后分析查询的时候是否充分运用到索引。常规的sql优化也就是这样一个大体的流程; 但是,有意外情况,就是一条老的sql,一直用的没问题,偶然出现了查询慢的...
  • 在navicat(mysql版)里,我可以给表中的字段加索引,索引的作用就是,当我修改索引字段值的时候,引用索引的字段值会自动更新.那么问题来了,plSql里有这种功能吗?或者说Oracle的管理工具里面有没有类似的功能? 举个例子来...
  • Oracle数据库操作中,为什么有时一个表的某个字段明明有索引,当观察一些语的执行计划确不走索引呢?如何解决呢?本文我们主要介绍这部分内容,接下来让我们一起来了解一下。  不走索引大体有以下几个原因: ...
  • Oracle查询sql中即使某个字段加入索引,在查询字段 is null的情况下,也会索引失效。本文目的是如何在判断字段为空的情况下也使用索引。因实操环境为公司封闭开发环境,无法展示执行计划,具体的需要大家实际操作...
  • ORACLE数据库给字段索引

    千次阅读 2020-05-06 18:39:48
    --查看索引 select * from all_indexes where table_name = '表名(大写)'; --查看索引和列名 select* from all_ind_columns where table_name = '表名(大写)'; --增加索引 create index I_IC_HANDRESERVE_...
  • oracle索引字段可以设置为空?

    千次阅读 2017-03-08 15:39:13
    答案是肯定的; 可以建,就是有点不合理; 索引是告诉你有什么,并不会告诉你没有什么; 如果少数几条null无所谓,如果很多null/很多重复值建索引的意义就打折扣了
  • select S.index_name from user_indexes s where s.table_name='TEACHERNUMBERSET' SELECT s.column_name FROM user_ind_columns S WHERE S.index_name='IDX_TEACHNUM' drop index IDX_TEACHNUM;...
  • 1、索引是有序的。当一个空值进入索引时,无法确定其在索引中的位置。 2、空值与空值不相等。当检索一个空值时,由于空值与空值并不相等,所以,无法在索引中找到期望的空值索引。 以上讨论限于通常的B树索引类型,...
  • Oracle 查询重复索引

    千次阅读 2021-05-07 08:50:48
    ORACLE 查询不走索引的原因分析,解决办法通过强制索引或动态执行SQL语句提高查询速度 (一)索引失效的原因分析: 或者单独的>,<,(有时会用到,有时不会) 有时间范围查询:oracle 时间条件值范围越大就不走索引 like ...
  • 今天要查询clob类型字段为空的记录。颇费一番周折才找到一个方法,记录以供参考。select s.testcaseid from b_t_testcasestepinfo s where pjid = '2013WARD120006'and actorphase = 1and not (s.stepid = 1 and s....
  • date字段上建立了索引,但是sql语句中使用的where条件如下:WHERE to_char(start_time,’yyyy-mm-hh hh24:mi:ss’) > ‘2009-08-01 00:00:00′ AND to_char(start_time,’yyyy-mm-hh hh24:mi:ss’) < '2009-08...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,681
精华内容 48,672
关键字:

oracle查询索引字段

友情链接: jsfTreerar.rar