Sag*_*ana 3 sql-server-2008-r2
我在性能调优方面遇到了问题。我们正在使用一个名为 ARAS(领先的 PLM 软件之一)的应用程序,它使用 Sql 服务器作为后端。
每次我们使用 Aras 接口找到一些数据时,它都会与 SQL 服务器交互并给我们 Response。
但我无法找到将哪个查询发送到 SQL Server。我试图用这个查询找到它
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC.
Run Code Online (Sandbox Code Playgroud)
这也没有正确帮助我。
我们使用的是 SQL Server 2008 Express 和 ARAS 9.3
尽管 SQL Profiler 在 Express Edition 中不可用,但您仍然可以通过以下任何一种方法来利用跟踪功能:
注意:这会将来自所有客户端的所有 sql 记录到错误日志中,因此最好在完成跟踪后将其关闭。这个跟踪标志的缺点是它必须在启动时应用,;-T4032并且必须重新启动 sql server。
DBCC TRACEON(4032,3605,-1)
Run Code Online (Sandbox Code Playgroud)
4.您可以启动服务器端跟踪 ,如下所示:
/***********************************************/
/* Server Side Trace */
/***********************************************/
-- Declare variables
DECLARE @rc INT
DECLARE @TraceID INT
DECLARE @maxFileSize bigint
DECLARE @fileName NVARCHAR(128)
DECLARE @on bit
-- Set values
SET @maxFileSize = 5
SET @fileName = N'C:\SQLTrace'
SET @on = 1
-- Create trace
EXEC @rc = sp_trace_create @TraceID output, 0, @fileName, @maxFileSize, NULL
-- If error end process
IF (@rc != 0) GOTO error
-- Set the events and data to collect
EXEC sp_trace_setevent @TraceID, 41, 1, @on
EXEC sp_trace_setevent @TraceID, 41, 12, @on
EXEC sp_trace_setevent @TraceID, 41, 13, @on
EXEC sp_trace_setevent @TraceID, 41, 14, @on
EXEC sp_trace_setevent @TraceID, 41, 15, @on
EXEC sp_trace_setevent @TraceID, 41, 16, @on
EXEC sp_trace_setevent @TraceID, 41, 17, @on
-- Set Filters
-- filter1 include databaseId = 6 .. **Change your database ID *** HERE !!
EXEC sp_trace_setfilter @TraceID, 3, 1, 0, 6
-- filter2 exclude application SQL Profiler
EXEC sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'
-- Start the trace
EXEC sp_trace_setstatus @TraceID, 1
-- display trace id for future references
SELECT TraceID=@TraceID
GOTO finish
-- error trap
error:
SELECT ErrorCode=@rc
-- exit
finish:
GO
Run Code Online (Sandbox Code Playgroud)
-- 查找跟踪 ID
SELECT * FROM :: fn_trace_getinfo(default)
Run Code Online (Sandbox Code Playgroud)
--- 停止跟踪
sp_trace_setstatus traceid, 0 --- here 0 is the trace ID which we got from above query
Run Code Online (Sandbox Code Playgroud)
--将跟踪文件加载到sql server中的新表中
SELECT * INTO sqlTableToLoad
FROM ::fn_trace_gettable('C:\SQLTrace\trace.trc', DEFAULT)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16618 次 |
| 最近记录: |