文档详情

SQLServer2000数据库优化方案参考.docx

发布:2020-09-15约3.18千字共6页下载文档
文本预览下载声明
SQL Server 2000 数据库优化方案参考 查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引 (这是查询慢最常见的问题,是程 序设计的缺陷 ) 2、 I/O 吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大 (可以采用多次查询,其他的方法降低数 据量) 7、锁或者死锁 (这也是查询慢最常见的问题 ,是程序设计的缺陷 ) 8、 sp_lock,sp_who, 活动的用户查看 ,原因是读写竞争资源。 9、返回了不必要的行和列 10、查询语句不好,没有优化 可以通过如下方法来优化查询 : 1、把数据、日志、索引放到不同的 I/O 设备上,增加读取速度, 以前可以将Tempdb应放在RAIDO上,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 的区别 Ro
显示全部
相似文档