问答文章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

建立索引百度清晰点
考虑使用 视图·
oracle 数据库如何建立索引 如何用索引?

创建索引语法: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...

Oracle创建索引SQL简单的例子,在表中的指定字段和如何使用索引呢?

创建索引:create index emp_id1(索引名) on emp(empno,ename,deptno) ;在创建索引时需要制定所在的表的列名,即你要在哪个或者哪些列上创建索引!使用索引:索引一般是在查询时由数据库优化器自动进行判断是否使用,就是说就算你在某个列上创建了索引,当你在查询这个表时数据库也不一定会使用索引,...

如何在ORACLE数据库的字段上建立索引

create index 索引名 on 表名(列名);例如:create index index_userid on tbl_detail(userid);

oracle数据库索引种类,分别什么情况下使用

Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。2.位图索引(bitmap index)位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。3.基于函数的...

如何合理创建Oracle数据库索引的3个要求

如在数据库中有一张表是用来保存用户信息的。其中有个字段身份证号码,这是一个唯一的字段。在数据库设计时,给这个字段创建了索引。但是当这个数据库投入使用之后,用户不怎么输入用户的身份证号码。而且平时也基本不按这个号码来进行查询。当记录月来月多时,这个身份证号码上的索引字段不但不能够改善...

...数据库中'索引'的用法,怎么创建,和在select语句中怎么使用...

建立数据库的目的是管理大量数据,而建立索引的目的就是提高数据检索效率,改善数据库工作性能,提高数据访问速度。当查询大量数据时不建索引带条件的查询会很慢的,索引的创建不同的数据库有不同的写法,oracle的写法是create index 索引名 on 表名();在select 语句中的where条件每个字段都要建索引.索引...

oracle 添加索引

1、oracle中索引说明:1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息。2)索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认...

Oracle中表建立联合索引后,其中的一个字段是否可以用来进行索引。

1.打开Navicat,如下图所示。2.右击oracle数据库,然后单击[打开连接]。3.单击[other],然后单击[index],显示oracle数据库中的所有索引。4.点击“新建索引”进入索引设计界面。5.设置类型、表类型、表名、列名等。6.在advanced选项卡中,设置表空间和记录等选项。7.点击“保存”,输入索引名,然后...

数据库索引有哪几种,怎样建立索引

使用USER_IND_COLUMNS查询某个TABLE中的相应字段索引建立情况 使用DBA_INDEXES/USER_INDEXES查询所有索引的具体设置情况。在Oracle中的索引可以分为:B树索引、位图索引、反向键索引、基于函数的索引、簇索引、全局索引、局部索引等,下面逐一讲解:一、B树索引:最常用的索引,各叶子节点中包括的数据有索引列...

Oracle创建索引SQL简单的例子,在表中的指定字段和如何使用索引呢?

create index index_name on table_name(column_name) ;\x0d\x0a只要你查询使用到建了索引的字段,一般都会用到索引。 \x0d\x0a \x0d\x0a--创建表\x0d\x0acreate table aaa\x0d\x0a(\x0d\x0a a number,\x0d\x0a b number\x0d\x0a);\x0d\x0a--创建索引\...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
在电脑上格式为MP3的音乐文件怎样能放到网上提供别人下载? 为什么说永远不要跟女人讲道理? 为什么不要去跟女人讲道理 为什么自动获取IP的时候老是获取错误的IP,而且都不能上,要等很久才可以... 我已经把我的歌曲传到分贝网了.我想把歌放在QQ空间里.怎样提取URL 我想把我弄的歌发到网上去,方便用URL地址发到论坛上去做连接,不知道... 中南民大在哪 怎么把自己电脑里的歌传到网上作为QQ空间背景音乐 武汉公交换乘 ...本地歌曲上传网站获取一个URL链接,作为QQ空间音乐?貌似网上的几种方... 天佑和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点 中国近代报刊产生的详细条件 报纸的起源是什么? 大众报刊产生的历史条件 报纸的历史由来 报纸是怎么产生的? 现代报纸在哪产生?产生背景为何? 有关报纸的来历 在世界上,谁先发明了报纸?
  • 焦点

最新推荐

猜你喜欢

热门推荐