最近在做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. Django+Nginx+Uwsgi环境配置

    nginx.conf : server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.acces ...

  2. node--静态服务器

    1.同步读取文件 const data = fs.readFileSync('./model/mime.json');   // 这里是添加了可以正常链接其他格式文件的服务器 const http = ...

  3. 关于HTTP那些事

    写这篇文章的原因 记录前端性能优化用到的关键概念 简化大家对HTTP的学习 大家或许面试的时候可以用得到哦 HTTP是什么 Web的应用层协议(超文本传输协议HyperText Transfer Pr ...

  4. 组件化思路:以selection为例子,使用prop-types实现组件化控制,重用

    需求 书接上文,UI 积累之select section 这里又来两个需求了. 当我点击选择了option后,我应该看到的是我选择的option的内容 多例重用,即同样是个selection,我只是需 ...

  5. 微信小程序中图片上传阿里云Oss

    本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发.最近工作遇到一个小问题. 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意去记录一下. 第一步:配置阿里云地址: 我 ...

  6. 全面认识HBase架构(建议收藏)

    在网上看过很多HBaes架构相关的文章,内容深浅不一,直到发现了一篇MapR官网的文章https://mapr.com/blog/in-depth-look-hbase-architecture/#. ...

  7. 幕布,workflowy的使用技巧

    Q: 幕布免费用户导出文档为纯文本或opml: - 将文档Ctrl+C 复制到workflowy: - workflowy可以导出plain-text或opml: 注:已知这样的方法,注释的格式不会被 ...

  8. CSS核心概念之盒子模型

    盒子模型(Box Model) 关于更多CSS核心概念的文章请关注GitHub--CSS核心概念. 当对一个文档进行布局的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型(CSS basi ...

  9. vscode使用cnpm报错

     1.在wind10搜索框里输入 Windows PowerShell 进入这个界面 2.打开Windows PowerShell 之后 输入命令:set-ExecutjionPolicy Remot ...

  10. c 将年月日转化为星期

    /*得到年月日转化为星期几*/ LOCAL ulong_t DateWeekGet(ulong_t year,ulong_t month,ulong_t day) { ulong_t c = ; ul ...