使用SQL Nexus整合----解决日常问题

这节介绍RML Utilities和SQL Nexus的用户会遇到的最常见问题,及其最佳解决方案。

问题#1

当你试图通过SQL Nexus导入一个SQL Trace文件时,在SQL Nexus日志文件里你或许会遇到如下错误:

"The system cannot find the file specified (System)"
Program Location:
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at ReadTrace.ReadTraceNexusImporter.DoImport() in
C:\jacklidocs3\cprsrc\main\src\sqlnexus_pass\ReadTraceNexusImporter\
ReadTraceNexusImporter.cs:line 364
at sqlnexus.fmImport.DoImport() in
C:\jacklidocs3\cprsrc\main\src\sqlnexus_pass\sqlnexus\fmImport.cs:line 557

出现这条信息是因为如下原因之一:

  • RML Utilities版本比当前版本老。如果这样,安装最新版本的RML Utilities。
  • RML Utilities没有用SQL Nexus注册。要矫正这个,定位到C:\Program Files\Microsoft Corporation\RMLUtils,并在命令提示中执行orca.exe /R。

问题#2

当你使用默认设置运行Reporter时,你或许会遇到下面错误:

Server: (local) Error: 4060 Severity: 11 State: 1 Line: 65536 Source: .Net
SqlClient Data Provider
Cannot open database "PerfAnalysis" requested by the login. The login failed.

当你启动Reporter时,Reporter是RML Utilities安装的一部分,PerfAnalysis数据库是其尝试连接的默认数据库。你需要更改数据库的名称,这个数据库是你要用SQL Nexus导入SQL Trace文件的数据库,这样就可以产生报表并避免前面的错误信息。

问题#3

如果你不能看到Blocking和Wait Statistics报告,或Bottleneck Analysis报告,或者你收到错误“Database doesn’t have the necessary data to run this report”,那么在SQL Nexus数据库表中没有所需数据来生成报告。从错误信息中,这看起来很明显,但是你需要确定是否有足够的数据来产生这些报告。大量的SQL Nexus用户报告异常或空报表之后,这个弹出的信息就会添加到工具中,因为与报告相关的所需的数据不在表中。

这些报表的数据是基于依赖SQL Server实例版本的SQL Perf Stats脚本而采集来的。包含前面所说报告的数据的文件通常的命名约定是:<ServerName>__SQL_2005_Perf_Stats_Startup.OUT or <ServerName>__SQL_2008_Perf_Stats_Startup.OUT。 确保这个文件至少收集2个SQL Server 2005/2008 PerfStats脚本中T-SQL查询的输出快照。检查Nexus数据库中的下面的表中是否有数据:tbl_Requests、tbl_blocking_chains和tbl_notableActiveQueries。如果在导入数据的过程中,SQL Nexus引擎没有发现SQL Server Perf Stats脚本输出,这些表就不会产生。这些表数据的缺失会导致上面的错误。

使用存储过程sp_blocker_pss08收集SQL Server 2005及更新实例上阻塞相关的数据会有另一个常见的陷阱。如果你使用存储过程收集阻塞数据,那么你需要使用SQL 2000 Perf Stats报告来查看集成的数据,因为它被导入到一个叫tbl_sysprocesses的不同的表中,与脚本相关的导入进程不能创建前面所说的表。

问题 #4

当你点击SQL Nexus中ReadTrace_Main报表中的UniqueStatements链接时,你会看到下面的错误摘录:

Must declare the scalar variable "@StartTimeInterval".

这个错误在异常信息中报告,异常信息同样是SQL Nexus产生的。这个问题不是SQL Nexus,而是RML Utilities报告。你可以通过下面的条件获得这个问题:

  • readtrace.tblStatements和readtrace.tblTimeIntervals没有数据(entry)
  • 使用更老的ReadTrace版本(RML Utilities)

没有为Start Time和End Time指定任何参数时,当你点击UniqueStatements报告链接就会发生这个问题。

注意:你可以发送e-mail给sstlbugs@microsoft.com,并寻要最新的带ReadTrace和SQL Nexus日志文件的RML Utilities。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值