文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络技术服务器优化--让你的SQL运行速度明显提高
精品推荐
特别推荐
·代理服务器使用原理与选购细则
·统计分析Web服务器日志
·反恐精英CS服务器架设详解
·服务器常见故障的诊断与解决
·服务器性能评估的实战技巧
·Windows 2000 Server网络组件简介
·入门到精通:负载均衡技术全攻略
·教你如何用双SATA硬盘组建RAID系统
·分析并清除web服务器上的网页木马
·安装IIS后出现500错误的解决办法
·Apache下服务器虚拟主机的设置
·怎样选择合适的服务器规避风险
·服务器虚拟化的十大必须考虑因素
·谨慎:整合服务器时易犯十个错误
·IIS虚拟主机网站防木马权限设置安全配置整理
·服务器常见软件故障分析及解决
·浅谈如何为服务器安全地进行升级
·必须了解的五个服务器基础问题
·电影服务器协议、架设及防范配置
·服务器端口大全
热点TOP10
·图文详解 Windows 2003服务器集群安装
·Helix流媒体服务器架设及RMVB制作教程
·解决与HTTP 500 – 内部服务器错误错误信息有关的问题
·网络流量监控器mrtg
·IIS安装配置全攻略
·服务器端口大全
·Apache URL重定向指南
·何谓HTTP 500内部服务器错误
·反恐精英CS服务器架设详解
·部署 Microsoft SQL Server 2005 群集
·统计分析Web服务器日志
·IIS虚拟主机网站防木马权限设置安全配置整理
·Serv-U配置图文教程(1)
·个人电脑变网站服务器全面解决方案
·入门到精通:负载均衡技术全攻略
·安装IIS后出现500错误的解决办法
·Apache下服务器虚拟主机的设置
·怎样选择合适的服务器规避风险
·网吧电影视频服务器架设完全入门教程
·图文教程 Windows 2003群集服务配置

优化--让你的SQL运行速度明显提高

日期:2005年10月31日 作者: 查看:[大字体 中字体 小字体]


人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的 SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度有了明显地提高!下面我将从这三个方面分别进行总结:(为了更直观地说明问题,所有实例中的SQL运行时间均经过测试,不超过1秒的均表示为(< 1秒)。 )

一、不合理的索引设计

  例:表record有620000行,试看在不同的索引下,下面几个 SQL的运行情况:


  1.在date上建有一非个群集索引
select count(*) from record where date >
''19991201'' and date < ''19991214''and amount >
2000 (25秒)
select date,sum(amount) from record group by date
(55秒)
select count(*) from record where date >
''19990901'' and place in (''BJ'',''SH'') (27秒)

  分析:
  date上有大量的重复值,在非群集索引下,数据在物理上随机存放在数据页上,在范围查找时,必须执行一次表扫描才能找到这一范围内的全部行。


  2.在date上的一个群集索引
select count(*) from record where date >
''19991201'' and date < ''19991214'' and amount >
2000 (14秒)
select date,sum(amount) from record group by date
(28秒)
select count(*) from record where date >
''19990901'' and place in (''BJ'',''SH'')(14秒)

  分析:
  在群集索引下,数据在物理上按顺序在数据页上,重复值也排列在一起,因而在范围查找时,可以先找到这个范围的起末点,且只在这个范围内扫描数据页,避免了大范围扫描,提高了查询速度。


  3.在place,date,amount上的组合索引
select count(*) from record where date >
''19991201'' and date < ''19991214'' and amount >
2000 (26秒)
select date,sum(amount) from record group by date
(27秒)
select count(*) from record where date >
''19990901'' and place in (''BJ, ''SH'')(< 1秒)

  分析:
  这是一个不很合理的组合索引,因为它的前导列是place,第一和第二条SQL没有引用place,因此也没有利用上索引;第三个SQL使用了place。


  4.在date,place,amount上的组合索引
select count(*) from record where date >
''19991201'' and date < ''19991214'' and amount >
2000(< 1秒)
select date,sum(amount) from record group by date
(11秒)
select count(*) from record where date >
''19990901'' and place in (''BJ'',''SH'')(< 1秒)

  分析:
  这是一个合理的组合索引。它将date作为前导列,使每个SQL都可以利用索引,并且在第一和第三个SQL中形成了索引覆盖,因而性能达到了最优。


  5.总结:
  缺省情况下建立的索引是非群集索引,但有时它并不是最佳的;合理的索引设计要建立在对各种查询的分析和预测上。一般来说:

  ①.有大量重复值、且经常有范围查询

  (between, >,< ,>=,< =)和order by、group by发生的列,可考虑建立群集索引;

  ②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引;

[1] [2] [3] 下一页 




上一篇:宽带常见故障及解决方法

下一篇:利用MSSQL sp自制未公开的加密函数

优化--让你的SQL运行速度明显提高 相关文章:
·几秒钟让你的电脑百毒不侵,提速百倍!
·XP系统运行慢?小编自用7招解决
·鲜为人知的Windows XP优化
·提高运行速度 教你一步一步优化XP系统
·完全BIOS优化
·清理系统垃圾!让你的Vista跑得更快
·添加或删除启动时自动运行的程序
·使浏览网页速度马上就变快的方法
·BT下载速度变慢原因解读及应对方法分析
·PB代码优化
优化--让你的SQL运行速度明显提高 相关软件:
·用Photoshop美化你的相片
·唤醒你的创业精神
·winxp sp2 完全优化版 GHO 免刻录直接克隆
·注册表优化实战练习手册(图文教程 菜鸟先飞系列教材)
·在光盘上运行的 win98
·秦林新作《管好你的嘴》
·30天改变你的人生
·全能助手Windows优化王 2006 V3.95
·注册表优化大师 V173
·毕克所著的十天内提高单词量到20000

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn