当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:21:00  来源:本站整理

优化SQL Server数据库加快查询速度[MSSQL防范]

赞助商链接



  本文“优化SQL Server数据库加快查询速度[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

查询速度慢的缘由很多,常见以下几种:

  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 时,可考虑将虚拟内存大小设置为计算机中安装的物理内存的 1.5 倍.假如别的安装了全文检索功效,并打算运行 Microsoft 搜索服务以便履行全文索引和查询,可考虑:将虚拟内存大小配置为至少是计算机中安装的物理内存的 3 倍.将 SQL Server max server memory 服务器配置选项配置为物理内存的 1.5 倍(虚拟内存大小设置的一半).  

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、分布式分区视图可用于实现数据库服务器结合体.结合体是一组脱离管理的服务器,但它们彼此合作分担系统的处理负荷.这种通过度区数据形成数据库服务器结合体的机制可以扩大一组服务器,以支持大型的多层 Web 站点的处理需求.有关更多信息,拜见计划结合数据库服务器.(参照SQL帮忙文件'分区视图')  

a、在实现分区视图之前,必须先水平分区表  

b、在成立成员表后,在每个成员服务器上定义一个分布式分区视图,并且每个视图具有相同的名称.这样,引用分布式分区视图名的查询可以在任何一个成员服务器上运行.系统操作好像每个成员服务器上都有一个原始表的复本一样,但其实每个服务器上只有一个成员表和一个分布式分区视图.数据的位置对利用程序是透明的.  

11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收缩数据和日记 DBCC SHRINKDB,DBCC SHRINKFILE. 设置自动收缩日记.关于大的数据库不要设置数据库自动增长,它会降低服务器的性能.在T-sql的写法上有很大的讲究,下面列出常见的要点:首先,DBMS处理查询筹划的历程是这样的:

1、查询语句的词法、语法查抄  

2、将语句提交给DBMS的查询优化器  

3、优化器做代数优化和存取途径的优化  

4、由预编译模块生成查询筹划  

5、然后在符合的时间提交给系统处理履行  

6、最后将履行后果返回给用户其次,看一下SQL SERVER的数据存放的构造:一个页面的大小为8K(8060)字节,8个页面为一个盘区,按照B树存放.  

12、Commit和rollback的辨别 Rollback:回滚全部的事物. Commit:提交当前的事物. 没有必要在动态SQL里写事物,假如要写请写在表面如: begin tran exec(@s) commit trans 大概将动态SQL 写成函数大概存储历程.  

13、在查询Select语句顶用Where字句限制返回的行数,避免表扫描,假如返回不必要的数据,浪费了服务器的I/O资源,加重了网络的负担降低性能.假如表很大,在表扫描的期间将表锁住,禁止其他的联接拜候表,后果严重.


  以上是“优化SQL Server数据库加快查询速度[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 浅谈优化SQLServer数据库服务器内存配置的战略
  • 优化SQL Server数据库加快查询速度
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .