sqlserver从2000升级到2008速度慢的内存优化
转载:SqlServer数据库性能优化详解
转载:SqlServer数据库性能优化详解本⽂转载⾃:性能调节的⽬的是通过将⽹络流通、磁盘 I/O 和 CPU 时间减到最⼩,使每个查询的响应时间最短并最⼤限度地提⾼整个数据库服务器的吞吐量。
为达到此⽬的,需要了解应⽤程序的需求和数据的逻辑和物理结构,并在相互冲突的数据库使⽤之间(如联机事务处理 (OLTP) 与决策⽀持)权衡。
对性能问题的考虑应贯穿于开发阶段的全过程,不应只在最后实现系统时才考虑性能问题。
许多使性能得到显著提⾼的性能事宜可通过开始时仔细设计得以实现。
为最有效地优化 Microsoft? SQL Server? 2000 的性能,必须在极为多样化的情形中识别出会使性能提升最多的区域,并对这些区域集中分析。
虽然其它系统级性能问题(如内存、硬件等)也是研究对象,但经验表明从这些⽅⾯获得的性能收益通常会增长。
通常情况下,SQL Server ⾃动管理可⽤的硬件资源,从⽽减少对⼤量的系统级⼿动调节任务的需求(以及从中所得的收益)。
设计联合数据库服务器为达到⼤型 Web 站点所需的⾼性能级别,多层系统⼀般在多个服务器之间平衡每⼀层的处理负荷。
Microsoft? SQL Server? 2000通过对SQL Server 数据进⾏⽔平分区,在⼀组服务器之间分摊数据库处理负荷。
这些服务器相互独⽴,但也可以相互协作以处理来⾃应⽤程序的数据库请求;这样的⼀组协作服务器称为联合体。
只有当应⽤程序将每个 SQL 语句发送到拥有该语句所需的⼤部分数据的成员服务器时,联合数据库层才可以达到⾮常⾼的性能级别。
这称为使⽤语句所需的数据配置 SQL 语句。
使⽤所需的数据配置 SQL 语句不是联合服务器所独有的要求;在群集系统中同样有此要求。
虽然服务器联合体与单个数据库服务器呈现给应⽤程序的图像相同,但在实现数据库服务层的⽅式上存在内部差异。
单个服务器层联合服务器层⽣产服务器上有⼀个 SQL Server 实例。
浅谈优化SQLServer服务器内存配置
内存是影响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进行内存优化
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数据库优化实用技巧
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数据库性能优化技巧
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查询速度慢原因及优化方法
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个数;但是必须明⽩并⾏处理串⾏处理更需要资源例如内存。
改善SQLServer数据库查询速度慢的技巧.
改善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数据库性能优化的方法
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数据库系统具有复杂性和高度的可配置性,使得数据库性能优化成为了非常复杂的工作。
如果我们没有足够的知识与技巧,很容易导致不经意间影响数据库系统的正常工作。
本文将介绍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;- 对于包含大量重复元素的列,可以直接采用非聚集索引。
sql server性能的优化
“水可载舟,亦可覆舟”,索引也一样。 索引有助于提高检索性能,但过多或不当 的索引也会导致系统低效。因为用户在表 中每加进一个索引,数据库就要做更多的 工作。过多的索引甚至会导致索引碎片
三.使用数据库分区表
什么是分表区
答:表分区分为水平分区和垂直分区;水平分区将表分为多个表。每个 表包含的列数相同,但是行更少;垂直分区将原始表分成多个只包含 较少列的表;水平分 区是最常用分区方式,后面我们以水平分区来介 绍具体实现方法。
分享内容
利用索引优化查询
使用数据库分区表提高程序检索效率 提高数据库查询效率的实用方法 SQL数据进行排序、分组、统计技巧
SQL Server查询速度慢的原因
1、没有索引或者没有用到索引(这是查询慢最常见的问题) 2、I/O吞吐量小,形成了瓶颈效应。 3、内存不足
4、网络速度慢
5、查询出的数据量过大(可以采用表分区) 6、锁或者死锁(这也是查询慢最常见的问题) 7、返回了不必要的行和列 8、查询语句不好,没有优化 ……
Hale Waihona Puke 二.理解sqlserver索引结构
索引是什么
可以把索引理解为一种特殊的目录。 SQL SERVER提供了两种索引:聚集索 引 (clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index ,也称非聚类索引、非簇集索引)。
举例来说明一下聚集索引和非聚集索引的区别:(汉语字典为例)
2、结合实际,谈索引使用的误区
1、主键就是聚集索引
通常,我们会在每个表中都建立一个ID列,以区分每条数据,并且这个ID列是自动增大的,步长一般1, 把它设为主键,SQL SERVER会将此列默认为聚集索引,这样做有好处,就是可以让您的数据在数据库中 按照ID进行物理排序,但是这样做的意义不大。 从我们前面谈到的聚集索引的定义我们可以看出,使用聚集索引的最大好处就是能够根据查询要求, 迅速缩小查询范围,避免全表扫描。在实际应用中,因为ID号是自动生成的,我们并不知道每条记录的 ID号,所以我们很难在实践中用ID号来进行查询。这就使让ID号这个主键作为聚集索引成为一种资源浪 费。
优化SQL Server数据库的方法
21、用select top 100 / 10 Percent 来限制用户返回的行数或者SET ROWCOUNT来限制操作的行
22、在SQL2000以前,一般不要用如下的字句: "IS NULL", "<>", "!=", "!>", "!<", "NOT", "NOT EXISTS", "NOT IN", "NOT LIKE", and "LIKE ’%500’",因为他们不走索引全是表扫描。也不要在Where字句中的列名加函数,如Convert,substring等,如果必须用函数的时候,创建计算列再创建索引来替代.还可以变通写法:Where SUBSTRING(firstname,1,1) = ’m’改为Where firstname like ’m%’(索引扫描),一定要将函数和列名分开。并且索引不能建得太多和太大。NOT IN会多次扫描表,使用EXISTS、NOT EXISTS ,IN , LEFT OUTER JOIN 来替代,特别是左连接,而Exists比IN更快,最慢的是NOT操作.如果列的值含有空,以前它的索引不起作用,现在2000的优化器能够处理了。相同的是IS NULL,"NOT", "NOT EXISTS", "NOT IN"能优化她,而"<>"等还是不能优化,用不到索引。
19、查询时不要返回不需要的行、列
20、用sp_configure ’query governor cost limit’或者SET QUERY_GOVERNOR_COST_LIMIT来限制查询消耗的资源。当评估查询消耗的资源超出限制时,服务器自动取消查询,在查询之前就扼杀掉。 SET LOCKTIME设置锁的时间
sqlserver从2000升级到2008速度慢的内存优化
我们公司的服务器冲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内存扩展。
如下图所示:。
从SQLServer20002005到SQLServer2008的升级测试
从SQLServer20002005到SQLServer2008的升级测试本⽂部分内容摘⾃《SQL Server 2008管理实战》,⼈民邮电出版社;《深⼊MSSQL 2008升级和应⽤程序的兼容性》,IT专家⽹;《SQL Server 2008联机丛书》,主要整理了如何把SQL Server 2000/2005升级到2008。
如果系统不⼤,数据库设计简单,只有单纯的数据表,其他数据库对象不多,且应⽤系统设计不复杂,你也许可以直接将数据库复制或备份,再到SQL Server 2008执⾏附加或还原数据库,然后更新索引统计,设置数据库兼容性。
或是通过安装程序,就地将SQLServer2000/2005直接升级到SQL Server 2008即可。
但如果数据库庞⼤,系统复杂,则最好先完成升级测试后,再按照系统需求,拟定升级计划,照计划⼀步步实施。
⼀般情况下,SQL Server 2005与SQL Server 2008的版本兼容性相当⾼,2005升级到2008⼀般没什么问题。
但2000升级到2008版本,可能需要先⾏测试,这两者差异⽐较⼤,包括:服务器内置的系统对象、T-SQL语法定义、新增的关键词、禁⽤的功能等,相距两版后较会有兼容性的问题。
在升级测试之前应先评估需求,列出有⽤到哪些功能,如数据库引擎、Analysis Services、Reporting Services、SSIS/DTS、丛集等⼤项,以及Replication、Log Shipping、全⽂检索等详细功能。
另外,评估资源需准备隔离的测试环境,由于数据库往往是企业系统的核⼼,不宜贸然测试或更改架构,轻则影响性能,重则毁损数据。
评估可否建⽴独⽴的测试环境,了解可⽤的⼯具,编写测试计划,准备妥当后再开始测试。
在新旧版本的兼容性上会有以下的情况:不再⽀持的⼀些功能。
此版仍⽀持,但最好换新功能来实现,因为设计理念较佳,且未来可能不再⽀持旧版功能。
SQL Server 2000数据库优化方案参考
SQL Server 2000数据库优化方案参考查询速度慢的原因很多,常见如下几种: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个数;但是必须明白并行处理串行处理更需要资源例如内存。
SqlServer2008数据库优化配置
SQL Server 2008配置1.启用AWE使用AWE 使SQL Server 可以缓存详细信息,而不用从磁盘上的系统页面文件中读取详细信息。
反过来,通过更快的数据访问提高了性能并减少了访问磁盘的频率。
详细的作用请见附件的链接。
步骤1:确认SQL Server启动账号∙<开始> 菜单- <运行…> - 输入“Services.msc”∙找到SQL Server服务, “MSSQLSERVER”∙右键<属性> - <登录> 页面, 找到SQL账号,如下:步骤2:确认SQL Server启动账号有lock pages in memory 权限∙<开始> 菜单- <运行…> - 输入“gpedit.msc”∙在本地计算机策略界面, 展开<计算机配置>, 再展开<Windows 设置>.∙展开<安全设置>, 再展开<本地策略>.∙选择<用户权限分配> ,会显示详细的规则.∙双击<将页锁定在内存>.∙在<本地安全设置> 对话框, 点击添加用户或组.∙在<选择用户或组> 对话框, 将SQL Server启动账号加入。
如图:步骤3:启用AWE打开SQL Server Management studio, 运行T-SQL:sp_configure'show advanced options', 1RECONFIGURE WITH OVERRIDEGOsp_configure'awe enabled', 1RECONFIGURE WITH OVERRIDEGO步骤4 :重启SQL Server 服务。
2.更新SQL Server的统计信息步骤1:在SQL Server 企业管理器中,新建一个维护计划。
步骤2:选择更新所有数据库。
SQLServer2000数据库优化方案参考
1、6、7、SQL Server 2000 数据库优化方案参考查询速度慢的原因很多,常见如下几种:没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2、I/O 吞吐量小,形成了瓶颈效应。
3、没有创建计算列导致查询不优化。
4、内存不足5、网络速度慢查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)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 个数;但是必须明白并行处理串行处理更需要资源例如内存。
SQLSERVER如何配置内存提高性能配置方案
SQL SERVER 高内存提高性能配置方案客户案例:操作系统:32位windows 2003/2008 server数据库:SQL SERVER 2003/2005/2008客户服务器内存:4G以上(一般建议8-20G内存)1.启用操作系统4G以上内存支持以来很多人都认为32位的操作系统只能识别不超过4G内存,其实理解是错误的,4G 只是指操作系统内存通用的寻址限制,对于32操作系统而言可以识别64G内存,只是对于超过4G的部分操作系统只是作为内存分页使用,不作通用寻址用法不同。
注:识别超出部分内存的方法,修改文件,在引导参数内加上/PAE执行菜单运行如果同时有/3gb参数要去掉2.SQL SERVER启用AWE支持注:用最大内存后至少要给操作系统留4G内存,也就是说最大内存+4G应该小于总的内存数。
3.将SQL SERVER启动账户的用户页内存页锁定,相当于SQL SERVER独占内存查看SQL SERVER的启动账户,如果为SYSTEM刚不用更改启动账户,如果为administrator或其它操作系统在用的账户则建议更改成其它专门账户来启动。
锁定内存页方法分配内存中锁定页用户权限,请执行以下步骤:1.单击启动单击运行,类型然后单击确定.请注意"组策略出现对话框。
2.展开计算机配置然后展开Windows 设置.3.展开安全设置然后展开本地策略.4.单击用户权限分配然后双击中锁定页内存.5.在中本地安全策略设置对话框中,单击添加用户或组.7.关闭组策略是。
8.重新启动服务器。
如果客人是64位的操作系统由于能直接识别4G以上内存只需作步骤2和3。
此方案的可以提高性能30-40%,特别对于用户量大且邮件数据量超过200万的用户,建议使用。
如果客户每天都定时出现突然变慢的情况且持续10-20分钟又正常,查看操作系统日志可以发现SQL SERVER内存调度错误提示也可以用此方案来解决常见的错误日志是:sql 服务器进程内存的一大部分已调出。
SQlServer2008速度极其慢的假象
SQlServer2008速度极其慢的假象有一06年的项目,到目前为止,数据库中的单表记录数超过了一千万条记录,以前的服务器有点不适应了,外加业务上要进行些升级,因此这次更换了台服务器,服务器配置如下:单CPU,4核心,2线程/核心。
由于现在内存不怎么贵,因此我让他们加到8G物理内存。
两块300G左右的硬盘做RAID1。
升级时,我顺便让他们买了个SQL 2008,计划从以前的2005升级到2008。
由于不怎么想直接把2005的mdf文件附加到2008下使用,因此我在2008下重新建立了数据库文件,然后通过SQL把之前的部分数据据导入到新的数据库中。
由于至少需要保留一年的数据,因此单表还有400万条记录左右。
问题出现了,客户端运行极其慢,遍访网络各大文章,发现SQL Server无法直接使用超过2G的内存,于是做了调整,应该是可以使用超过2G的内存了(方法下方表述)。
但是速度还是不行,如果直接把2005的数据文件附加进去则速度不错。
从网络上偶然看到文章需要重建索引,于是查找新建数据库中的索引,发现导出脚本时并没有把索引导出,于是重新导脚本,不过一加上索引,导出就失败,没办法,之后通过手工在各个表中添加了之前建立的索引,于是速度问题解决。
SQL使用大内存方法:以前的服务器,由于内存的价格过高,一般配的内存不是很多,超过4G的当然就不多了.现在的服务器,配置超过4G就很多,在配作SQL 数据库服务器后,很多的人只选默认的设置,虽然可以正常使用,可是却把大量的内存给浪费(SQL服务使用的内存不会超过1.8G),系统的性能也不能因为的大内存而提升,这是很可惜的. 在本文中,我大致讲一下配置的过程.(如果服务器的内存少于4G,不用配置)(网上完全讲这个的,没有见过,随手写一个)1.打开系统中的大内存支持(windows)若要启用 Windows 2000 Advanced Server 或 Windows 2000 Datacenter Server 支持大于4GB的物理内存,必须将参数/pae 添加到 boot.ini 文件中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我们公司的服务器冲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内存扩展。
如下图所示:。