一般来说索引会加快查询速度,但会影响插入,修改,删除的数据,且占用物理空间;
所以我们应该合理的创建索引,而且应该先创建聚合索引,再创建非聚合索引.
要在经常进行查询的列上创建索引,而且如果表列较少的话要避免过多创建索引;
优点详细描述:
创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
缺点详细描述:
第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
索 引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。
一般来说,应该在这些列上 创建索引,例如:在经常需要搜索的列上,可以加快搜索的速度;
在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些 列主要是一些外键,可以加快连接的速度;
在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
在经常需要排序的列上创建 索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。
同 样,对于有些列不应该创建索引。
一般来说,不应该创建索引的的这些列具有下列特点:
第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因 为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。
第二,对于那 些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比 例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。
第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。
第四,当修改性能远远大于检索性能时,不应该创建索 引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因 此,当修改性能远远大于检索性能时,不应该创建索引
转载于:https://my.oschina.net/A0926/blog/736429
分享到:
相关推荐
八、SQL Server 代理的优点 * 可以自动执行周期性的任务 * 可以自动通知操作员 * 可以提高数据库的稳定性和可靠性 九、SQL Server 代理的缺点 * 需要配置和维护 * 需要有相应的权限和访问控制 十、结论 * SQL ...
综上所述,企业在考虑部署SQL Server 2000集群时,应该全面考虑系统的优缺点。成本、硬件要求、许可费用以及灾难恢复能力都是需要权衡的因素。此外,企业还需要根据自身的业务需求、预算和风险承受能力,评估集群的...
详细讨论了索引的概念、类型、优点与缺点,以及如何创建和优化索引,提升查询性能。 第7章:联接查询 涵盖内连接、外连接、交叉连接以及自连接,帮助理解不同类型的查询在处理多表数据时的应用。 第8章:子查询和...
sqlserver同步机制介绍 SQL Server提供了多种同步机制,以满足不同的业务需求。以下是几种常见的SQL Server同步机制: Change Data Capture (CDC) Change Data Capture是SQL Server 2008引入的一种同步机制。它...
除了同步镜像集群,SQL Server还提供了其他恢复选项,如日志传送、数据库快照、备份与恢复等。每种技术都有其适用场景,例如日志传送适合较小的数据丢失容忍度,但不提供即时故障切换;备份与恢复则适用于定期备份和...
### Sqlserver大数据量插入速度慢或丢失数据的解决方法 #### 概述 在处理大量数据插入SQL Server数据库的过程中,可能会遇到插入速度慢或者数据丢失的问题。这种情况通常出现在需要批量插入数千甚至上万条记录的...
总的来说,SQL Server官方驱动如jtds、mssql-jdbc和sqljdbc42为Java开发者提供了与SQL Server数据库交互的桥梁,它们各有优缺点,适用于不同的项目需求。正确选择和使用这些驱动,可以确保Java应用程序能够高效、...
SQL Server高频面试题及答案 数据库基础知识篇 1. 主键、外键、超键、候选键 超键是关系模式中能唯一标识元组的属性集。候选键是最小超键,即没有冗余元素的超键。主键是数据库表中对储存数据对象予以唯一和完整...
总的来说,"sqlserver2000数据库驱动"涉及的是如何在Java环境中建立与SQL Server 2000数据库的连接。jtds和SQL Server官方驱动都是可行的选择,各有优缺点。在具体项目中,开发者需要根据性能、兼容性、许可证等因素...
本文总结了五种从 SQL Server 2000 升级到 2005 的方法,每种方法都有其优缺点,适合不同的业务场景。 第一种方法:直接升级 直接升级是最直接的升级方法。只需在 SQL Server 2000 数据库所在的机器启动 SQL ...
"SQLSERVER快照隔离" SQL Server 2005 中引入了快照隔离(Snapshot Isolation)机制,该机制可以提供非阻碍、非锁定的读取一致性,解决了传统的读取已提交(Read Committed)事务隔离级别下的争用问题。 快照隔离...
Oracle、SQL Server 及 MySQL 是目前最流行的三大关系数据库管理系统,各有其优缺点。本文将从表空间、查询语句、事务、分区表和分区索引、优缺点等方面对三者进行比较。 表空间 MySQL 的表空间有共享表空间和独占...
详解SQL Server分布式查询 SQL Server中的分布式查询(Distributed Query)是指能够访问存放在同一部计算机或不同计算机上的SQL Server或不同种类的数据源。分布式查询与普通查询的区别在于它需要连接多个MSSQL...
在C#编程中,批量插入数据到SQL Server数据库是一个常见的需求,特别是在处理大量数据时,效率至关重要。本篇文章将详细探讨三种不同的批量插入方法:常规的`INSERT`语句、`SqlBulkCopy`类以及使用表值参数。我们将...
SQL Server 数据对象结构的动态建立与访问 本文探讨了 Visual Basic 应用程序访问 SQL Server 数据的三种常用的方法,即使用数据访问对象/Jet、使用 ODBC API 编程和使用 SQL Server 的 Visual Basic 库(VBSQL)。...
sql server
SQL Server 调用 OPENROWSET 的方法 SQL Server 提供了多种方式来调用 OPENROWSET,OPENROWSET 是 SQL Server 中的一种函数,可以用来从其他数据源中读取数据。OPENROWSET 函数可以用来读取OLE DB 或 ODBC 数据源中...
SQL Server 中的三种导入导出数据方式各有其特点和优缺点。使用 Transact-SQL 对数据进行处理是最基本的导入导出方式,使用命令行工具 bcp 是一种快速的导入导出方式,而使用数据转换服务(DTS)对数据进行处理是...
#### 分析SQL Server 2008 R2数据层应用的优缺点 数据层应用(DAC)是一种封装数据库对象及其依赖关系的方法,可以简化数据库的应用程序部署。优点包括简化部署流程、减少错误和提高一致性。然而,对于非常复杂的应用...
SQL Server 2005中的CLR(Common Language Runtime)集成是一项强大的特性,它允许开发人员使用.NET Framework(如C#、Visual Basic .NET或Visual C++)编写的代码与SQL Server进行深度集成。这一功能扩展了数据库的...