sqlserver从2000升级到2008速度慢的内存优化
- 格式:docx
- 大小:20.86 KB
- 文档页数:14
转载:SqlServer数据库性能优化详解本⽂转载⾃:性能调节的⽬的是通过将⽹络流通、磁盘 I/O 和 CPU 时间减到最⼩,使每个查询的响应时间最短并最⼤限度地提⾼整个数据库服务器的吞吐量。
为达到此⽬的,需要了解应⽤程序的需求和数据的逻辑和物理结构,并在相互冲突的数据库使⽤之间(如联机事务处理 (OLTP) 与决策⽀持)权衡。
对性能问题的考虑应贯穿于开发阶段的全过程,不应只在最后实现系统时才考虑性能问题。
许多使性能得到显著提⾼的性能事宜可通过开始时仔细设计得以实现。
为最有效地优化 Microsoft? SQL Server? 2000 的性能,必须在极为多样化的情形中识别出会使性能提升最多的区域,并对这些区域集中分析。
虽然其它系统级性能问题(如内存、硬件等)也是研究对象,但经验表明从这些⽅⾯获得的性能收益通常会增长。
通常情况下,SQL Server ⾃动管理可⽤的硬件资源,从⽽减少对⼤量的系统级⼿动调节任务的需求(以及从中所得的收益)。
设计联合数据库服务器为达到⼤型 Web 站点所需的⾼性能级别,多层系统⼀般在多个服务器之间平衡每⼀层的处理负荷。
Microsoft? SQL Server? 2000通过对SQL Server 数据进⾏⽔平分区,在⼀组服务器之间分摊数据库处理负荷。
这些服务器相互独⽴,但也可以相互协作以处理来⾃应⽤程序的数据库请求;这样的⼀组协作服务器称为联合体。
只有当应⽤程序将每个 SQL 语句发送到拥有该语句所需的⼤部分数据的成员服务器时,联合数据库层才可以达到⾮常⾼的性能级别。
这称为使⽤语句所需的数据配置 SQL 语句。
使⽤所需的数据配置 SQL 语句不是联合服务器所独有的要求;在群集系统中同样有此要求。
虽然服务器联合体与单个数据库服务器呈现给应⽤程序的图像相同,但在实现数据库服务层的⽅式上存在内部差异。
单个服务器层联合服务器层⽣产服务器上有⼀个 SQL Server 实例。
内存是影响Microsoft SQL Server系统性能的⼀个重要因素,SQL Server数据库安装时将为具有32MB物理内存的机器缺省配置16MB可⽤内存,16MB物理内存的机器缺省配置4MB可⽤内存。
应在Microsoft SQL Server数据库安装后进⾏内存选项(Memory)设置,配置值为2GB。
为了确定SQL Server系统最适宜的内存需求,可以从总的物理内存中减去Windows NT4.0需要的内存以及其它⼀些内存需求后综合确定,理想的情况是给SQL Server分配尽可能多的内存,⽽不产⽣页⾯调度。
1、根据物理内存合理规划SQL Server可⽤内存 在⼤多数的⽣产环境中,服务器配备的物理内存是64MB~128MB,偶尔也有256MB的,只要配置恰当是完全可以满⾜SQL Server的内存需求的。
下表是笔者关于SQL Server内存分配的建议规划,供参考。
物理内存分配给SQL Server 设置值(单位:2KB) 8MB 4MB 2048 16MB 8MB 4096 32MB 16~18MB 8192~9216 48MB 28~34MB 14336~17408 64MB 40~46MB 20480~23552 128MB 100~108MB 51200~55296 256MB 216~226MB 110592~115712 512MB 464~472MB 237568~241664 以下是SQL Server内存选项(Memory)设置⽅法 (1)从Microsoft SQL Server程序集中启动SQL Enterprise Manager; (2)从Server Manager窗⼝中选择“Server”菜单选项; (3)在“Server”菜单中选择“Configurations”选项; (4)在“Server Configuration”对话框中选择”Configuration”标签,Configuration窗⼝显⽰配置选项列表; (5)选中“Memory”项⽬,在“Current”栏填⼊新值; (6)停⽌并重新启动SQLServer服务,使设置⽣效。
SQL SERVER2000使用AWE进行内存优化来源:作者:发表于:2012-08-21 10:56点击:21今年年初的时候一个客户打电话抱怨系统随着时间的推移越来越慢,在正常情况下还能够忍受,如果系统出现数据问题需要重新执行,那可以想象在某一个时间急着需要报告而系统确是默默唧唧在拉破车,换谁都无法忍受。
随之,我们调查这个问题,系统本身的设计就没今年年初的时候一个客户打电话抱怨系统随着时间的推移越来越慢,在正常情况下还能够忍受,如果系统出现数据问题需要重新执行,那可以想象在某一个时间急着需要报告而系统确是默默唧唧在拉破车,换谁都无法忍受。
随之,我们调查这个问题,系统本身的设计就没有考虑到有如此大的机构数和高的频度,所以造成了数据库膨胀得特别快,特别是几个主要存放数据表更是比较吓人。
从上表可以看出RMBCredit表近8.3亿笔数据,这个数据量在不同的数据库都是一个不小的数目,在讨论后给出了如下方法:(1)把历史数据移到其他地方进行存放,由于在做数据分析的时候需要保留两年的数据(2)提高SQL Server2000内存使用量,可以通过开启AWE进行实现;(3)修改程序,按照年份存放不同数据表中(由于这个产品在公司已经有公司替代,处于消亡阶段,该修改工作量大风险高,否决);(4)使用数据库分区功能(该功能在SQL Server2000未提供,另外做分区速度提升也不大,否决)通过讨论确定了1、2方法进行改造,具体AWE内存优化步骤如下面所介绍。
1. SQL SERVERAWE大内存设置方法标准的32 位地址最多可映射4 GB 内存。
因此32 位进程的标准地址空间限制为4 GB。
默认情况下,在32 位Microsoft Windows 操作系统中,将为操作系统保留2 GB 空间,另外2 GB 空间可由应用程序使用。
在32位操作系统中,一般SQL Server可以使用的內存不到2G,如果要SQL SERVER2000可以使用大容量的內存,我们需要开启SQL-SERVER的AWE功能。
SQLServer数据库优化实用技巧SQL Server数据库优化实用技巧随着互联网的飞速发展,海量数据的存储和处理变得越来越重要。
而SQL Server数据库就是其中之一。
随着数据库的规模增大,数据量也会随之增加,导致查询速度变得很慢。
所以,我们需要对SQL Server数据库进行优化来提高其处理速度和稳定性,本文将从以下几个方面来讲解SQL Server数据库的优化实用技巧。
一、数据库优化前的准备工作在进行SQL Server数据库优化之前,我们需要做好以下准备工作:1.备份数据库:在数据库优化之前需要备份数据库,以防因操作失误导致数据丢失。
2.生成关键字:根据数据库的运行情况,生成关键字来优化查询。
例如,数据倾斜、常用的表连接等。
3.性能监控:使用SQL Server Profiler来监控数据库运行的临时数据、活动情况等。
4.目录重建:重建索引,以提高查询速度。
5.删除不必要的表和视图:删除对整个数据库只起到负面影响的表和视图对象。
二、SQL Server数据库性能优化SQL Server数据库性能优化需要注意以下几点:1.数据类型:选择合适的数据类型可以提高数据库的性能。
数据类型包括大小、数据格式等。
尽量使用较小的数据类型,以减少I/O的负担。
2.索引:索引可以大大提高查询速度,但是索引也会占用大量的存储空间,因此需要根据实际情况来选择和创建索引。
为频繁查询的列或组合列创建索引是比较合适的。
3.使用视图:使用视图可以减少数据访问的复杂度,提高查询速度。
但过多的视图也会影响数据库的性能,因此需要注意选择使用视图的频率。
4.分区表:分区表将一个大表分成多个小表,可以提高查询速度,减少对整个表的访问开销。
5.使用存储过程:存储过程可以提高数据库的效率和稳定性。
通过存储过程,可以将多个SQL语句封装到一起,减少客户端和服务器之间的通信,大大提高数据库的性能。
6.升级硬件:在处理大量数据时,硬件性能的升级也是提高数据库性能的有效方法。
SQLServer数据库性能优化技巧查询速度慢的原因很多,常见如下⼏种:1、没有索引或者没有⽤到索引;2、I/O吞吐量⼩,形成了瓶颈效应;3、内存不⾜;4、⽹络速度慢;5、查询出的数据量过⼤;6、锁或者死锁;7、返回了不必要的⾏和列;8、查询语句不好,没有优化。
可以通过如下⽅法来优化查询:硬件/⽹络⽅⾯1、升级硬件。
2、提⾼⽹速。
3、扩⼤服务器的内存。
4、增加服务器CPU个数。
5、把数据、⽇志、索引放到不同的I/O设备上。
6、DB Server和APP Server分离。
7、应⽤分布式分区视图。
索引⽅⾯8、根据查询条件建⽴索引,优化索引。
9、索引应该尽量⼩,使⽤字节数⼩的列建索引好。
10、不要对有限的⼏个值的字段建单⼀索引(如性别字段)。
11、对于查询字段的值很长的建全⽂索引。
12、要注意索引的维护,周期性重建索引,重新编译存储过程。
13、如果使⽤了IN或者OR等时发现查询没有⾛索引,使⽤显⽰声明指定索引。
14、不要在WHERE⼦句中的“=”左边进⾏函数、算术运算或其他表达式运算,否则系统将可能⽆法正确使⽤索引。
15、在使⽤索引字段作为条件时,如果该索引是联合索引,那么必须使⽤到该索引中的第⼀个字段作为条件时才能保证系统使⽤该索引,否则该索引将不会被使⽤。
16、如果临时表的数据量较⼤,需要建⽴索引,那么应该将创建临时表和建⽴索引的过程放在单独⼀个⼦存储过程中,这样才能保证系统能够很好的使⽤到该临时表的索引。
17、如果某列存在空值,即使对该列建索引也不会提⾼性能。
SQL语句⽅⾯18、如果是使⽤LIKE进⾏查询的话,简单的使⽤索引是不⾏的,LIKE 'a%' 使⽤索引,LIKE '%a' 不使⽤索引,⽤ LIKE '%a%' 查询时,查询耗时和字段值总长度成正⽐,所以不能⽤CHAR类型,⽽是VARCHAR。
19、查询时不要返回不需要的⾏、列。
20、⼀定要将函数和列名分开。
SQLServer查询速度慢原因及优化⽅法原⽂地址:SQL Server数据库查询速度慢的原因有很多,常见的有以下⼏种: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个数;但是必须明⽩并⾏处理串⾏处理更需要资源例如内存。
改善SQL Server数据库查询速度慢的技巧SQL Server数据库是一个关系数据库管理系统,功能强大,但有时候会出现数据库查询速度慢的问题,那么如何解决SQL Server数据库查询速度慢?下文将给出答案。
SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: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_spaceuse3、升级硬件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倍(虚拟内存大小设置的一半。
SQLServer数据库性能优化的方法SQL Server数据库是在应用程序开发中广泛使用的一种数据库管理系统,它提供了可靠、安全、高效的数据存储和处理功能,因此在插入、更新和查询数据等操作中扮演着非常重要的角色。
随着数据量不断增加,数据库的性能也成为应用程序开发中必须考虑的重要问题,因此本文将介绍SQL Server数据库性能优化的方法,帮助大家更好地利用SQL Server数据库。
一、SQL Server数据库性能优化的重要性SQL Server数据库性能的优化是保证应用程序稳定性和可靠性的重要因素之一,好的数据库性能能够提升应用程序的响应速度,减少因数据库操作导致的错误和故障,从而缩短用户等待时间,增加用户体验。
当数据库出现性能瓶颈时,为了能更准确地定位问题,就需要对SQL Server数据库进行全面分析和优化,了解数据库的特点和使用习惯,从而制定合理、可行的优化方案,提升数据库性能。
二、SQL Server数据库性能优化的方法1. 创建索引索引是数据库中的一种重要数据结构,主要用于快速查找表中的数据。
对于经常进行查询和排序的表中的字段,应创建相应的索引,以减少查询时间和加快排序速度。
但是,索引过多也会导致性能下降,因此需要根据业务需求和实际情况合理创建索引。
2. 数据库分区分区是将一个大表按照指定的规则分割成多个独立的存储单元的过程,每个分区在存储上是独立的。
将数据库进行分区可以减少查询的数据量,提高查询速度。
对于数据量较大的表,使用分区可以有效提升数据库的性能。
3. 编写高效的SQL语句合理编写SQL语句是SQL Server数据库性能优化的非常重要的一环。
例如,应尽量避免在查询中使用“*”通配符,只查询必要的字段,因为查询的字段数越少,查询速度就越快;应尽量避免在查询语句中使用函数和子查询,因为这些操作会增加查询的时间。
同时,可以优化SQL语句执行计划,通过统计信息和执行计划进行性能优化。
SQLServer数据库的性能优化随着企业数据量不断增长,数据库系统已经成为企业不可或缺的一部分。
随之而来的问题是,在应对海量数据的同时,如何保证数据库系统的高效运行,以满足业务需要。
而数据库性能优化就是为了解决这一问题而存在的。
但是,由于SQLServer数据库系统具有复杂性和高度的可配置性,使得数据库性能优化成为了非常复杂的工作。
如果我们没有足够的知识与技巧,很容易导致不经意间影响数据库系统的正常工作。
本文将介绍SQLServer数据库性能优化的关键点。
1. 容量规划在数据库性能优化的开始阶段,我们需要明确数据库的容量规划,该规划应该包含这些内容:- 确认数据库的大小和增长趋势;- 选择合适的服务器硬件配置;- 选择合适的存储设备和存储配置;- 确认数据库备份和还原方案。
当确认好这些规划后,我们可以愉快地开启数据库系统的优化之旅了。
2. 关注I/O操作I/O操作是数据库性能优化中最重要的因素之一。
在SQLServer 中,我们需要通过以下几点来关注IO操作:- 确认合适的RAID配置;- 选择合适的磁盘类型;- 确认合适的磁盘块大小。
对于I/O操作的优化,我们可以在两个方面进行,一个是硬件方面,另一个则是SQLServer配置。
硬件方面,我们需要考虑到一下几个方面:- 升级服务器硬件设备;- 将磁盘储存设备升级为SSD硬盘;- 增加内存的容量。
对于SQLServer的配置,则可以通过以下几点进行:- 合适的磁盘和RAID配置;- 合适的max degree of parallelism 配置;- 合适的max server memory配;3. 使用合适的索引在SQLServer中,索引的作用是加速数据查询和数据修改,从而提高整个数据库系统的运行效率。
而在使用索引时,我们需要特别注意这些要素:- 创建索引可以减少IO操作;- 索引优化的关键点是选择合适的包含数据条目最多的列;- 在大型多元素表中使用Clustered Index;- 对于包含大量重复元素的列,可以直接采用非聚集索引。
我们公司的服务器冲sqlserver2000升级成2008,用友U8的数据导入后,再使用用友,悲剧发生了,所有使用人员都在想我狂喊慢慢慢!耳朵都被电话塞满了,心里着急的不行。
看看服务器的具体情况吧,从服务器资源监视器中可以看到,只要客户端一有连接操作,服务器的硬盘占用时间一直是100%。
怀疑是sql2000升级到2008后数据碎片过多。
利用sql2008自带的数据库维护工具,进行了索引重建、信息统计,使用者反映,稍微快了点,但是没有特别大的改观。
在观察到服务器,尽管硬盘占用时间一直是100%,但是同时cpu使用效率很低,内存使用始终维持在一半。
应该是sql没有设置好内存使用。
按照下面的步骤设置了内存。
我的服务器是windows2008标准版32为,物理内存为4g,
按照网上找的这篇教程设置完成,重启后,录入人员都说简直太快了。
世界清静了,感谢写这篇教程的人
Windows2008 32位开启服务器PAE大内存支持及SQLServer使用3G以上内存教程
1、(重要)开启Windows2008PAE内存支持:
点击“开始”菜单,展开“程序”菜单,在程序菜单下展开“附件”菜单,找到“命令提示符”右键选择“以管理员身份运行,于弹出的“管理员:命令提示符”的光标处输入:BCDEdit /set PAE forceenable,回车执行
命令,提示:“操作成功完成”,则表示Windows已成功开启PAE内存扩展。
如下图所示:。