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

转载 2008年04月29日 09:13:00
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

示例

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

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

在此示例中,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>  

<Name>MyServerName</Name>    

<Database>        

<Name>MyDatabaseName</Name>   

</Database>   

</Server>   

<Workload>      

<File>MyWorkloadScript.sql</File>    

</Workload>    

<TuningOptions>    

<TestServer>MyTestServerName</TestServer>    

<FeatureSet>IDX</FeatureSet>     

<Partitioning>NONE</Partitioning>

<KeepExisting>NONE</KeepExisting>  

</TuningOptions> 

</DTAInput>

</DTAXML> <script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

大数据应用开发之数据清洗开胃、生产、实操

本课程主要讲解大数据领域的数据清洗,课程从数据清洗的概念、数据清洗之生产部署、数据清洗之实战操作。
  • 2015年01月23日 14:40

利用SQL Server 2005减轻生产服务器优化负荷

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

利用SQL Server 2005减轻生产服务器优化负荷

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

简易线程池web服务器

项目链接:https://github.com/ICKelin/webserver 运行平台:Linux 开发环境:Ubuntu12.04 vim gcc gdb 开发者: 简单介绍: 一个...
  • Ccreazy
  • Ccreazy
  • 2015-06-19 22:47:04
  • 386

1对多业务,数据库水平切分架构一次搞定 | 架构师之路

1对多业务,数据库水平切分架构一次搞定 | 架构师之路 ...
  • u010370157
  • u010370157
  • 2017-09-06 19:28:57
  • 174

纯DIV+CSS案例二

  • 2009年06月20日 16:37
  • 690KB
  • 下载

T-SQL系列之查看各个数据库性能负载(MSSQL)

-- 查看各个数据库性能负载 SELECT substring (a.name,0,20) as [数据库名], [连接数] = (SELECT COUNT(*) FROM master..sysp...
  • MSSQL_DBA
  • MSSQL_DBA
  • 2014-08-19 17:16:05
  • 705

sql2012数据库和架构 导入 MS 2005(高版本数据库到低版本数据导入)

1.进入2012生成数据脚本 2.脚本设置”高级“ 2.在您本地数据库执行CMD-命令符中输入: sqlcmd -S xiaoye -i E:\script.sql...
  • yelin042
  • yelin042
  • 2016-11-28 08:12:15
  • 457

MSSQL数据库日志清理工具(2000/2005/2008/2012/2014/2016)

测试MSSQL版本2008/2012/2014。 如果使用中遇到问题欢迎关注微信服务号进行反馈! 百度云下载链接:https://pan.baidu.com/s/1nv5k7RN (...
  • LLINFO
  • LLINFO
  • 2017-12-09 16:30:06
  • 128

在SQL Server 2005中解决死锁问题

  • 2010年08月31日 11:10
  • 34KB
  • 下载
收藏助手
不良信息举报
您举报文章:用MSSQL 2005减轻生产服务器优化负荷
举报原因:
原因补充:

(最多只允许输入30个字)