高效SQL语句(SQL Server)(推荐)_高效的sql语句

2020-02-27 其他范文 下载本文

高效SQL语句(SQL Server)(推荐)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“高效的sql语句”。

以下的SQL语句以Northwind为例

1、不要再where子句中“=”的左侧使用函数和表达式,因为系统无法应用函数或表达式中的索引

SELECT * FROM Customers WHERE Cast(CustomerID AS VARCHAR(20))='1'--Clustered Index Scan 全表扫描

SELECT * FROM Customers WHERE CustomerID ='1'--Clustered Index Seek 索引扫描

2、只返回必要的行或列

2.1 减少I/O次数

2.2 减少加载到内存的数据量

3、关于组合索引(待定)

组合索引中的顺序很重要,当查询语句中的列只能与组合索引中的第1列相匹配时,才能在查询中应用此索引

4、Distinct语句的使用原则

尽量少用,因为数据库引擎需要花费大量的时间对所有字段进行比较,过滤掉重复的记录,因此影响了查询的效率

字段较少时,可适当采用;较多时,不宜采用

5、Union语句

Union必须满足以下要求:

1、所有select语句的列数必须相同

2、所有select语句中对应列的数据类型必须兼容

执行包含Union的查询语句的过程如下:

1、依次执行所有select语句

2、将所有select语句的结果集合并为一个结果集

3、对结果集进行排序,并过滤掉重复的记录(由于需要第3步的操作,导致联合查询效率很低)可使用union all,不用排序和过滤重复记录,效率高

6、使用存储过程

数据库引擎可以在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。

相对来说,每次运行sql语句时,都要从客户端重复发送,并且在sqlserver每次执行这些语句时,对其进行编译和优化。

7、如果需要多次对一个数据量非常大的表中一部分数据进行查询操作,可以将这部分数据放在临时表中,然后对临时表进行操作。

8、模糊匹配符%和索引的关系

假定有一个表Good,主键为聚集索引,类型为nvarchar(50)

SELECT * FROM Goods AS g WHERE g.GoodsName LIKE '%商品1'--Clustered

Index Scan 全表扫描

SELECT * FROM Goods AS g WHERE g.GoodsName LIKE '商%品1'--Clustered Index Seek 索引扫描

SELECT * FROM Goods AS g WHERE g.GoodsName LIKE '商品1%'--Clustered Index Seek 索引扫描

结论:通配符%放在中间和后面会走索引,放在前面不会

9、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:

SELECT * FROM Employees AS e WHERE e.EmployeeID =1--走聚集索引

SELECT * FROM Employees AS e WHERE e.EmployeeID IS NULL--Constanct Scan10、尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连 接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。

11、在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON,在结束时设置 SET NOCOUNT OFF。无需在执行存储过程和触发器的每个语句后向客户端发送

DONE_IN_PROC 消息。

高效SQL语句

1.SELECT子句中避免使用 “*”当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 „*‟ 是一个方便的方法.不幸的是,这是一个非常低效的方法.实际上,ORACLE在解析......

高效的SQL语句(材料)

如何写高效率的SQL语句、Where子句中的连接顺序:ORACLE采用自下而上的顺序解析WHERE子句。根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录......

sqlserver分页语句

QL Server 2000/2005 分页SQL — 单条SQL语句有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,......

SQL语句

SQL练习一、设有如下的关系模式, 试用SQL语句完成以下操作:学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,学分,学期,学时)选课(学号,课程号,成绩)1. 求选修了课程号为“C2”课的......

sql语句

简单基本的sql语句 几个简单的基本的sql语句选择:select * from table1 where范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 whe......

《高效SQL语句(SQL Server)(推荐).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
高效SQL语句(SQL Server)(推荐)
点击下载文档
相关专题 高效的sql语句 高效 语句 sql 高效的sql语句 高效 语句 sql
[其他范文]相关推荐
[其他范文]热门文章
下载全文