Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

SQL Server 性能优化工具

时 间:2006-08-02 00:00:00
作 者:UMVsoft整理   ID:8  城市:上海  QQ:2851379730点击这里给张志发消息
摘 要:SQL Server 性能优化工具 
正 文:

数据和工作负荷示例
  使用下例说明 SQL Server 性能工具的使用。首先创建下表。
  
  create table testtable (nkey1 int identity, col2 char(300) default 'abc', ckey1 char(1))
  接下来,在这个表中填充 10,000 行测试数据。可以为列 nkey1 中所填充的数据创建非聚集索引。可以为列 ckey1 中的数据创建聚集索引,col2 中的数据仅仅是填充内容,将每一行增加 300 字节。
  
  declare @counter int
  
  set @counter = 1
  
  while (@counter <= 2000)
  
  begin
  
  insert testtable (ckey1) values ('a')
  insert testtable (ckey1) values ('b')
  insert testtable (ckey1) values ('c')
  insert testtable (ckey1) values ('d')
  insert testtable (ckey1) values ('e')
  set @counter = @counter + 1
  end
  
  数据库服务器将进行下面的两个查询:
  
  select ckey1,col2 from testtable where ckey1 = 'a'
  select nkey1,col2 from testtable where nkey1 = 5000
  Profiler
  SQL Server Profiler 记录数据库服务器中所发生活动的详细信息。可以配置 Profiler 以便用大量的可配置性能信息监视并记录在 SQL Server 中执行查询的一个或多个用户。可在 Profiler 中记录的性能信息有:I/O 统计信息、CPU 统计信息、锁定请求、T-SQL 和 RPC 统计信息、索引和表扫描、警告和引发的错误、数据库对象的创建/除去、连接/断开、存储过程操作、游标操作等等。有关 SQL Profiler 可记录的全部信息,请在 SQL Server Books Online 中搜索字符串“Profiler”。
  
  将 Profiler 信息装载到 .trc 文件中以便用于 Index Tuning Wizard 中
  Profiler 和 Index Tuning Wizard 是强大的工具组合,以帮助数据库管理员在表中创建适当的索引。Profiler 将查询所消耗的资源记录在 .trc 文件中。.trc 文件可以由 Index Tuning Wizard 读取,Index Tuning Wizard 同时考虑 .trc 信息和数据库表,然后建议应创建什么样的索引。Index Tuning Wizard 可让管理员选择是自动创建数据库的适当索引,调度索引以便在以后自动创建还是产生一个可以在以后查看和执行的 T-SQL 脚本。
  
  以下是分析查询负荷的步骤:
  
  设置 Profiler
  从 SQL Server Enterprise Manager 菜单中选择 Tools/SQL Server Profiler 启动 Profiler。
  按 CTRL+N 组合键新建 Profiler 跟踪。
  键入此跟踪的名称。
  选择 Capture to file:复选框,然后选择要将 Profiler 信息输出到其中的 .trc 文件。
  单击 OK。
  运行工作负荷
  启动 Query Analyzer(从 SQL Server Enterprise Manager 菜单中选择 Tools/SQL Server Query Analyzer 或者从开始菜单中选择开始\程序\Microsoft SQL Server 7.0\Query Analyzer)。
  连接到 SQL Server 并设定将在其中创建表的当前数据库。
  键入或复制以下查询并将它们粘贴到 Query Analyzer 的查询窗口:
  select ckey1,col2 from testtable where ckey1 = 'a'
  
  select nkey1,col2 from testtable where nkey1 = 5000
  
  按 CTRL+E 执行这两个查询。
  停止 Profiler
  
  单击红色的正方形以停止 Profiler 跟踪。
  将 .trc 装载到 Index Tuning Wizard
  
  从 Profiler 菜单中选择 Tools\Index Tuning WizardsU 启动 Index Tuning Wizard。单击 Next。
  选择要分析的数据库。单击 Next。
  保持 I have a saved workload file 选项按钮被选,然后单击 Next。
  选择 My workload file 选项按钮,找到用 Profiler 创建的 .trc 文件,然后单击 Next。
  在 Select Tables to Tune 对话框中,选择需要进行分析的表,然后单击 Next。
  Index Tuning Wizard 将在 Index Recommendations 对话框中指出应创建的索引。单击 Next。
  此向导可让您选择是立即创建索引,调度将在以后自动执行的索引创建任务还是创建带创建索引命令的 T-SQL 脚本。选择需要的选项,然后单击 Next。
  单击 Finish。
  Index Tuning Wizard 为示例数据库和工作负荷生成的 T-SQL。
  /* Created by:Index Tuning Wizard */
  /* Date: 9/7/98 */
  /* Time:6:42:00 PM */
  /* Server:HENRYLNT2 */
  /* Database :test */
  /* Workload file :E:\mssql7\Binn\profiler_load.sql */
  USE [test]
  BEGIN TRANSACTION
  CREATE CLUSTERED INDEX [testtable2] ON [dbo].[testtable] ([ckey1])
  if (@@error <> 0) rollback transaction
  CREATE CLUSTERED INDEX [testtable2] ON [dbo].[testtable] ([ckey1])
  if (@@error <> 0) rollback transaction
  COMMIT TRANSACTION
  Index Tuning Wizard 为示例表和数据所建议的索引就是我们预期的索引。ckey1 只有 5 个唯一值,且每一个值都有 2,000 行。假定其中的一个示例查询 (select ckey1, col2 from testtable where ckey1 = 'a') 要求根据 ckey1 中的某个值对表进行检索,那么在 ckey1 列中创建聚集索引是有意义的。第二个查询 (select nkey1, col2 from testtable where nkey1 = 5000) 根据列 nkey1 的值提取一行。Nkey1 唯一,且有 10,000 行,因此在该列创建非聚集的索引是有意义的。
  
  Profiler/Index Tuning Wizard 组合在涉及许多表和许多查询的实际数据库服务器环境中功能非常强大。当数据库正在进行典型查询时,请使用 Profiler 记录 .trc 文件。然后将 .trc 文件装载到 Index Tuning Wizard,以确定是否创建了正确的索引。根据 Index

Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助