我有一个SQL跟踪设置来监视发布到单个数据库的所有TSQL.但是我只关心发布的'DELETE'TSQL语句.有什么方法可以过滤到仅向分析器报告这些类型的语句?谢谢!
我有一个用C#编写的应用程序,它使用Linq2SQL与SQL Server进行通信.有些查询运行有点(非常)慢,我认为它可能需要一些索引来加快速度.
但我真的不知道该怎么做,或者我应该或不应该做什么,哪里或什么.所以我想我可以在这里问一下,但后来我发现了一个名为Database Engine Tuning Advisor的程序,我认为我可以先尝试一下.问题是我无法让它发挥作用.可能是我只是不知道怎么做,但我真的无法弄清楚这一点.据我所知,我根据帮助文件做了我应该做的事情.
到目前为止我觉得事情还不错.但是当它在一段时间后结束时,我得到了这个:
进展http://i39.tinypic.com/1235avd.jpg
还有一个完全有用的推荐页面.事件没有引用任何表格?这意味着什么(除了明显的当然:p)?我在这里误解了这个过程吗?到底是怎么回事?
我有一个带int输出参数的存储过程.如果我运行SQL Server Profiler,通过一些.Net代码执行存储过程,并捕获RPC:Completed事件,TextData如下所示:
declare @p1 int
set @p1=13
exec spStoredProcedure @OutParam=@p1 output
select @p1
Run Code Online (Sandbox Code Playgroud)
为什么在执行存储过程之前它看起来像是获取输出参数的值?
我有一个存储过程,我们称之为'MyStoredProc',每隔几秒就调用一次.
我想过滤它,因为它使视图混乱.
proc被称为 exec sp_executesql N'Exec @Return = [dbo].[MyStoredProc]....
我已经Not Like在TextData列上有两个过滤器,适用于其他文本.然而,第三个不起作用.电话仍在显示.
我输入了不同的变体:%[MyStoredProc]%或%MyStoredProc%或MyStoredProc.
它们不起作用.
这个的正确语法是什么?TextData过滤器也可以处理变量名吗?
我正在使用Profiler 2014定位2012引擎.
在我的应用程序中,我使用ASP.NET身份.每件事都很好但通过测试,我发现以下命令产生了许多数据库访问:SignInManager.PasswordSignInAsync:
var result = await SignInManager.PasswordSignInAsync(user.UserName, model.Password, model.RememberMe, shouldLockout: true);
Run Code Online (Sandbox Code Playgroud)
我在使用性能测试测试应用程序时发现了这个问题.测试表明登录请求需要很长时间才能获得响应.下图显示了登录请求的性能测试结果:
.
然后我使用SQL Server Profiler来检查执行命令SignInManager.PasswordSignInAsync时会发生什么.它表明生成了大量的数据库访问.以下内容取自SQL Server Profiler:
exec sp_executesql N'SELECT TOP (1)
[Extent1].[Id] AS [Id],
[Extent1].[UserFullName] AS [UserFullName],
[Extent1].[UserId] AS [UserId],
[Extent1].[Online] AS [Online],
[Extent1].[LastOnlineDate] AS [LastOnlineDate],
[Extent1].[BrithDate] AS [BrithDate],
[Extent1].[Job] AS [Job],
[Extent1].[Gender] AS [Gender],
[Extent1].[CountryId] AS [CountryId],
[Extent1].[LivesIn] AS [LivesIn],
[Extent1].[RelationId] AS [RelationId],
[Extent1].[Religion] AS [Religion],
[Extent1].[FirstSchool] AS [FirstSchool],
[Extent1].[SecondSchool] AS [SecondSchool],
[Extent1].[University] AS [University],
[Extent1].[ContactInfo] AS [ContactInfo],
[Extent1].[Email] AS [Email],
[Extent1].[EmailConfirmed] AS [EmailConfirmed],
[Extent1].[PasswordHash] AS [PasswordHash],
[Extent1].[SecurityStamp] …Run Code Online (Sandbox Code Playgroud) sql-server asp.net asp.net-mvc sql-server-profiler asp.net-identity
当我在运行我的应用程序时运行探查器时,它似乎只显示SELECT,而不是INSERT或任何更改数据库的东西.然而我的数据库正在更新,因此必须执行这些命令.我需要做些什么才能让它显示更新?(我正在使用实体框架,顺便说一句,如果这可能有所作为.)
是否可以将Profiler模板迁移到较新版本的SQL Server?
在我的情况下,我想把我的SQL 2008模板带到2012年.我尝试过(1)直接文件副本和(2)导出/导入.在这两种情况下,旧模板都会运行,但无法修改.修改会导致以下错误:
我有一堆自定义模板,我试图避免手工重新创建它们.虽然,我猜这是后备的立场.思考?
我一直在使用Sql Profiler捕获SQL语句并重新运行有问题的语句.很有用.
但是,有些代码使用SqlBulkCopy API,我不知道如何捕获它们.我看到临时表的创建,但没有任何填充它们.看起来像SqlBulkCopy绕过Sql Profiler或者我没有捕获正确的事件.
sql-server bulkinsert sqlbulkcopy sql-server-profiler sql-server-2012
是否有任何方法可以查看每小时,每个数据库/小时执行的查询数量,或一天中的平均查询数,或者......有趣的是什么?
仅供统计......我喜欢数字.我不能只使用Sql Server Profiler启动跟踪,因为当查询过多时,UI将崩溃.
SQL是否在某处跟踪某些基本的"已执行查询统计信息",或者我是否可以使用任何工具来获取此信息?
(我使用的是SQL Server 2008 R2)
sql statistics performancecounter sql-server-profiler sql-server-2008
我从BizTalk服务器调用存储过程并尝试调试它.
1)当外部进程调用存储过程时使用SQL调试器 2)使sp_tracegenerateevent在存储过程中工作
我一直在使用SQL Profiler作为我唯一的工具来了解发生了什么.但现在,我怀疑我的尝试/捕获是否正常工作.代码在SSMS中运行时工作正常,但是从BizTalk运行时有时看起来像try/catch一直在捕获.
ALTER PROCEDURE WhatItsName
@CatchErrors varchar(max) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT OFF;
DECLARE @debugMessage varchar(max) = ''
DECLARE @RowCreateBy VARCHAR (100)
SET @RowCreateBy = '108004'
BEGIN TRY
SET @RowCreateBy = '108005'
END TRY
BEGIN CATCH
SET @debugMessage = 'set @RowCreatedBy Failed - how can this be ??? '
END CATCH
etc...
Run Code Online (Sandbox Code Playgroud)
基于我们在上面的探查器中看到的,我的try/catch是否按预期工作?
现在,当我从SSMS运行相同的存储过程时,就像"正常"一样.
BizTalk在DTC交易下运行所有内容.请注意,"BEGIN TRY"和"END TRY"语句显示在SSMS下的第二个配置文件中(并且"BEGIN CATCH"未按预期触发),并且它们不会显示在上面的第一个配置文件中(其中包含sproc)从BizTalk执行).
然后我在SSMS中的测试脚本中添加了"BEGIN DISTRIBUTED TRANSACTION",与上面的其他SSMS测试结果相同.
注意:我注意到这个模式有一个更复杂的问题,并希望简化它以便发布在这里.
sql-server ×8
sql ×2
asp.net ×1
asp.net-mvc ×1
bulkinsert ×1
c# ×1
linq-to-sql ×1
performance ×1
sqlbulkcopy ×1
statistics ×1