`
wx1569484809
  • 浏览: 63768 次
文章分类
社区版块
存档分类
最新评论

SQL Server的优点与缺点

 
阅读更多

一般来说索引会加快查询速度,但会影响插入,修改,删除的数据,且占用物理空间;
所以我们应该合理的创建索引,而且应该先创建聚合索引,再创建非聚合索引.
要在经常进行查询的列上创建索引,而且如果表列较少的话要避免过多创建索引;

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

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

索 引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。

一般来说,应该在这些列上 创建索引,例如:在经常需要搜索的列上,可以加快搜索的速度;

在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些 列主要是一些外键,可以加快连接的速度;

在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;

在经常需要排序的列上创建 索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;

在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

同 样,对于有些列不应该创建索引。

一般来说,不应该创建索引的的这些列具有下列特点:

第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因 为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

第二,对于那 些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比 例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

第四,当修改性能远远大于检索性能时,不应该创建索 引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因 此,当修改性能远远大于检索性能时,不应该创建索引

转载于:https://my.oschina.net/A0926/blog/736429

分享到:
评论

相关推荐

    SQL Server 使用 SQL Server 代理作业.ppt

    八、SQL Server 代理的优点 * 可以自动执行周期性的任务 * 可以自动通知操作员 * 可以提高数据库的稳定性和可靠性 九、SQL Server 代理的缺点 * 需要配置和维护 * 需要有相应的权限和访问控制 十、结论 * SQL ...

    SQL Server 2000集群服务器优缺点

    综上所述,企业在考虑部署SQL Server 2000集群时,应该全面考虑系统的优缺点。成本、硬件要求、许可费用以及灾难恢复能力都是需要权衡的因素。此外,企业还需要根据自身的业务需求、预算和风险承受能力,评估集群的...

    SQLServer实用SQL语句大全

    详细讨论了索引的概念、类型、优点与缺点,以及如何创建和优化索引,提升查询性能。 第7章:联接查询 涵盖内连接、外连接、交叉连接以及自连接,帮助理解不同类型的查询在处理多表数据时的应用。 第8章:子查询和...

    sqlserver几种同步机制介绍1

    sqlserver同步机制介绍 SQL Server提供了多种同步机制,以满足不同的业务需求。以下是几种常见的SQL Server同步机制: Change Data Capture (CDC) Change Data Capture是SQL Server 2008引入的一种同步机制。它...

    MS_SQL_Server的同步镜像集群优缺点对比

    除了同步镜像集群,SQL Server还提供了其他恢复选项,如日志传送、数据库快照、备份与恢复等。每种技术都有其适用场景,例如日志传送适合较小的数据丢失容忍度,但不提供即时故障切换;备份与恢复则适用于定期备份和...

    Sqlserver大数据量插入速度慢或丢失数据的解决方法

    ### Sqlserver大数据量插入速度慢或丢失数据的解决方法 #### 概述 在处理大量数据插入SQL Server数据库的过程中,可能会遇到插入速度慢或者数据丢失的问题。这种情况通常出现在需要批量插入数千甚至上万条记录的...

    SQLSERVER官方驱动 jtds-1.3.1 mssql-jdbc-7.0.0.jre8 sqljdbc42

    总的来说,SQL Server官方驱动如jtds、mssql-jdbc和sqljdbc42为Java开发者提供了与SQL Server数据库交互的桥梁,它们各有优缺点,适用于不同的项目需求。正确选择和使用这些驱动,可以确保Java应用程序能够高效、...

    SQLServer高频面试题及答案

    SQL Server高频面试题及答案 数据库基础知识篇 1. 主键、外键、超键、候选键 超键是关系模式中能唯一标识元组的属性集。候选键是最小超键,即没有冗余元素的超键。主键是数据库表中对储存数据对象予以唯一和完整...

    sqlserver2000数据库驱动

    总的来说,"sqlserver2000数据库驱动"涉及的是如何在Java环境中建立与SQL Server 2000数据库的连接。jtds和SQL Server官方驱动都是可行的选择,各有优缺点。在具体项目中,开发者需要根据性能、兼容性、许可证等因素...

    5种方法从sql server 2000升级到2005

    本文总结了五种从 SQL Server 2000 升级到 2005 的方法,每种方法都有其优缺点,适合不同的业务场景。 第一种方法:直接升级 直接升级是最直接的升级方法。只需在 SQL Server 2000 数据库所在的机器启动 SQL ...

    SQLSERVER快照隔离

    "SQLSERVER快照隔离" SQL Server 2005 中引入了快照隔离(Snapshot Isolation)机制,该机制可以提供非阻碍、非锁定的读取一致性,解决了传统的读取已提交(Read Committed)事务隔离级别下的争用问题。 快照隔离...

    oracle,sqlserver及mysql对比

    Oracle、SQL Server 及 MySQL 是目前最流行的三大关系数据库管理系统,各有其优缺点。本文将从表空间、查询语句、事务、分区表和分区索引、优缺点等方面对三者进行比较。 表空间 MySQL 的表空间有共享表空间和独占...

    详解SQL Server分布式查询

    详解SQL Server分布式查询 SQL Server中的分布式查询(Distributed Query)是指能够访问存放在同一部计算机或不同计算机上的SQL Server或不同种类的数据源。分布式查询与普通查询的区别在于它需要连接多个MSSQL...

    C#实现批量插入sqlserver数据

    在C#编程中,批量插入数据到SQL Server数据库是一个常见的需求,特别是在处理大量数据时,效率至关重要。本篇文章将详细探讨三种不同的批量插入方法:常规的`INSERT`语句、`SqlBulkCopy`类以及使用表值参数。我们将...

    SQL Server数据对象结构的动态建立与访问

    SQL Server 数据对象结构的动态建立与访问 本文探讨了 Visual Basic 应用程序访问 SQL Server 数据的三种常用的方法,即使用数据访问对象/Jet、使用 ODBC API 编程和使用 SQL Server 的 Visual Basic 库(VBSQL)。...

    sql server要点和难点优点和缺点以及具体应用.zip

    sql server

    sqlserver调用OPENROWSET的方法[参照].pdf

    SQL Server 调用 OPENROWSET 的方法 SQL Server 提供了多种方式来调用 OPENROWSET,OPENROWSET 是 SQL Server 中的一种函数,可以用来从其他数据源中读取数据。OPENROWSET 函数可以用来读取OLE DB 或 ODBC 数据源中...

    SQL Server三种导入导出数据方式比较

    SQL Server 中的三种导入导出数据方式各有其特点和优缺点。使用 Transact-SQL 对数据进行处理是最基本的导入导出方式,使用命令行工具 bcp 是一种快速的导入导出方式,而使用数据转换服务(DTS)对数据进行处理是...

    sql server 2008 r2 中文教程.pdf

    #### 分析SQL Server 2008 R2数据层应用的优缺点 数据层应用(DAC)是一种封装数据库对象及其依赖关系的方法,可以简化数据库的应用程序部署。优点包括简化部署流程、减少错误和提高一致性。然而,对于非常复杂的应用...

    使用 SQL Server 2005中的 CLR 集成

    SQL Server 2005中的CLR(Common Language Runtime)集成是一项强大的特性,它允许开发人员使用.NET Framework(如C#、Visual Basic .NET或Visual C++)编写的代码与SQL Server进行深度集成。这一功能扩展了数据库的...

Global site tag (gtag.js) - Google Analytics