这节介绍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
出现这条信息是因为如下原因之一:
问题#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报告。你可以通过下面的条件获得这个问题:
没有为Start Time和End Time指定任何参数时,当你点击UniqueStatements报告链接就会发生这个问题。
注意:你可以发送e-mail给[email protected],并寻要最新的带ReadTrace和SQL Nexus日志文件的RML Utilities。