`
AutomaticThoughts
  • 浏览: 165561 次
社区版块
存档分类
最新评论

优化SQL语句的总结笔记

 
阅读更多

 

个人日常优化SQL语句的总结笔记

目前 DB 承受 日平均 500W PV 左右的站点,数据文件大小在20G左右,表数据量 在 50 - 500 W 左右

仅供参考:

 

1  . 查询的数据行分布情况,决定索引是否用得上,如果查询的数据行在数据表中分布均匀,且所占比重较大,能用上索引;反之,用不上索引

2  . select 的字段数目,特别是 长度较大的字段,对 语句的执行时间影响较大

3  . 语句中有 distinct 时,再在 where 语句中限制日期范围的话,反而会影响性能,无 distinct 时,执行情况是一样的

4  . distinct 一般占到总语句开销的 65 %左右

5  . newid 则视结果集而定,结果集越大,newid 所占语句的总开销比例也就越大

6  . group by 归总时,语句开销和Top 无关,所以,尽量少在大表中group by。

7  . group by 的字段越多,开销越大,且这些字段是用不上索引的,但是 where 中的条件是可以用上索引的。但是不可估量的是,用上索引也不一定能减少开销

8  . 非聚集索引,在 order by 中是用不上的

9  . Row_Number 在IO操作上不是十分的出色,但是在占用CPU资源上,却做的非常好。总体上,还是相当不错的,执行时间较短。

10. 在部分情况下,如果 Or 用好,是和 In 的效率一样的

11. 查询条件过多也会影响性能,且较严重

12. 查询中,UserName='ssssss' 的性能往往会比 UserID=123456 的性能要好

13 . 当语句中出现 in(select id from table1) 时,in里面的表达式一定要加top ,比如 select top 10 * from tables where id in(select top 100 id from table2),特别是在 in 里面取出来的数据比较多,外表又很大的情况

14 . 聚集索引一定要建在在表中分布均匀的字段、增减规律的字段上,比如日期,而尽量避免将聚集索引建立在UserID等字段上

15 . 当 where 中有 like 条件匹配时,where 中的非聚集索引就会失效,引起全表扫描,但是聚集索引是可以用到的

16.  如过允许,请将 可能 引起全表扫表的 SQL 语句,加上 未提交读 的事物隔离级别设置,即 no lock

分享到:
评论

相关推荐

    经典sql语句笔记(sql 关键字)

    SQL语句通常由一系列关键字组成,比如`SELECT`、`FROM`、`WHERE`、`ORDER BY`等。基本查询语法通常为: ```sql SELECT column1, column2, ... FROM table_name WHERE condition; ``` 其中,`SELECT`用来指定要查询的...

    SQL语句整理笔记

    ### SQL语句整理笔记知识点详解 #### 数据库操作 1. **创建数据库**: `CREATE DATABASE Country ON (name='Country', filename='D:\Country.mdf', size=5mb, maxsize=100mb, filegrowth=10%) LOG ON (name='...

    SQL语句笔记

    以下是从“SQL语句笔记”中提炼的关键知识点: - **SELECT语句**:最常用的SQL语句之一,用于从数据库中检索数据。 - `SELECT * FROM table WHERE a = ''`:这表示从`table`中选取所有列,但只返回那些`a`列值为空...

    sql语句+个人笔记

    sql语句中的精华,简单明了,易于学习,对于自学者非常有好处,值得去下载看看

    java笔记+sql语句

    10. **SQL语句**:SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。它包括数据查询、数据插入、数据更新和数据删除等操作。在Java中,可以通过JDBC(Java Database Connectivity)API来连接...

    sqlserver优化笔记

    - **问题描述**:复杂的SQL语句(尤其是多层嵌套的子查询)可能导致性能下降。 - **解决方案**: - 将复杂操作分解为多个步骤,先创建临时表存储中间结果,再进行后续操作。 - 使用 `UNION ALL` 替代 `UNION`,...

    SQL语句练习笔记/文件

    SQL语句练习笔记文件通常包含一系列示例和练习,旨在帮助用户提升SQL技能。这些文件可能包括基本查询、复杂查询、数据操作、数据库设计以及优化技巧等多个方面。下面我们将详细探讨这些知识点。 1. **SQL基础**: ...

    最全SQL语句大全笔记

    sql语句大全

    sql server 2005 sql语句笔记

    自己整理的,有可能不对。如果不对请指出来,谢谢

    sql语句帮助手册笔记

    ### SQL语句帮助手册笔记 #### 一、SQL基础概念与用法 ##### 1. 数据统计函数 在SQL查询中,经常会用到各种数据统计函数来处理数据集中的数值,例如: - `AVG()`:计算平均值。 - `COUNT()`:计算行数。 - `MAX()`...

    SQL语句优化资料

    首先,"SQL语句优化笔记.doc"可能涵盖了基本的SQL优化策略。这可能包括避免全表扫描,通过使用索引来提高查询速度,以及选择正确的JOIN类型。索引是提升查询效率的重要手段,它创建了一个指向数据的快速查找路径。而...

    day01-sql安装与SQL语句-笔记.zip

    在本压缩包“day01-sql安装与SQL语句-笔记.zip”中,我们可以预见到包含的内容主要是关于SQL(Structured Query Language)的基础知识,包括SQL的安装过程以及基本的SQL语句。SQL是用于管理和处理关系数据库的强大...

    sql server 2005 使用笔记之常用函数和经典sql语句

    这篇笔记主要探讨的是SQL Server 2005中的常用函数以及一些经典的SQL语句,这对于数据库管理员和开发人员来说是非常有价值的知识。 一、SQL Server 2005中的常用函数 1. **聚合函数**:如SUM, COUNT, AVG, MAX, ...

    SQL语句笔记.md

    SQL语句笔记.md

    谷粒商城SQL语句文件

    【描述】中提到,这些SQL语句是项目笔记的一部分,可以在CSDN(Chinese Software Developer Network)的特定专栏找到,链接为。这个专栏可能是开发者分享该项目数据库设计、维护或优化经验的地方,对于学习和理解该...

    SQL语句补充笔记.pdf

    这些基本的SQL语句构成了数据库操作的基础,通过它们可以进行数据查询、更新、插入和删除,从而有效地管理和维护数据库系统。在实际应用中,还需要结合事务处理、索引、视图等高级特性,以提高查询性能和数据安全性...

    SQL语法基础笔记

    【第17章:Java数据库编程】_SQL语法基础笔记.pdf

    MySQL数据库sql语句增删改查笔记

    ### MySQL数据库SQL语句增删改查笔记 #### 一、插入数据(Insert) 在MySQL中,`INSERT INTO`语句用于向表中插入新记录。语法格式为: ```sql INSERT INTO 表名 (列1, 列2, ..., 列n) VALUES (值1, 值2, ..., 值n...

    arcgis 的sql语句.doc

    ArcGIS 学习笔记中的 SQL 语句是学习 ArcGIS 中的重要组成部分。本文将详细介绍 SQL 语句在 ArcGIS 中的应用,包括 SQL 基础、基本语句、连接运算符、高级查询运算符等。 SQL 基础 SQL(Structured Query Language...

Global site tag (gtag.js) - Google Analytics