数据库设计与查询语句的优化

本文探讨了SQL查询优化及数据库设计优化的核心方法,重点介绍了如何通过建立索引、优化查询语句、合理使用存储过程等手段提升数据库性能。特别强调了在多表操作和查询优化中的关键点,如选择最佳连接方案、避免表扫描和额外开销,以及如何通过移除不必要的列操作和善用索引来提高查询效率。

一,设计优化
数据库的设计优化基本上主要是靠索引来进行的。
建立索引的注意事项
   一般来说: 
   ①.有大量重复值、且经常有范围查询(between, >,< ,>=,< =)和order by、group by发生的列,可考虑建立群集索引; 
   ②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引; 
   ③.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。 


   1.多表操作在被实际执行前,查询优化器会根据连接条件,列出几组可能的连接方案并从中找出系统开销最小的最佳方案。连接条件要充份考虑带有索引的表、行数多的表;内外表的选择可由公式:外层表中的匹配行数*内层表中每一次查找的次数确定,乘积最小为最佳方案。 
   2.查看执行方案的方法-- 用set showplanon,打开showplan选项,就可以看到连接顺序、使用何种索引的信息;想看更详细的信息,需用sa角色执行dbcc(3604,310,302)。 
二,Sql优化查询
   优化即where子句利用了索引,不可优化即发生了表扫描或额外开销。 
   1.任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。 
   2.in、or子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。 
   3.要善于使用存储过程,它使SQL变得更加灵活和高效。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值