最近在做SQL Server数据库性能优化,因此复习下一索引、视图、存储过程等知识点。本篇为索引篇,知识整理来源于互联网。

索引加快检索表中数据的方法,它对数据表中一个或者多个列的值进行结构排序,是数据库中一个非常有用的对象。

索引的创建

#1使用企业管理器创建

启动企业管理器--选择数据库------选在要创建索引的表------在表的下拉菜单中选择索引---在快捷菜单中选择新建索引--

在新建索引对话框中单击“添加”按钮,弹出“从列表中选择列”,在该对话框中选择要添加到索引键的表列

单击确定返回新建索引对话框,再点击确定完成索引的创建。

#2使用T-sql语句创建索引。

create index语句为给定表或视图创建一个改变物理顺序的聚集索引,也可以创建一个具有查询功能的非聚集索引。语法格式如下:

create [unique] [clustered] [nonclustered] index index_name

on {tabel/view} (column[dese/asc][....n])

注: [unique] [clustered] [nonclustered]表示要创建索引的类型,以此为唯一索引,聚集索引,和非聚集索引,当省略unique选项时,建立非唯一索引.当省略clustered,nonclustered选项时.建立聚集索引,省略nonclustered选项时,建立唯一聚集索引。

使用索引虽然可以提高系统的性能,增强数据检索速度,但它需要占用大量的物理存储空间,建立索引的一般原则如下:

(1)只有表的所有者可以在同一表中创建索引。

(2)每个表中只能创建一个聚集索引。

(3)每个表中最多可以创建249个非聚集索引。

(4)在经常查询的字段上建立索引。

(5)定义text,image,bit数据类型的列上不要建立索引。

(6)在外间上可以建立索引。

(7)在主键列上一定要建立索引。

(8)在那些重复的值比较多,查询较少的列上不要建立索引。

查看索引

#1使用企业管理器查看索引,步骤如下:

(1)启动SQL Server management Studio并连接到SQLServer 2008数据库

(2)选择指定的数据库,|展开要查看索引的表。

(3)右击该表,在弹出快捷菜单中选择‘设计’命令

(4)弹出‘表结构设计’对话框,右击该对话框,在弹出的快捷菜单中选择‘索引/键’命令

(5)打开“索引/键”对话框,在对话框左侧选中某个索引,在对话框的右侧就可以查看此索引的信息,并可以修改相关信息。

#2使用系统存储过程查看索引,语法格式如下:

use database_name

EXEC Sp_helpindex table_name

#3利用系统表查看索引信息

查看数据库中指定表的索引信息,可以利用该数据库中的系统表sysobjects和sysindexes进行查询,系统表sysobjects可以根据表明查找到索引表的ID号,再利用系统表sysindexes根据ID号查找到索引文件的相关信息。

索引的修改

#1使用企业管理器修改索引。

#2使用T-SQL语句更改索引名称,语法格式如下:

use database_name

exec sp_rename ‘table_name.old_name’ ‘new_name’

注:要对索引进行重命名时,需要修改的索引名格式必须为“表名.索引名”

索引的删除

#1使用企业管理器删除索引

#2使用T-SQL语句删除索引,语法格式如下:

drop Index table_name.index_name,.....n

注:drop index语句不能删除通过PRINARY KEY和UNIQUE约束创建的索引,若要删除该约束相应的索引,请使用带有DROP CONSTRAINT子句的ALTER TABLE.

Sql Server数据库性能优化之索引的更多相关文章

  1. SQL Server数据库性能优化之索引篇【转】

    http://www.blogjava.net/allen-zhe/archive/2010/07/23/326966.html 性能优化之索引篇 近期项目需要, 做了一段时间的SQL Server性 ...

  2. SQL Server数据库性能优化之SQL语句篇【转】

    SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...

  3. SQL Server查询性能优化——覆盖索引(二)

    在SQL Server 查询性能优化——覆盖索引(一)中讲了覆盖索引的一些理论. 本文将具体讲一下使用不同索引对查询性能的影响. 下面通过实例,来查看不同的索引结构,如聚集索引.非聚集索引.组合索引等 ...

  4. SQL Server查询性能优化——创建索引原则(一)

    索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分页中,这样访问数据时只要访问少数索引的分页 就可以.但是索引对于提高查询性能也不是万能的,也不是建立越多的索 ...

  5. SQL Server 查询性能优化——创建索引原则(一)(转载)

    索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分页中,这样访问数据时只要访问少数索引的分页就可以.但是索引对于提高查询性能也不是万能的,也不是建立越多的索引 ...

  6. SQL Server 查询性能优化——创建索引原则(一)

    索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分页中,这样访问数据时只要访问少数索引的分页就可以.但是索引对于提高查询性能也不是万能的,也不是建立越多的索引 ...

  7. SQL Server 查询性能优化——创建索引原则

    索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分页中,这样访问数据时只要访问少数索引的分页就可以.但是索引对于提高查询性能也不是万能的,也不是建立越多的索引 ...

  8. SQL Server数据库性能优化(二)之 索引优化

    参考文献 http://isky000.com/database/mysql-performance-tuning-index 原文作者是做mysql 优化的     但是我觉得  在索引方面    ...

  9. SQL Server数据库性能优化技巧

    查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引: 2.I/O吞吐量小,形成了瓶颈效应: 3.内存不足: 4.网络速度慢: 5.查询出的数据量过大: 6.锁或者死锁: 7.返回了不必 ...

随机推荐

  1. SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 邮件作为一种非常便利的预警实现方式,在及时性和易用性 ...

  2. iOS 转载一篇日期处理文章

    感谢原作者的辛勤付出,由于时间太久,记不住原来的地址了,如果你是原作者,请联系我,我会添加原文连接,谢谢! iOS处理时间的类主要包括NSDate,NSDateFormatter, NSDateCom ...

  3. kafka介绍和集群环境搭建

    kafka概念:     kafka是一个高吞吐量的流式分布式消息系统,用来处理活动流数据.比方网页的訪问量pm,日志等,既可以实时处理大数据信息     也能离线处理.     特点:       ...

  4. The Swift Programming Language-官方教程精译Swift(7)函数 -- Functions

    函数 函数是执行特定任务的代码自包含块.通过给定一个函数名称标识它是什么,并在需要的时候使用该名称来调用函数以执行任务. Swift的统一的功能语法足够灵活的,可表达任何东西,无论是不带参数名称的简单 ...

  5. [Nhibernate]二级缓存

    [Nhibernate]二级缓存 目录 写在前面 文档与系列文章 二级缓存 Nhibernate二级缓存提供程序 一个例子 总结 写在前面 上篇文章介绍了nhibernate中一级缓存的相关内容,一级 ...

  6. math对象与数组对象

    1.math对象 属性 //PI    圆周率 方法 //random    随机数 var num= Math.random();    生成0到1的随机数//round 四舍五入var num2 ...

  7. tensorflow 调参过程

    1. optimizer = tf.train.GradientDescentOptimizer(0.1) 参数小,loss减少的慢:参数大,出现Nan问题 2. optimizer = tf.tra ...

  8. Go - WaitGroup

    package main import ( "fmt" "sync" ) //WaitGroup用于等待一组线程的结束.父线程调用Add方法来设定应等待的线程的 ...

  9. iOS学习之--字符串的删除替换(字符串的常用处理,删除,替换)

    字符串操作,比较简单,仅做记录! 1.删除 NSString *str1 = @"<hello,wo r d!>"; //删除字符串两端的尖括号 NSMutableSt ...

  10. 北美跨境电商平台Wish透露未来一年在华规划

    9月12日,北美跨境电商平台Wish在深圳透露了未来一年在中国区的重点规划.Wish中国区总裁丁浩川表示,在下一阶段,Wish公司将继续围绕 提升平台流量. 加强品类支撑. 深化库存管理. 推进物流改 ...