`
sony-soft
  • 浏览: 1023985 次
文章分类
社区版块
存档分类
最新评论

数据库索引应用(ms-sql)

 
阅读更多

数据库索引应用(ms-sql)
--------------------------------------------------------------------------------
一、索引的概念
索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。

二、索引的特点
1.索引可以加快数据库的检索速度
2.索引降低了数据库插入、修改、删除等维护任务的速度
3.索引创建在表上,不能创建在视图上
4.索引既可以直接创建,也可以间接创建
5.可以在优化隐藏中,使用索引
6.使用查询处理器执行SQL语句,在一个表上,一次只能使用一个索引
7.其他

三、索引的优点
1.创建唯一性索引,保证数据库表中每一行数据的唯一性
2.大大加快数据的检索速度,这也是创建索引的最主要的原因
3.加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
5.通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。

四、索引的缺点
1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大
3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度

五、索引分类
1.直接创建索引和间接创建索引
直接创建索引: CREATE INDEX mycolumn_index ON mytable (myclumn)
间接创建索引:定义主键约束或者唯一性键约束,可以间接创建索引
2.普通索引和唯一性索引
普通索引:CREATE INDEX mycolumn_index ON mytable (myclumn)
唯一性索引:保证在索引列中的全部数据是唯一的,对聚簇索引和非聚簇索引都可以使用
CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)
3.单个索引和复合索引
单个索引:即非复合索引
复合索引:又叫组合索引,在索引建立语句中同时包含多个字段名,最多16个字段
CREATE INDEX name_index ON username(firstname,lastname)
4.聚簇索引和非聚簇索引(聚集索引,群集索引)
聚簇索引:物理索引,与基表的物理顺序相同,数据值的顺序总是按照顺序排列
CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) WITH
ALLOW_DUP_ROW(允许有重复记录的聚簇索引)
非聚簇索引:CREATE UNCLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)

六、索引的使用
1.当字段数据更新频率较低,查询使用频率较高并且存在大量重复值是建议使用聚簇索引
2.经常同时存取多列,且每列都含有重复值可考虑建立组合索引
3.复合索引的前导列一定好控制好,否则无法起到索引的效果。如果查询时前导列不在查询条件中则该复合索引不会被使用。前导列一定是使用最频繁的列
4.多表操作在被实际执行前,查询优化器会根据连接条件,列出几组可能的连接方案并从中找出系统开销最小的最佳方案。连接条件要充份考虑带有索引的表、行数多的表;内外表的选择可由公式:外层表中的匹配行数*内层表中每一次查找的次数确定,乘积最小为最佳方案
5.where子句中对列的任何操作结果都是在sql运行时逐列计算得到的,因此它不得不进行表搜索,而没有使用该列上面的索引;如果这些结果在查询编译时就能得到,那么就可以被sql优化器优化,使用索引,避免表搜索(例:select * from record where substring(card_no,1,4)=’5378’ && select * from record where card_no like ’5378%’)任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边
6.where条件中的’in’在逻辑上相当于’or’,所以语法分析器会将in ('0','1')转化为column='0' or column='1'来执行。我们期望它会根据每个or子句分别查找,再将结果相加,这样可以利用column上的索引;但实际上它却采用了"or策略",即先取出满足每个or子句的行,存入临时数据库的工作表中,再建立唯一索引以去掉重复行,最后从这个临时表中计算结果。因此,实际过程没有利用column上索引,并且完成时间还要受tempdb数据库性能的影响。in、or子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引
7.要善于使用存储过程,它使sql变得更加灵活和高效

资料引用:http://www.knowsky.com/339315.html

分享到:
评论

相关推荐

    MS-SQL 性能优化

    Sino_Link 数据库性能优化 为什么Sino_Link系统要做数据库性能优化 当记录达到一年数据时(主数据200万条)...数据库设计问题,代码(SQL)缺陷,索引 如何解决在发现的问题 数据库设计在项目后期无法改动. 优化代码 建立索引

    SQL语句大全大全(官方修正典藏版)

    《SQL语句大全大全(官方修正典藏版)》包含MS SQL数据库全部语句及解释,十分齐全,都是按分类写的,也方便查找。 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从...

    数据库课程设计--仓库管理系统.doc

    总体要求: 根据所选课题,设计并构建一个数据库(用MS SQL SERVER 2005实现);基于上述数据库设计实现一个数据库应用系统(应用系统开发工具不限) 2. 数据库的设计与构建方面(课程设计重点) 1. 数据库来源于对...

    数据库 社团管理系统 ODBC,ms sql server 2008

    从创建表,创建视图,创建存储过程,触发器,索引,到数据录入,不同用户登录不同权限访问,再到C语言通过ODBC技术连接到数据库,实现应用层的设计。该文档包括了我最终完成时的所有sql代码,c语言代码和所有查阅的...

    实验四 存储过程、触发器与索引

    1.熟悉大型数据库实验环境,以MS SQL SERVER为例; 2.掌握视图; 3.掌握存储过程与触发器; 4.掌握MS SQL SERVER的导入和导出; 5.掌握MS SQL SERVER的索引。 二、实验内容 (1)使用“实验一”中的数据库“abc”,...

    数据库设计规范-编码规范.docx

    4 设计概要 4.1 设计环境 a) ORACLE 11G R2 数据库 ORACLE 11G R2 操作系统 LINUX 6以上版本,显示图形操作界面 b) MS SQL SERVER 2005 数据库设计规范-编码规范全文共25页,当前为第2页。数据库设计规范-编码规范...

    MS SQL Server 数据库工具

    非常好用的一个MsSqlServer数据库工具,功能有:备份、恢复、删除、修复、...出现这些情况的原因,往往是因为数据库有些损坏,或索引不完整。 该软件可完成该种数据库的修复任务。 下载地址:http://db.okof.net/mssql

    全文检索实例(vs 2017项目+MS SQL Server 数据库 源码注释详尽)

    全文检索实例(vs 2017项目+MS SQL Server 数据库 源码注释详尽) 特点: 1、真正修改配置文件就可以投入正式使用。 2、本实例l采用ucene.net 3.0.3+盘古分词 ,内嵌汉字简拼模块、全拼模块、多音字全拼模块; 3、本...

    SQL数据库修复软件

    数据库急救成立以来,一直从事各种主流数据库的修复及恢复工作,其中包括 MS SQL,MYSQL,Oracle,Access,Sybase,IBMDB2等20余种数据库。 国内目前最专业的数据库救援站,长期修复研究各数据库的物理结构及逻辑...

    cpdb:Oscript应用程序可复制1C MS SQL数据库并部署到目标系统

    -压缩MS SQL数据库中的表和索引页 创维 -在1C服务器上创建信息库 杜比 -将信息库上传到文件 Restoreib -从文件加载信息库 Putyadisk -将文件放在Yandex-Disk上 getyadisk -从Yandex-Disk获取文件 地图驱动器 -...

    数据库设计/自动安装工具BDB 2007 V2.3(For Oracle/MS SQLServer/Access/MySQL/SQLAnyWhere/Sybase)

    BDB是跨数据库平台的数据库设计和自动安装工具、 支持Oracle、MS SQLServer、Access、MySQL、SQLAnyWhere、Sybase数据库。 通过BDB可以快速建立数据库模型、并随时与实体数据库进行双向同步。 同时它还可以...

    MS SQL入门-进阶-实战培训.pdf

     2.1 SQL Server 数据库存储结构   2.1.1 数据库分类   2.1.2 数据库文件组成   2.1.3 数据库文件存储机制   2.1.4 事务日志工作机制   2.2 数据库设计规划   2.2.1 Raid技术介绍   2.2.2 文件的增长...

    系统分析师-数据库系统2-真题-无答案.docx

    MS SQL Server C. DB2 D. IMS 11. (11) 是一种信息分析工具,能自动地找出数据仓库中的模式及关系。 A. 数据集市 B. 数据挖掘 C. 预测分析 D. 数据统计 某公司的部门(部门号,部门名,负责人,电话)、商品(商品号,...

    MS SQL Server对文件内容进行全文检索的查询

    配置索引服务器,并将索引服务器与MS SQL Server关联;修改SQL语句,将进行全文查询语句的内容加入查询条件中。为了方便存储以及方便索引,我们将上传的文件存储到一个目录里面,为了保证上传的文件名不重复,采用...

    SQLIndexManager:用于在SQL Server和Azure上进行索引维护的免费GUI工具

    SQL索引管理器 该工具使您可以快速找出索引的状态,并发现需要维护的数据库。 您可以通过UI进行维护,也可以生成T-SQL脚本以在SSMS中运行。 主要特点 快速描述引擎 多个数据库扫描 有关重建或重组的建议 碎片结果...

    java-cli-maven-sqlserver-aggregate

    java-cli-maven-sqlserver-aggregate描述创建一个称为dog的小型数据库表。 该表dog已被标准化为3NF。 添加了两个新表, breedLookup和colorLookup 。 创建一个新表dog_expanded ,将表dog , breedLookup和...

    MSSQL数据库修复软件:Recovery Toolbox for SQL Server 2.2.11.0

    3、恢复MS SQL数据库中最重要和最有价值的元素:数据类型,表数据,视图,存储过程,自定义函数,触发器,索引,主键和外键,限制等 4、将数据库恢复为几个文件(* .mdf + * .ndf) 5、在恢复mdf文件期间修复损坏的...

    2009 年度十大 SQL Server 技巧文章

    就如同数据库DBA了解的一样,合适的索引能够提高查询性能和应用程序可测量性。但是每个附加的索引,都给系统增加了额外开销,因为随着数据从表和视图中不断增加、修改或清除,SQL Server需要维护这些索引。  利用...

    数据库设计和自动安装工具BDB V2.2(for Oracle/MS SQLServer/MySQL/Access/SQLAnywhere/Sybase)

    BDB是跨数据库平台的数据库设计和自动安装工具、 支持Oracle、MS SQLServer、Access、MySQL、SQLAnyWhere、Sybase数据库。 通过BDB可以快速建立数据库模型、并随时与实体数据库进行双向同步。 同时它还可以...

    SQL21日自学通

    SQL 在编程中的应用 27 第二天查询— — SELECT 语句的使用 30 目标 30 背景 30 一般的语法规则 30 你的第一个查询 33 总结 37 问与答 38 校练场 38 练习 39 第三天表达式条件语句与运算 40 第四天函数对数据的...

Global site tag (gtag.js) - Google Analytics