热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqlserver优化工作小结

建立的索引后,select语句中,where条件和排序条件必须完全和索引一样,索引才能真正起到作用,并且排序条件的先后顺序必须和索引一致.where的字段必须处于索引最开始的位置,

建立的索引后, select 语句中,where条件和排序条件必须完全和索引一样,
索引才能真正起到作用,并且排序条件的先后顺序必须和索引一致.
where的 字段必须处于索引最开始的位置,例如:

表t 建立唯一索引,索引的字段依序为:abcd,并且都为降序

select a from t where a=1 and b = 1 order by c desc, d desc
以上语句能最佳使用到索引,下面语句使用索引,效果减弱:

select a from t where a=1 and b = 1 order by d desc, c desc
排序中c d字段前后交换后,索引还是用到了,但查询器会多进行一次排序.

select a from t where a=1 and b = 1 order by c , d desc
c字段排序改为正序,索引会用到,但会增加一次排序的工作,在索引中扫描的行数会增大一些

select a from t where a=1  order by c desc, d desc
条件中没有使用b字段,用不到索引,会扫描表

select a from t where b=1 and a = 1 order by c desc, d desc
条件中,ab字段顺序前后交换,对利用索引没有任何影响.

select a, E from t where a=1 and b = 1 order by c desc, d desc
结果字段中选择了E,E不是索引中的字段,查询器会扫描索引后,再次到表数据中去获取该字段的值

当两个表连接时,用nested-loop join连接2个表效率是最高的,当扫描的第一个表的行过多时,
可能查询优化器就不会用nested-loop join连接,会
自动采用Merge Join或哈希连接,会导致扫描第二个表时增加很多的行,效率更低,
并且还可能会影响第一个表排列好的结果记录的顺序,
因此应该根据最终的查询需求,将第一个表扫描的结果进行筛选,以尽可能小的结果集和其他表连接.

转:https://www.cnblogs.com/qqq88zz/archive/2011/05/18/2050193.html



推荐阅读
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细探讨了不同SQL数据库管理系统(DBMS)在限制输出结果、拼接字段和日期时间处理方面的函数差异。通过具体示例,帮助读者理解并掌握如何在不同DBMS中实现相同功能。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 在使用SQL Server进行动态SQL查询时,如果遇到LIKE语句无法正确返回预期结果的情况,通常是因为参数传递方式不当。本文将详细探讨这一问题,并提供解决方案及相关的技术背景。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 解决Element UI中Select组件创建条目为空时报错的问题
    本文介绍如何在Element UI的Select组件中使用allow-create属性创建新条目,并处理创建条目为空时出现的错误。我们将详细说明filterable属性的必要性,以及default-first-option属性的作用。 ... [详细]
author-avatar
原野上的蚂蚁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有