背景:
我在一家公司工作,有两个部门使用相同的主数据库。一个部门的申请由我的团队开发,而另一个部门则外包。此应用程序是基于Windows的应用程序,并且多个用户同时在系统上工作。
现在由于主数据库的极端负载而导致很多冲突,我们没有足够的统计数据来讨论。
现在我想知道,从其他应用程序中触发了多少查询。他们的源代码不适用于我们。
我可以设置任何简单的工具或日志工具,然后开始计算从该服务器发出的查询数。
感谢。
P.S:我知道存在一个类似的问题,但它适用于mysql,并没有帮助解决我的问题。 “How can i know how many queries are fired in my database?”答案 0 :(得分:1)
您只需使用SQL Server Profiler即可获取此类信息。长时间运行它是不切实际的,但如果你知道问题何时发生,你可以这样监控它。您可以保存输出并稍后进行分析。
您可以使用一些商用工具记录数据库中的所有活动。其中一些非常好,可以让您详细分析信息。
答案 1 :(得分:0)
以下查询将为您提供在服务器上触发的所有查询,其中包含触发它的特定数据库名称......
**********************************************************
select db_name(sql_text.dbid) as [Database],
case db_id()
when sql_text.dbid then object_name(sql_text.objectid)
else cast(sql_text.objectid as sysname) end as [Object],
sql_text.text as [AllTSQL],
dbo.GetTSQLFragment(
sql_text.text,
statement_start_offset,
statement_end_offset) as [FragmentTSQL]
from sys.dm_exec_query_stats stats
cross apply sys.dm_exec_sql_text(sql_handle) as sql_text
***************************************************************
如果有效,请告知