`

sql问题整理

 
阅读更多
问题1,是否值得在identity字段上建立聚集索引。
 
答案取决于identity 字段如何在语句中使用。如果你经常根据该字段搜索返回很少的行,那么在其上建立索引是值得的。
 
反之如果identity字段根本很少在语句中使用,那么就不应该对其建立任何索引。
 
问题2,一个表应该建立多少索引合适。
如果表的80%以上的语句都是读操作,那么索引可以多些。但是不要太多。
特别是不要对那些更新频繁的表其建立很多的索引。很少表有超过5个以上的索引。
过多的索引不但增加其占用的磁盘空间,也增加了SQL Server 维护索引的开销。
 
问题3:为什么SQL Server 在执行计划中没有使用你认为应该使用的索引?原因是多样的。
 
一种原因是该语句返回的结果超过了表的20%数据,使得SQL Server 认为scan比seek更有效。 
另一种原因可能是表字段的statistics过期了,不能准确反映数据的分布情况。
 
你可以使用命令UPDATE STATISTICS tablename with FULLSCAN来更新它。
 
只有同步的准确的statistics才能保证SQL Server 产生正确的执行计划。
 
过时的老的statistics常会导致SQL Server生成不够优化的甚至愚蠢的执行计划。
 
所以如果你的表频繁更新,而你又觉得和之相关的SQL语句运行缓慢,不妨试试UPDATE STATISTIC with FULLSCAN 语句。
 
问题4、什么时候使用聚集索引,什么时候使用非聚集索引?
在SQL Server 中索引有聚集索引和非聚集索引两种。它们的主要差别是前者的索引叶子就是数据本身,而后者的叶子节点包含的是指向数据的书签(即数据行号或聚集索引的key)。
对一个表而言聚集索引只能有一个,而非聚集索引可以有多个。
只是聚集索引没有Bookmark Lookup操作。
什么时候应该使用聚集索引?  什么时候使用非聚集索引? 取决于应用程序的访问模式。
我的建议是在那些关键的字段上使用聚集索引。一个表一般都需要建立一个聚集索引。
对于什么时候使用聚集索引,SQL Server 2000联机手册中有如下描述:
在创建聚集索引之前,应先了解您的数据是如何被访问的。可考虑将聚集索引用于:
包含大量非重复值的列。
使用下列运算符返回一个范围值的查询:BETWEEN、>、>=、< 和 <=。
被连续访问的列。
返回大型结果集的查询。
经常被使用联接或 GROUP BY 子句的查询访问的列;一般来说,这些是外键列。
对 ORDER BY 或 GROUP BY 子句中指定的列进行索引,可以使 SQL Server 不必对数据进行排序,因为这些行已经排序。这样可以提高查询性能。
OLTP 类型的应用程序,这些程序要求进行非常快速的单行查找(一般通过主键)。应在主键上创建聚集索引。
           聚集索引不适用于:
                 频繁更改的列
                 这将导致整行移动(因为 SQL Server 必须按物理顺序保留行中的数据值)。这一点要特别注意,因为                     在大数据量事务处理系统中数据是易失的。
分享到:
评论

相关推荐

    sql语句整理工具

    标题中的“sql语句整理工具”指的是用于优化和格式化SQL查询语句的软件或应用程序。这类工具的主要目的是帮助数据库管理员和开发人员更好地管理和理解复杂的SQL代码,使其更规范、可读性更强,从而提高工作效率。 ...

    SQL语句格式整理器

    SQL语句格式整理器是一款非常实用的工具,它专门针对SQL查询语句的排版混乱问题,通过自动化处理,帮助用户快速将杂乱无章的SQL代码转化为整洁、易读的格式。这样的工具在数据库管理和开发过程中尤为重要,因为它...

    自制sql文整理

    自制SQL文整理,非开源,非完整,写得很挫,有使用时限,强烈不建议下载

    SQL文自动整理格式工具

    sqllice是一款专为解决SQL代码格式混乱问题而设计的工具,它能够帮助开发人员快速、高效地整理SQL脚本,使其更符合编程规范,提高代码可读性和团队协作效率。无论你是使用Java、Python、C#还是其他语言进行开发,...

    sql语句整理

    sql语句整理 sql增删改查 更新数据记录 删除数据记录

    SQL格式化整理

    SQL格式整理工具,而且还可以把SQL语句转换成VB DELPHI C# JAVA里面用的格式

    SQL数据库整理工具

    标题中的“SQL数据库整理工具”指的是专门用于管理和优化SQL Server数据库的应用程序,这些工具通常包含一系列功能,旨在提升数据库性能,确保数据的准确性和一致性。SQL Server是Microsoft开发的一款关系型数据库...

    《SQL》语句整理

    在《SQL》语句整理中,我们涉及了数据库的创建与删除、表的创建与数据操作、查询语句以及聚合函数等核心概念。 首先,创建数据库是数据库管理的基础。在SQL Server 2005中,可以使用`CREATE DATABASE`语句来创建新...

    经典SQL语句整理大全

    SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。以下是对标题和描述中涉及的经典SQL语句的详细解释: 1. **创建数据库**: 使用`CREATE DATABASE`语句来创建一个新的数据库。例如:`...

    sql跟踪语句整理工具

    SQL跟踪后,用该工具能够快速整理出整洁的SQL,减少人工的复制、帖贴

    SQLSERVER基础实用必会SQL语句整理.docx

    本文档旨在整理SQLSERVER基础实用必会SQL语句,涵盖数据库的创建、备份、还原等问题的解决方法,并提供了一些有用的SQL语句命令。 一、SQLSERVER数据库的安装问题 在安装SQLSERVER2008时,可能会出现问题。如果...

    R9(SQL)数据整理工具.rar

    《用友R9 SQL数据整理工具详解》 在IT行业中,数据管理是至关重要的环节,尤其是在企业级应用软件中。用友R9是一款强大的企业管理软件,它提供了全面的业务流程支持,而其中的数据整理工具更是帮助企业高效管理和...

    一般SQL语句优化整理

    ### 一般SQL语句优化整理 #### 概述 在数据库操作中,SQL查询语句是数据检索的核心,其性能直接影响到应用系统的响应时间和资源消耗。对于一般的SQL语句优化,不仅能够提升查询效率,还能改善用户体验。本文将对...

    刚刚整理的SQL语句

    尽管描述和部分内容提供的信息有限,但我们可以基于标题“刚刚整理的SQL语句”来展开一些重要的SQL知识点,帮助读者更好地理解和掌握SQL的基础及进阶用法。 ### SQL简介 SQL(Structured Query Language)是一种...

    经典sql查询整理

    "经典SQL查询整理"这个资源聚焦于SQL面试中的常见问题,旨在帮助用户提升SQL技能,更好地应对工作或学习中的挑战。 首先,SQL的核心功能包括以下几点: 1. **数据查询**:SQL的SELECT语句是其最基础也是最重要的...

    SQL Server 2005索引碎片整理

    SQL Server 2005索引碎片整理

    SQL常用语句(重新整理)

    SQL(Structured Query Language)是用于管理和操作关系数据库的标准语言,其功能强大且广泛应用于各种数据库系统,如MySQL、Oracle、SQL Server等。本篇将详细梳理SQL中的常见语句及其应用,帮助读者深入理解并掌握...

    经典的SQL语句(整理)

    这里有经典的SQL语句,大家可以去看看,适合需要复习SQL的人

    sql跟踪语句整理工具2

    这类工具通常能够帮助用户收集、分析和整理在数据库操作过程中产生的SQL语句,以优化查询性能、找出瓶颈或者进行问题排查。 描述中的“之前上传的不能使用,现在重新上传。之前上传的大家就不要下载了,谢谢!”...

Global site tag (gtag.js) - Google Analytics