原文引至:http://jvortex.blog.163.com/blog/static/16961890020122141010878/

我们知道,索引是用于加速数据库查询的数据库对象。原理就是减少查询的IO操作,从而达到加速的目的。本文我们主要对SQL Server,Oracle,DB2上的索引建立语句进行了总结,接下来就让我们一起来了解一下这部分内容。

索引的种类:

聚集索引:根据数据行的键值在表或视图中排序和存储这些数据行.

非聚集索引:具有独立于数据行的结构.

唯一索引:确保索引键不包含重复的值.

在SQL SERVER上建立的索引:

Create (NONCLUSTERED ) index ind_emp on emp(empno); 默认的就是建立非聚集索引。

exec sp_helpindex emp; 用于查看建立的索引,查询会自己使用可以用到的索引。

Create index ind_emp1 on emp(empno,ename); 可以在多个列上建立复合索引。

唯一非聚集索引:

Create unique index ind_sal on emp(sal);

重新生成索引:

Alter index ind_sal on emp rebuild;

Drop index ind_emp on emp; 删除索引。

Create CLUSTERED  index ind_emp on emp(empno); 建立聚集索引。

Create index ind_emp on emp(empno,ename);

注:相同列上可以多次索引。

唯一聚集索引:

Create unique clustered index ind_sal on f_emp(sal);

在DB2上建立索引:

非唯一索引:create index ind_empno on emp(empno);

Describe indexes for table emp; 查看所建立的索引。

唯一索引:create unique index ind_empno on emp(empno);

纯索引是DB2上的一种特殊的索引,(相当于ORACLE上的索引组织表):相对与一般索引。如下方式表中有俩个字段,其中字段1是唯一主键,字段2为数据,实际的查询中经常是select empno,ename from emp where empno=1122;CREATE UNIQUE INDEX IDX_ENAME ON emp (empno) INCLUDE(eNAME)。上述的语句的意思就是在empno上创建唯一索引,选择包含ename的数据,这些附加的数据将与键存储到一起。

Drop index ind_emp;

Create  index ind_emp on emp(empno) cluster;

Create index ind_emp on emp(empno,ename);

唯一聚集索引:

drop index ind_emp;-- 一个表上只能有一个聚集索引。

Create unique  index ind_sal on u_emp(sal) cluster;  建立聚集索引。

在ORACLE上建立索引:

SQL>  create index ind1 on emp(mgr); BTree索引。

SQL> create index ind2 on emp(deptno) reverse; 反向索引。

SQL> create index ind3 on emp(hiredate desc); 降序索引。

SQL> create bitmap index ind4 on emp(sal); 位图索引。

SQL>  create index ind5 on emp upper(job); 函数索引。

关于SQL Server,Oracle,DB2上的索引建立语句的总结就介绍到这里了,希望本次的介绍能够对您有所收获!

SQL Server,Oracle,DB2索引建立语句的对比的更多相关文章

  1. 【SQL Server DBA】日常巡检语句3:特定监控(阻塞、top语句、索引、作业)

    原文:[SQL Server DBA]日常巡检语句3:特定监控(阻塞.top语句.索引.作业) 1.查询阻塞信息.锁定了哪些资源 --1.查看阻塞信息 select spid,loginame,wai ...

  2. SQL Server中的索引

    1 SQL Server中的索引 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度.索引包含由表或视图中的一列或多列生成的键.这些键存储在一个结构(B 树)中,使 SQL Serve ...

  3. 转载: SQL Server中的索引

    http://www.blogjava.net/wangdetian168/archive/2011/03/07/347192.html 1 SQL Server中的索引 索引是与表或视图关联的磁盘上 ...

  4. Sql Server系列:索引基础

    1 索引概念 索引用于快速查找在某个列中某个特定值的行,不使用索引,数据库必须从第1条记录开始读完整个表,知道找出需要的行.表越大,查询数据所花费的时间越多.如果表中查询的列有索引,数据库能快速到达一 ...

  5. SQL Server基础之索引

     索引用于快速找出在某个列中有某一特定值的行,不使用索引,数据库必须从第一条记录开始读完整个表,直到找出相关的行.表越大,查询数据所花费的时间越多,如果表中查询的列有一个索引,数据库能快速到达一个位置 ...

  6. sql server中的索引详情

    什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音. ...

  7. SQL查询优化:详解SQL Server非聚集索引(转载)

    本文是转载,原文地址 http://tech.it168.com/a2011/1228/1295/000001295176.shtml 在SQL SERVER中,非聚集索引其实可以看作是一个含有聚集索 ...

  8. T-SQL查询高级--理解SQL SERVER中非聚集索引的覆盖,连接,交叉和过滤

      写在前面:这是第一篇T-SQL查询高级系列文章.但是T-SQL查询进阶系列还远远没有写完.这个主题放到高级我想是因为这个主题需要一些进阶的知识作为基础..如果文章中有错误的地方请不吝指正.本篇文章 ...

  9. SQL SERVER全面优化-------索引有多重要?

    想了好久索引的重要性应该怎么写?讲原理结构?我估计大部分人不愿意看,也不愿意花那么多时间仔细研究.光写应用?感觉不明白原理一样不会用.举例说明?情况太多也写不全....到底该怎么写呢? 随便写吧,想到 ...

随机推荐

  1. python - 类的字段

    一.静态字段:保存在类里面 1.创建静态字段: class Foo: CC = 123 # 字段(静态字段),保存在类里 def __init__(self): self.name = 'alex' ...

  2. HTML基础知识笔记(三)

    HTML下拉列表框 讲解: 1.value: <option value="House Blend">House Blend</option> 2.sele ...

  3. 使用区域组织 ASP.NET MVC 应用程序

    MVC 模式可将应用程序的模型(数据)逻辑与其呈现逻辑和业务逻辑分离. 在 ASP.NET MVC 中,这种逻辑分离还在项目结构中以物理方式实现,在该项目结构中,控制器和视图保存在使用命名约定定义关系 ...

  4. webform 验证控件

    验证: 一.非空验证  RequiredFieldValidator ErrorMessage - 验证出错后的提示信息 ControlToValidate - 要验证的控件的ID Display - ...

  5. ubuntu14.04中解压缩window中的zip文件,文件名乱码的解决方法

    在windows上压缩的文件,是以系统默认编码中文来压缩文件.由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码. 通过unzip行命令解压,指定字符 ...

  6. JSP和Servlet的区别。

    1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2.jsp更擅长 ...

  7. redis之lua脚本

    背景介绍 redis数据库提供了一些管理功能比如 流水线:打包发送多条命令,并在一个回复里面接收所有被执行命令的结果.事务:一次执行多条命令,被执行的命令要么就全部都被执行,要么就一个也不执行.并且事 ...

  8. css3实现各种渐变效果,比较适合做手机触屏版

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Ftp不能登陆的解决方法

    ftp登陆不了是很经常碰到的事,很多人常常是不加分析就发贴询问.老实说,这样既浪费自己时间,又浪费别人精力,还常常不能得到满意的回答.因此每一位希望从ftp站点发现资源的朋友都有必要学会分析登陆失败的 ...

  10. Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(一)

    在数据库有外键的时候,使用 select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能.本文通过一个简单的例子详解这两个函数的作用.虽然Q ...