易截截图软件、单文件、免安装、纯绿色、仅160KB

如何让你的SQL运行得更快


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


相关文档:

Sql截取字符

 做项目里面的数据库设计了两个类型放一个字段里面,我又要通过分开的类型来进行查询,痛苦啊,
两种方法;
1,读取到缓存中自定义datatable, 代码就不贴了.
不欣赏这种做法,因为我已经把页面上很多东西写了,都是有的Sql语句,这样改一下都要改了.
2.直接在Sql里面建视图,
l用SUBSTRING(dbo.K_ProductDtl.Caizhi, 0, CH ......

SQL游标原理和使用方法(转)

在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案。 1.1 游标和游标的优点 在数据库中,游标是一个十分重要的概念。游标提供了一 ......

SQL Server 2005 CTE的用法

if object_id('[tb]') is not null
drop table [tb] 
go
create table [tb]([id] int,[col1] varchar(8),[col2] int) 
insert [tb] 
select 1,'河北省',0 union all
 select 2,'邢台市',1 union all
 select 3,'石家庄市',1 union all
 select 4,'张家口市',1 union all
&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号