Select returns 无行 - 跟踪文件中的查询
Select returns no rows - queries in trace file
我imported a trace文件使用
SELECT * INTO trace_table FROM ::fn_trace_gettable('c:\my_trace.trc', default)
虽然 我注意到某些 select 语句需要大量时间(持续时间)和 cpu 但最后没有 return 任何行( RowsCount == NULL
).
SELECT TextData, ClientProcessID, EventClass
, Duration, StartTime, EndTime
, Reads, Writes, CPU, RowCounts
, EventSequence, TextData_md5_hash
, ApplicationName, SPID
FROM MyImportedTrace
WHERE
TextData_md5_hash in (0x4A943F266010BDD2A47179DC3481BC7F)
ORDER BY SPID, StartTime, EventSequence
例子
在查询中测试 window
如果我将相同的查询从 TextData
-Field 复制到查询 window 中,我会得到很多行 (>200000)
问题
- 查询没有 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
Returns这个结果
sys.fn_trace_gettable
returns 可能已捕获的所有可能列。
不能保证您正在查看的实际跟踪确实捕获了每个相关事件 RowCounts
class。
根据您目前提供的信息,没有理由认为跟踪不是这样设置的。
在 window Trace properties
中的 ssms click on Tools / SQL Server Profiler
that opens the sql-server-profiler 应用程序中单击选项卡 Event selection
并确保选中 RowCounts
列中的事件 class SQL:BatchCompleted
我imported a trace文件使用
SELECT * INTO trace_table FROM ::fn_trace_gettable('c:\my_trace.trc', default)
虽然 RowsCount == NULL
).
SELECT TextData, ClientProcessID, EventClass
, Duration, StartTime, EndTime
, Reads, Writes, CPU, RowCounts
, EventSequence, TextData_md5_hash
, ApplicationName, SPID
FROM MyImportedTrace
WHERE
TextData_md5_hash in (0x4A943F266010BDD2A47179DC3481BC7F)
ORDER BY SPID, StartTime, EventSequence
例子
在查询中测试 window
如果我将相同的查询从 TextData
-Field 复制到查询 window 中,我会得到很多行 (>200000)
问题
- 查询没有 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
Returns这个结果
sys.fn_trace_gettable
returns 可能已捕获的所有可能列。
不能保证您正在查看的实际跟踪确实捕获了每个相关事件 RowCounts
class。
根据您目前提供的信息,没有理由认为跟踪不是这样设置的。
在 window Trace properties
中的 ssms click on Tools / SQL Server Profiler
that opens the sql-server-profiler 应用程序中单击选项卡 Event selection
并确保选中 RowCounts
列中的事件 class SQL:BatchCompleted