问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle 数据库如何建立索引 如何用索引?

发布网友 发布时间:2022-04-21 21:41

我来回答

9个回答

热心网友 时间:2022-04-30 01:33

创建索引语法:

CREATE [UNIQUE] | [BITMAP] INDEX index_name

--unique表示唯一索引

ON table_name([column1 [ASC|DESC],column2

--bitmap,创建位图索引

[ASC|DESC],…] | [express])[TABLESPACE tablespace_name][PCTFREE n1]

--指定索引在数据块中空闲空间

[STORAGE (INITIAL n2)][NOLOGGING]

--表示创建和重建索引时允许对表做DML操作,默认情况下不应该使用

[NOLINE][NOSORT];

--表示创建索引时不进行排序,默认不适用,如果数据已经是按照该索引顺序排列的可以使用

扩展资料:

1、如果有两个或者以上的索引,其中有一个唯一性索引,而其他是非唯一,这种情况下oracle将使用唯一性索引而完全忽略非唯一性索引

2、至少要包含组合索引的第一列(即如果索引建立在多个列上,只有它的第一个列被where子句引用时,优化器才会使用该索引)

3、小表不要简历索引

4、对于基数大的列适合建立B树索引,对于基数小的列适合简历位图索引

5、列中有很多空值,但经常查询该列上非空记录时应该建立索引

6、经常进行连接查询的列应该创建索引

7、使用create index时要将最常查询的列放在最前面

8、LONG(可变长字符串数据,最长2G)和LONG RAW(可变长二进制数据,最长2G)列不能创建索引

9、*表中索引的数量(创建索引耗费时间,并且随数据量的增大而增大;索引会占用物理空间;当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度)

热心网友 时间:2022-04-30 02:51

上面这张图,我画得比较粗糙,但是基本原理已经展现了!


下面再写几种常见索引的创建吧:

(1) create index 索引名 on 表(字段名);     //创建B树索引,一般用的OLTP中

(2) create bitmap index 索引名 on 表(字段名);   //创建位图索引,一般用的OLAP中

(3) create index 索引名 on 表名 (substr(字段,1,10))  

//创建函数索引,有些时候呢,咱们的搜索条件要加上函数,这种情况呢,普通索引就不能解发了,就要创建函数索引

(4) create index 索引名 on 表名 (字段1,字段2......字段n);

//复合索引,当条件中,经常去查询多个条件时,可以把多个条件放在一个索引中

(5)  create index 索引名 on 表(字段 desc);   //排序后创建索引

(6) create index 索引名 on 表名 (字段) reverse; //反转索引,消除热点块

(7) create index 索引名 on 表名(字段) local;   //创建分区本地索引

(8) create index 索引名 on 表名 (字段) global;   //创建分区全局索引




附加维护索引基本操作手段:


查看指定表上现有索引详情


select t.INDEX_NAME,t.COLUMN_NAME,i.index_type 

 from user_ind_columns t,user_indexes i where t.index_name = i.index_name and  t.table_name='表名';


查看索引及列

select t.index_name,t.status from user_indexes t where t.INDEX_NAME in ();



查看指定分区表的所有索引


select t.INDEX_NAME,t.COLUMN_NAME,i.index_type from 

user_ind_columns t,user_indexes i where t.index_name = i.index_name and  

t.table_name='表名';


查询分区索引状态

 

select PARTITION_NAME,STATUS from DBA_IND_PARTITIONS where INDEX_NAME='';



valid:当前索引有效

N/A :分区索引 有效

unusable:索引失效



重新建立索引

ALTER INDEX 用户.索引 REBUILD;



兄弟,希望可以帮到你

热心网友 时间:2022-04-30 04:26

方法如下:
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

热心网友 时间:2022-04-30 06:17

索引创建语句
create index 索引名 on 表名(字段1,字段2) 限定条件(如唯一性等)
索引使用方法:不用特意使用,Oracle会自动处理

语句优化:
建议你按如下方法优化:
1.评估你语句中能够影响的数据范围,数据范围缩小越快的,放在越后面
2.语句中尽量少用like,如果非用不可,也尽量减少通配符的使用
像你的AND FAQNAME like '%' ||:faqName || '%',有索引等于没有一样,oracle还是要全部数据轮询一遍。
建议换为 and (faqname like '%xxx‘ or faqname like 'xxx%'),这样可能能快一些。

热心网友 时间:2022-04-30 08:25

create index index_name on T_KBS_FAQ (你想添加为索引的列)
一般情况下一张表的主键就可以了,看你的查询条件,我建议你把 type 设为索引。
另外就是优化,你可以把查询条件换下位置,如下: where
<[AND FAQID = :faqId]>
<[AND FAQNAME like '%' ||:faqName || '%']>
<[AND CREATOR = :creator]>
<[AND SUPERCODE=:superCode]>
<[AND TOQUESTION=:toQuestion]>
<%:toKngType%>
TYPE = '1'
你试一下吧,应该会有所提高的

热心网友 时间:2022-04-30 10:50

下面举个例子:

-- Create table
create table BS_COUNTY
(
COUNTY_ID NUMBER(14) not null,
CITY_ID NUMBER(14),
COUNTY_CODE VARCHAR2(20),
COUNTY_NAME VARCHAR2(50),
COUNTY_SHORTNAME VARCHAR2(50),
COUNTY_AREACODE VARCHAR2(50)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table BS_COUNTY
add constraint PK_BS_COUNTY primary key (COUNTY_ID)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);

----序列
drop sequence SEQ_TEST

 create sequence SEQ_TEST
  minvalue 1 --最小值
  nomaxvalue --不设置最大值
  start with 1 --从1开始计数
  increment by 1 --每次加1个
  nocycle --一直累加,不循环
  nocache;
----触发器
create or replace trigger position_trigger
before insert on bs_county
for each row
begin
select seq_test.nextval into:new.county_id from al;
end;

热心网友 时间:2022-04-30 13:31

你百度一下sql语句优化方法,有很多注意事项的,不是一句两句能说清楚。
例如:执行顺序从下往上,模糊查询不走索引等。

热心网友 时间:2022-04-30 16:29

create index 索引名 on 表名 (索引列组)
上面的select .. from xx 已经是最简单的SQL语句啦...
要么可以从你的后台代码入手尽量减少数据库的访问量把

热心网友 时间:2022-04-30 19:44

建立索引百度清晰点
考虑使用 视图·
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
洛阳火车站到洛阳关林的钢厂怎么坐公车去?钢厂目前是否分为三个小... 李永昌的《桃花运》 歌词 失眠特效药有哪些 失眠有什么快速特效药 长期失眠用什么药最好?失眠治疗特效药有哪些 失眠怎么办办,有没有什么特效药 本人严重失眠,有特效药吗? 长期焦虑失眠怎么办?有没有好的特效药? 离婚了,小孩抚养费对方拖着不给,玩失踪,怎么办? 小孩抚养费前夫每月都拖着不给怎么解决 天佑和yy官方怎么了 oracle数据库管理系统中索引的作用是什么 oracle 多字段索引和单字段索引 请教:oracle中索引应用 yy主播签约工会的实际意义是什么?求详细解说! oracle表加索引有什么用? 请举一个例子说明谢谢 yy工会是什么意思 oracle 创建索引有什么作用 YY直播哪个主 播的直 播 间比较热闹? oracle中索引有什么用啊,请举一例子说明 YY是哪家公司开发的?又是哪家公司运营的? Oracle索引的概念及作用 yy李先生年度盛典怎么不开直播了 YY语音的发展历史 yy年度盛典今年在上海东方体育中心举办,请问游客... yy年度盛典2014主持人是谁 YY直播怎样助力《中国新歌声》 开启新模式? YY年度盛典一般每年什么时间开始? yy年度盛典怎么看直播的 今年yy年度盛典各组冠军是谁 YY主播排前几的一个月可以赚多少钱? oracle数据库索引种类,分别什么情况下使用 Oracle数据库索引有什么背景、现状和意义 oracle数据库几万条数据索引效果明显吗 oracle 全局索引和局部索引的区别和作用 再问一个关于oracle表索引是不是越多越好的问题,... oracle中什么情况下用索引 Oracle索引的索引使用原则 oracle索引与外键的作用有什么区别 oracle的索引有几种 oracle中的索引经常用么? 近代报刊出现的历史条件6点 中国近代报刊产生的详细条件 报纸的起源是什么? 大众报刊产生的历史条件 报纸的历史由来 报纸是怎么产生的? 现代报纸在哪产生?产生背景为何? 有关报纸的来历 在世界上,谁先发明了报纸?