oracle查看表索引?

时间:2024-11-12 20:07 人气:0 编辑:招聘街

一、oracle查看表索引?

select * from user_ind_columns where table_name = upper('agent_master') // agent_master为表名

二、oracle索引问题,删除再重建索引与索引分析?

1.应该是可行的,具体会不会节省时间试一下就可以了。

2.大概每个月存储四五十万的数据,里面只保存最新四个月的数据 每次create这7个索引用时都特别长,大概需要三四个小时; 200万的数据,重建索引花费的时间太长了;很奇怪。

3.估计之前的先drop掉索引,然后插入数据完毕后create索引也是为了避免插入数据时,索引对插入效率的影响。

三、oracle怎么把索引改成唯一索引?

提供一种直观的方法:(前提是有索引。

如果没有索引可以直接新建唯一索引)

1、使用plsql工具连接数据库,输入表名

2、将光标移动到表名上,鼠标右键选择编辑(edit)

3、在弹出来的窗口中切换到索引页签(index)

4、在类型(type)那一栏选unique,点击窗口左下角的应用(apply)保存即可

四、oracle索引效率哪个最高?

索引。当然还是效率更高一些了。

五、oracle查看索引是否约束?

查看约束

select * from user_constraints where table_name='';

六、oracle时间,建立什么索引?

Oracle中我们经常使用Date字段类型记录日期和时间,有的时候还在这个字段上建立索引。

然后通过Java程序访问数据库的时候,我们很自然的类似这样使用:select * from table where endDate>? and endDate<?,然后通过PreparedStatement预编译,再通过setTimestamp传入由java.util.Date转成java.sql.Timestamp的参数(因为java.sql.Date只有日期,java.sql.Time只有时间,所以我们只能用java.sql.Timestamp类型)。我们会认为这样应该走索引区间扫描,效率应该是非常高的。

而事实上,Oracle会把sql解释成如下这样来执行:select * from table where TO_TIMESTAMP(endDate)>? and TO_TIMESTAMP(endDate)<?; 为什么?因为传入的参数是timestamp类型,Oracle从9.2版本以后支持这种类型,所以Oracle做了这样的转换,结果就是这个SQL执行变成了全表扫描。我们做的试验,加了一个index hint,强制走时间索引字段,结果效率也不高,sql执行变成了全索引扫描,和全表扫描没多大区别。结果效率还是低。

不光直接使用JDBC会是这样,Spring,iBatis在处理传入参数是java.util.Date类型的时候,都会使用setTimestamp设定参数,所以都需要注意。

七、ORACLE的表索引失效?

这种现象多出现在分区表,之后创建和删除分区的时候引起全局索引失效,这个一般的解决方法是重现创建索引,还有一种是把全局索引创建成local的就可以了。这个您可以上网查查全局索引和local索引的区别。

八、oracle单列索引怎么修改成多列索引?

不能直接修改,只能先drop单列的index.再创建多列的复合索引。

九、oracle怎么,设置唯一索引?

有两种方法: (1)视图dba_constraints (2)视图dba_indexes 设置一个字段,为主键,这个主键就是不重复的,主键的内容可以使用oracle的sequence。

方法一、 视图dba_constraints,这张表中有所有的表的约束,拥有唯一约束的字段就拥有唯一索引,其中Constraint_type的值应该是U,不过值是R的表示主键,这个也存在唯一索引,不知道你要不要找这种,所以个人认为在这张表内能找到。方法二: 视图dba_indexes,这里的index_type应该也能查到唯一索引。

十、oracle多级分区索引怎么创建?

方法如下:

Oracle中建立索引,会提高查询速度: create index 索引名 on 表名(列名);

例如:

create index index_userid on tbl_detail(userid);

如何找数据库表的主键字段的名称?

SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='AAA'; select * from dba_cons_columns where CONSTRAINT_NAME='SYS_AAA';

Oracle 在创建主键(可以不加constraint SYS_AAA),会为库表自动创建索引,

索引的列为主键列。 并且当库表某些列名或者库表名改变时候,

Oracle自动创建的索引SYS_AAA,中的索引列也会自动更新(类似于视图),并且SYS_AAA会与名字更改后的库表还是保持索引关系。 关键系统库表: desc dba_constraints desc dba_cons_columns

desc dba_indexes desc dba_ind_columns desc DBA_TAB_COLUMNS

例子1:更改库表的列名

ALTER TABLE AAA RENAME COLUMN ID TO AAA_ID; create table AAA ( ID NUMBER(8), NAME CHAR(20),

constraint SYS_AAA primary key(ID) );

//查找约束名字

select c.CONSTRAINT_NAME,c.table_name,cc.COLUMN_NAME from user_constraints c, user_cons_columns cc

where c.constraint_name=cc.constraint_name and c.table_name ='AAA' AND C.CONSTRAINT_TYPE='P';

CONSTRAINT_NAME TABLE_NAME COLUMN_NAME

SYS_AAA AAA ID

//查找索引

select index_name,index_type,uniqueness from user_indexes where table_name='AAA'; INDEX_NAME INDEX_TYPE UNIQUENES

相关资讯
热门频道

Copyright © 2024 招聘街 滇ICP备2024020316号-38