原文引至: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. Windows下模拟Linux开发

    1.背景 Linux环境下开发是大势所趋,也是开发者必须掌握的技能.然windows系统已深入人心,实在不想放弃windows下的成熟应用,因此可以在Windows上模拟一个Linux系统.这样就满足 ...

  2. Dynamics CRM 开发模板使用手册(插件开发)

    CRM开发手册 本手册介绍在Visual Studio 2015 + Dynamics CRM Developer Extensions模板开发环境下,插件和JS脚本的开发.部署与调试过程. 手册中提 ...

  3. 简单JS多级下拉框无刷新

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

  4. js+图片实现图片flash效果

    var pic_width=685; //图片宽度 var pic_height=225; // 图片高度 var button_pos=4; //按扭位置 1左 2右 3上 4下 var stop_ ...

  5. oracle 11g 64位安装32位客户端和PL/SQL

    转自:http://www.360doc.com/content/14/0602/10/4903283_382949382.shtml   这个你需要安装一个32位的oracle客户端才能使用plsq ...

  6. vi 快捷键【转】【weber整理必出精品】

    光标的移动 命令 光标移动 h或^h 向左移一个字符 j或^j或^n 向下移一行 k或^p 向上移一行 l或空格 向右移一个字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一个字的开头 ...

  7. poj1915 BFS

    D - 广搜 基础 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:30000KB     64bi ...

  8. 修改mysql错误提示语言的方法

    百度真的太恶心太无能了. 装了个mysql5,结果发现错误提示语言是法语. 然后我就想改成把错误提示语改成英语. 然后我使用各种关键字和方法百度了一个上午,居然全TM是告诉我怎么处理mysql中文乱码 ...

  9. 查看Linux系统相关版本信息

    1.“uname -a” 查看电脑以及操作系统的相关信息 2.“cat /proc/version” 查看运行的内核版本 3."cat /etc/redhat-release",  ...

  10. django-filter 使用Filter来筛选你的数据

    django-filter Django-filter is a generic, reusable application to alleviate writing some of the more ...