文档介绍:Sql server2005 优化查询速度 两个人吵架,先说对不起的人,并不是认输了,并不是原谅了。他只是比对方更珍惜这份感情。 Sql server2005 优化查询速度 51 法查询速度慢的原因很多,常见如下几种: 1 、没有索引或者没有用到索引( 这是查询慢最常见的问题,是程序设计的缺陷) 2、 I/O 吞吐量小,形成了瓶颈效应。 3 、没有创建计算列导致查询不优化。 4 、内存不足 5 、网络速度慢 6 、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7 、锁或者死锁( 这也是查询慢最常见的问题,是程序设计的缺陷) 8、 sp_lock,sp_who, 活动的用户查看, 原因是读写竞争资源。 9 、返回了不必要的行和列 10 、查询语句不好,没有优化可以通过如下方法来优化查询: 1 、把数据、日志、索引放到不同的 I/O 设备上,增加读取速度,以前可以将 Tempdb 应放在 RAID0 上, SQL2000 不在支持。数据量(尺寸)越大,提高 I/O 越重要. 2 、纵向、横向分割表,减少表的尺寸(sp_spaceuse) 3 、升级硬件 4、根据查询条件, 建立索引, 优化索引、优化访问方式, 限制结果集的数据量。注意填充因子要适当( 最好是使用默认值 0)。索引应该尽量小, 使用字节数小的列建索引好( 参照索引的创建) , 不要对有限的几个值的字段建单一索引如性别字段 5 、提高网速;6 、扩大服务器的内存,Windows 2000 和 SQL server 2000 能支持 4-8G 的内存。配置虚拟内存:虚拟内存大小应基于计算机上并发运行的服务进行配置。运行 Microsoft SQL Server? 2000 时,可考虑将虚拟内存大小设置为计算机中安装的物理内存的 倍。如果另外安装了全文检索功能, 并打算运行 Microsoft 搜索服务以便执行全文索引和查询, 可考虑: 将虚拟内存大小配置为至少是计算机中安装的物理内存的 3 倍。将 SQL Server max server memory 服务器配置选项配置为物理内存的 倍(虚拟内存大小设置的一半)。 7 、增加服务器 CPU 个数; 但是必须明白并行处理串行处理更需要资源例如内存。使用并行还是串行程是 MsSQL 自动评估选择的。单个任务分解成多个任务,就可以在处理器上运行。例如耽搁查询的排序、连接、扫描和 GROUP BY 字句同时执行, SQL SERVER 根据系统的负载情况决定最优的并行等级,复杂的需要消耗大量的 CPU 的查询最适合并行处理。但是更新操作 UPDATE,INSERT , DELETE 还不能并行处理。 8、如果是使用 like 进行查询的话, 简单的使用 index 是不行的, 但是全文索引, 耗空间。 like 'a%' 使用索引 like '%a' 不使用索引用 like '%a%' 查询时,查询耗时和字段值总长度成正比, 所以不能用 CHAR 类型,而是 VARCHAR 。对于字段的值很长的建全文索引。 9、 DB Server 和 APPLication Server 分离; OLTP 和 OLAP 分离 10 、分布式分区视图可用于实现数据库服务器联合体。联合体是一组分开管理的服务器,但它们相