用MSSQL 2005减轻生产服务器优化负荷

2016-02-19 14:46 1 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是用MSSQL 2005减轻生产服务器优化负荷,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

  优化较大的工作负荷会对所优化的服务器产生很大的开销。开销是由数据库引擎优化顾问在优化进程中多次调用查询优化器导致的。如果除生产服务器以外,再使用一台测试服务器,则可以消除此开销问题。本文介绍如何用MSSQL 2005减轻生产服务器优化负荷。

  优化较大的工作负荷会对所优化的服务器产生很大的开销。开销是由数据库引擎优化顾问在优化进程中多次调用查询优化器导致的。如果除生产服务器以外,再使用一台测试服务器,则可以消除此开销问题。

  数据库引擎优化顾问如何使用测试服务器

  使用测试服务器的传统方法是将所有数据从生产服务器复制到测试服务器,优化测试服务器,然后在生产服务器上实现建议。此过程可以消除对生产服务器的性能影响,但这不是最佳解决方案。例如,将大量数据从生产服务器复制到测试服务器可能消耗大量时间和资源。此外,测试服务器硬件很少像生产服务器中部署的硬件那样功能强大。优化进程依赖于查询优化器,而它生成的建议部分依赖于基础硬件。如果测试服务器硬件和生产服务器硬件不相同,数据库引擎优化顾问建议的质量就会降低。

  若要避免出现这些问题,数据库引擎优化顾问将通过把大部分优化负荷转移到测试服务器,优化生产服务器上的数据库。它通过使用生产服务器硬件配置信息,而不是真正地将数据从生产服务器复制到测试服务器,来执行该操作。数据库引擎优化顾问不会将实际数据从生产服务器复制到测试服务器中。它仅复制元数据和必要的统计信息。

  下列步骤概要介绍了用于在测试服务器上优化生产数据库的过程:

  1. 确保两台服务器上都存在要使用测试服务器的用户。

  开始之前,请确保两台服务器上都存在要使用测试服务器来优化生产服务器上的数据库的用户。这就需要您在测试服务器上创建用户及其登录帐户。如果您在两台计算机上都是 sysadmin 固定服务器角色成员,将不需要执行此步骤。

  2. 优化测试服务器上的工作负荷。

  若要优化测试服务器上的工作负荷,必须通过 dta 命令行实用工具使用 XML 输入文件。在 XML 输入文件中,在 TuningOptions 父元素下使用 TestServer 子元素指定测试服务器的名称,并为其他子元素指定值。

  在优化进程中,数据库引擎优化顾问将在测试服务器上创建 Shell 数据库。若要创建此 Shell 数据库并对其进行优化,数据库引擎优化顾问需要在下列情况下调用生产服务器:

  a. 数据库引擎优化顾问将元数据从生产数据库导入到测试服务器 Shell 数据库。此元数据包括空表、索引、视图、存储过程和触发器等。这使得对测试服务器 Shell 数据库执行工作负荷查询成为可能。

  b. 数据库引擎优化顾问从生产服务器导入统计信息,以便查询优化器可以准确优化对测试服务器的查询。

  c. 数据库引擎优化顾问从生产服务器导入指定处理器数和可用内存量的硬件参数,为查询优化器提供生成查询计划所需的信息。

  3. 数据库引擎优化顾问优化完测试服务器 Shell 数据库后,将生成优化建议。

  4. 将通过优化测试服务器得到的建议应用于生产服务器。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  注意:在数据库引擎优化顾问的图形用户界面 (GUI) 中不支持测试服务器优化功能。

  示例

  首先,请确保测试服务器和生产服务器上都存在要执行优化的用户。

  将用户信息复制到测试服务器后,就可以在数据库引擎优化顾问 XML 输入文件中定义测试服务器优化会话。下面的示例 XML 输入文件说明如何使用数据库引擎优化顾问指定测试服务器来优化数据库。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  在此示例中,MyDatabaseName 数据库在 MyServerName 上进行优化。Transact-SQL 脚本(即 MyWorkloadScript.sql)用作工作负荷。此工作负荷包含对 MyDatabaseName 执行的事件。查询优化器对此数据库的大部分调用操作(作为优化进程的一部分发生)是由驻留在 MyTestServerName 上的 Shell 数据库实现的。Shell 数据库由元数据和统计信息构成。此进程会将优化开销卸载到测试服务器。数据库引擎优化顾问使用此 XML 输入文件生成优化建议时,应只考虑索引 (IDX) 而不考虑分区,并且不需要在 MyDatabaseName 中保留现有的任何物理设计结构。

?xml version="1.0" encoding="utf-16" ?
DTAXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/sqlserver/2004/07/dta" 
DTAInput
Server 
NameMyServerName/Name  
Database    
NameMyDatabaseName/Name 
/Database  
/Server  
Workload   
FileMyWorkloadScript.sql/File  
/Workload  
TuningOptions  
TestServerMyTestServerName/TestServer  
FeatureSetIDX/FeatureSet   
PartitioningNONE/Partitioning
KeepExistingNONE/KeepExisting 
/TuningOptions
/DTAInput
/DTAXML

来源:https://www.tulaoshi.com/n/20160219/1607882.html

延伸阅读
标签: SQLServer
问题发表于2005年3月28日 我们正在移动一个SQL 数据库到新的服务器上。我想要通过把它从一个服务器分离然后拷贝文件到新的服务器上再组合在一起的方法来移动数据库。 数据库的组合没有任何问题。然而,当我想要常见用户并给他们赋予新服务器上表和存储过程的权限的时候,给出了如下的错误信息。组合数据库的超级用户表有原来数据库的用...
标签: 服务器
服务器迁移服务器搬家教程   第一步:配置从属服务器,以下步骤(旧的服务器是192.168.1.105,新的192.168.1.200,例子) 1.这是新的服务器1.200的,添加子服务器的过程 到这里,从属服务器就搭起来了 。下面开始做转移,以转移192.168.1.0段为例。 2. 开始做转移任务。 在主服务器...
标签: SQLServer
引言 农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于WindowsNT4.0平台,采用客户/服务器模式,以Microsoft SQL Server为基础建立起来的大型数据库应用程序,系统界面友好、操作简便,计算、分析、检索功能非常强大,为保证农业银行系统及时进行纵向和横向业务数据采集、按照不同要求生成统计报表,进行...
关于优化 说起优化,其实最好的优化就是提升硬件的配置,例如提高cpu的运算能力,提高内存的容量,个人认为如果你考虑升级硬件的话,建议优先提高内存的容量,因为一般服务器应用,对内存的消耗使用要求是最高的。当然这都是题外话了。 这里我们首要讨论的,是在同等硬件配置下(同一台服务器,不提升硬件的情况下)对你的系统进行优化。...
标签: MySQL mysql数据库
  正确的编译方法固然重要,但它只是提高MySQL服务器性能工作的一部分。MySQL服务器的许多参数会影响服务器的性能表现,而且我们可以把这些参数保存到配置文件,使得每次MySQL服务器启动时这些参数都自动发挥作用。这个配置文件就是my.cnf。   MySQL服务器提供了my.cnf文件的几个示例,它们可以在/usr/local/mysql/share/...

经验教程

975

收藏

11
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部