Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Select不返回行-跟踪文件中的查询_Sql Server_Sql Server 2008 R2_Ssms_Sql Server Profiler - Fatal编程技术网

Sql server Select不返回行-跟踪文件中的查询

Sql server Select不返回行-跟踪文件中的查询,sql-server,sql-server-2008-r2,ssms,sql-server-profiler,Sql Server,Sql Server 2008 R2,Ssms,Sql Server Profiler,我使用 SELECT * INTO trace_table FROM ::fn_trace_gettable('c:\my_trace.trc', default) 虽然我注意到某些select语句需要花费大量的时间(持续时间)和cpu,但最后不返回任何行(rowscont==NULL) 范例 在查询窗口中测试 如果将同一查询从TextData-字段复制到查询窗口中,我会得到很多行(>200000) 问题 查询没有返回任何行的原因可能是什么 查询结束了吗 如何识别跟踪文件中失败的查询执行

我使用

SELECT * INTO trace_table FROM ::fn_trace_gettable('c:\my_trace.trc', default)
虽然我注意到某些select语句需要花费大量的时间(持续时间)和cpu,但最后不返回任何行(
rowscont==NULL

范例

在查询窗口中测试 如果将同一查询从
TextData
-字段复制到查询窗口中,我会得到很多行(>200000)

问题
  • 查询没有返回任何行的原因可能是什么
  • 查询结束了吗
  • 如何识别跟踪文件中失败的查询执行
接受答案后更新/编辑 这个问题

Use MyDatabase
SELECT ti.EventClass, te.Eventname, Count(*) as CountAsterisk
    , Sum(ti.RowCounts) as RowCountsSum
    , Sum(ti.Duration/1000) as DurationSum_ms
    , Avg(ti.Duration/1000) as DurationAvg_ms
FROM TraceImport ti
    Left JOIN TraceEvents te  
         ON ti.EventClass = te.EventTraceID
Group By ti.EventClass, te.Eventname 
Order By EventClass
返回此结果


sys.fn\u trace\u gettable
返回可能已捕获的所有可能列

无法保证您正在查看的实际跟踪确实捕获了每个相关事件类的行数

根据您目前提供的信息,没有理由认为跟踪不是这样设置的

在内部单击在窗口中打开应用程序的
Tools/SQL Server Profiler
Trace properties
单击选项卡
Event selection
,并确保选中列
RowCounts
,查看事件类
SQL:BatchCompleted


是否通过执行
行搜索==null
或显示数据来检查它是否包含数据?因为我相信它是
@@rowcount
RowCounts为null表示您没有收集它。并不是说它是0。您是正确的,可以使用
@@rowcount
查询返回的行。在我的例子中,导入的跟踪文件包含一列
rowscont
。对于select语句,此列的值通常大于0(并且
不为NULL
)。从MMS中的
TextData
字段执行查询将返回行。但是在我们的用户性能测试中,同一条语句似乎没有返回任何行(因此导入的跟踪文件中的
NULL
。导入的跟踪文件中的某些行在
RowCounts
列中具有值
>0
。因此,我假设包含返回行的Select的每一行都应该具有
RowCounts>0
@surfmuggle它们具有什么事件类?有问题的行具有事件类。)12和13。这是我导入跟踪文件的方式。似乎只有sql server 2012才提供onwards@surfmuggle-这不正确。13是批处理启动。它不能有行计数。
选择计数(*)是什么,来自MyImportedTrace的EventClass,其中RowCounts>0 GROUP BY EventClass
return?谢谢,我不知道必须为每个事件类配置此选项。阅读并没有帮助。但通过您的屏幕截图,我知道这会让事情变得清楚。
Use MyDatabase
SELECT ti.EventClass, te.Eventname, Count(*) as CountAsterisk
    , Sum(ti.RowCounts) as RowCountsSum
    , Sum(ti.Duration/1000) as DurationSum_ms
    , Avg(ti.Duration/1000) as DurationAvg_ms
FROM TraceImport ti
    Left JOIN TraceEvents te  
         ON ti.EventClass = te.EventTraceID
Group By ti.EventClass, te.Eventname 
Order By EventClass