原文引至: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. jQuery插件开发 格式与解析2

    最近忙里偷闲玩一下js插件,经过自身的练习,感觉js插件还是挺好玩的.特此作如下笔记,给自己留个印象.例子形如: (1)类插件:classTool.js Code: (function($,expor ...

  2. 用户控件(.ascx)与<ul><li>以及<a>布局之小结

    用户控件(.ascx)与<ul><li>以及<a>布局 小结 一.用户控件(.ascx) 1.aspx是浏览器直接访问的页面,而ascx是用户控件,一般是用来重用. ...

  3. javascript正則表達式 &quot;\b&quot;问题

    preface 昨晚在看<javascript权威指南>后.看见作者自己封装一个兼容全部浏览器的山寨HTML5新API classLIst类.自己想了想认为自己也要去玩一下.可是能力还是有 ...

  4. [RxJS] Reactive Programming - Clear data while loading with RxJS startWith()

    In currently implemention, there is one problem, when the page load and click refresh button, the us ...

  5. Linux下找不到动态链接库

    1.生成静态库 生成静态库使用ar工具,其实ar是archive的意思 $ar cqs libhello.a hello.o 2.生成动态库 用gcc来完成,由于可能存在多个版本,因此通常指定版本号: ...

  6. Android Notification使用及取消

    //发送通知 NotificationManager manger = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE ...

  7. css_day6

  8. Asp.net中具体的日期格式化用法

    1.绑定时格式化日期方法: <ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-M ...

  9. ASP.NET 动态编译、预编译和 WebDeployment 项目(转)

    概述 在 Web 服务器上,既可以部署源文件,也可以部署编译后程序集. 若部署源文件,则当用户访问时,Web 应用程序会被动态编译,并缓存该程序集,以便下次访问. 否则,若部署程序集,Web 应用程序 ...

  10. 变量a的定义

    1.一个整型数 int a; 2.一个指向整型数的指针 int *a; 3.一个指向指针的指针,它指向的指针是指向一个整形数 int **a; 4.一个有10个整型数的数组 ]; 5.一个有10个指针 ...