标签: profiler

什么击中了你的数据库?

有什么快速的方法可以找出正在访问您的数据库的内容,尤其是当日志文件变得疯狂时。SQL探查器?如果是这样,如何?

sql-server-2005 profiler

3
推荐指数
1
解决办法
827
查看次数

使用 SQLOLEDB 或 MSDASQL 的一条 SQL 语句产生不同的结果

我将 VB6 与 SQLOLEDB 和 MSDASQL 一起使用。通过切换提供程序,我注意到一次查询得到了不同的结果。

我的查询检查一些服务器设置并执行两个 BACKUP 语句之一。

当我使用 SQLOLEDB 时,一切正常并且备份被创建。如果我使用的是 MSDASQL,则不会发生错误,但不会创建备份。

这是同一个服务器、同一个用户和同一个语句。

我使用过 SQL Profiler,它显示 100% 执行了相同的命令。即使我复制 MSDASQL 命令并在 SSMS 中执行它,也会创建备份,但不会使用 VB6。

我的声明:

DECLARE @s varchar(1000), @ver int
SET @ver = 10
SELECT @s = case
WHEN
@ver > 9
THEN
'BACKUP DATABASE [DB] TO DISK = ''C:\SQL Backup\Backup.dat'' WITH  COMPRESSION, NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10'
ELSE
'BACKUP DATABASE [DB] TO DISK = ''C:\SQL Backup\Backup.dat'' WITH  NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10;' …
Run Code Online (Sandbox Code Playgroud)

sql-server backup profiler t-sql

3
推荐指数
1
解决办法
349
查看次数

删除查询不删除数据

我正在运行连接到 SQL Server 2012 数据库的 Web 服务。在短时间内(大约 5 秒)内执行多个删除查询时,实际执行的查询似乎是随机的。当一次运行一个或在每次执行之间放置 0.5 秒的延迟时,它们运行完美。

查看 SQL 分析器,所有查询都显示为RPC:Completed即使它们实际上并未删除表中的行。我检查了表,数据仍然存在,然后将查询从 Profiler 复制并粘贴到 SSMS 中,这影响了一行并将其删除。

所以我假设 Web 服务运行良好,问题出在它的数据库端。探查器中有没有办法查看查询是否成功?什么可能导致这实际上不影响行?

没有触发器。仅使用不同的参数运行相同的查询。只有数据通常是按顺序变化的。刚才没有其他查询在数据库上运行。

我添加了客户端站点日志记录,如果它删除该行,它实际上会返回 1,如果它不删除该行,它会返回 0。然而,即使它出现为 0,Profiler 也会显示它已经运行了查询,但似乎没有影响它。当我通过 SSMS 运行查询时,它确实会影响该行。

未收到来自 Web 服务的任何错误,并且查询通过 SSMS 运行良好。只有在快速连续多次运行时似乎不会删除。我确实同意它很可能针对不同的行,但是当它在 SSMS 中运行正常时看不到它是如何发生的。

表结构和查询

CREATE TABLE dbo.ContractDates2HumanAssets
(
    iContractDate2HumanAssetID int IDENTITY(1,1) NOT NULL,
    iContractDateID int NOT NULL,
    iHumanAssetID int NOT NULL,
    cCategory nvarchar(256) NOT NULL,
    cHR_x0020_ID nvarchar(256) NOT NULL,
    cCD_x0020_ID nvarchar(256) NOT NULL,
     CONSTRAINT PK_ContractDates2HumanAssets PRIMARY KEY CLUSTERED 
    (
        iContractDate2HumanAssetID ASC
    ) WITH (PAD_INDEX = …
Run Code Online (Sandbox Code Playgroud)

sql-server delete profiler

3
推荐指数
2
解决办法
2万
查看次数

网络 I/O 是否包含在 SQL Profiler 中看到的“RPC 完成”的计时中?

在 SQL Profiler 中查看结果时,RPC Complete 是否包括将结果发送到客户端的时间?或者只是服务器花在收集记录上的时间?

我问的原因是我正在开发一个程序来移动大量数据。数据库在 Azure 中托管在云中,代码(当前)在本地运行。我可以在 SQL Profiler 中看到 RPC 调用时间,并且选择行的查询并不便宜(由索引列过滤的海量表,然后按表的主键排序以获得分页结果),并且它不是一个微不足道的数量数据(每页 10 万条记录,在某些情况下,我每次运行最多可移动 6000 万条记录)。

我很好奇,一旦代码在 Azure 中运行,我是否应该期望它运行得更快。如果 RPC 完成时间包括将数据发送到客户端所花费的时间,那么这应该会减少一些(我希望会显着)。如果 RPC 完成时间只是服务器选择数据的时间,那么当它在 Azure 中运行时,我不会看到太多的增加。

performance sql-server profiler

3
推荐指数
1
解决办法
335
查看次数

在 SSIS 包上使用 SQL Profiler

是否可以使用 SQL Server Profiler 来跟踪正在运行的 SSIS 包?我试图这样做,但我在跟踪中看到的只是执行 dp_sqlagent_... 和其他内部命令!跟踪中没有显示包正在处理的表/脚本。

我测试了不同的跟踪模板,但没有太多锁定。你有这方面的经验吗?

谢谢你。

干杯,纳西拉

profiler ssis

2
推荐指数
1
解决办法
6175
查看次数

使用阻塞进程报告诊断阻塞问题

我有一个应用程序由于超时而关闭。在这些时间里,我们看到保存 ASP 会话状态的数据库的响应时间大幅增加。

为了诊断问题,我使用SP_CONFIGURE'blocked process threshold',15并运行跟踪以捕获任何触发的事件。在下一个事件期间,跟踪捕获会话状态数据库中的一些阻塞事件。

我已经确定了主要拦截器,可以看到它已暂停并等待。

<blocked-process-report>
    <blocked-process>
        <process id="process53fb4c8" 
                 taskpriority="0" logused="0" 
                 waitresource="KEY: 10:72057594039238656 (594b17b7493c)" waittime="20631"
                 ownerId="9710782702" transactionname="UPDATE" 
                 lasttranstarted="2013-06-27T17:29:38.130" XDES="0xc429df950" lockMode="U" 
                 schedulerid="14" kpid="6912" status="suspended" spid="359" sbid="0" ecid="0" 
                 priority="0" trancount="2" lastbatchstarted="2013-06-27T17:29:38.130"
                 lastbatchcompleted="2013-06-27T17:29:38.107" 
                 clientapp=".Net SqlClient Data Provider" hostname="WEB03" hostpid="7520" 
                 loginname="State" isolationlevel="read committed (2)" xactid="9710782702" 
                 currentdb="10" lockTimeout="4294967295" 
                 clientoption1="536870944" clientoption2="128056">
            <executionStack>
                <frame line="18" stmtstart="1114" stmtend="4494" 
                       sqlhandle="0x03000a00210f020741a1be0058a000000100000000000000"/>
            </executionStack>
            <inputbuf>
                Proc [Database Id = 10 Object Id = 117575457]
            </inputbuf>
        </process>
    </blocked-process>
    <blocking-process>
        <process status="suspended" waittime="1046" spid="217" sbid="0" ecid="0" 
                 priority="0" trancount="1" lastbatchstarted="2013-06-27T17:29:29.113" 
                 lastbatchcompleted="2013-06-27T17:29:29.010" …
Run Code Online (Sandbox Code Playgroud)

sql-server profiler locking session

2
推荐指数
1
解决办法
5232
查看次数

SQL Profiler 中的“读取”列是否与 IOPS 相同?

我刚刚执行了一个非常快的查询,SQL Profiler 说它使用了 30.000 次读取。现在我正在查看此页面:https : //cloud.google.com/compute/docs/disks/performance并看到标准永久性磁盘具有 3000 次读取 IOPS。

这是否意味着我的查询在那里运行时需要 10 秒?或者SQL readsread IOPS意味着完全不同的事情?

sql-server profiler

2
推荐指数
1
解决办法
4831
查看次数

SQL Server 2008:高 CPU 历史查询

我们有一个带有 15 个数据库的 SQL Server。这被每个数据库中的许多用户同时使用。最近,我们开始从该服务器收到高 CPU 警报。当警报出现时,我可以跟踪到确切的用户和查询。

我们无法在此服务器上打开 SQL Server Profiler。我想知道我们是否可以使用任何脚本获取有关在任何数据库(导致高 CPU)中运行的历史昂贵查询的信息。例如 - 我需要过去 4 小时内最昂贵的查询以及数据库名称和用户名。

sql-server-2008 sql-server profiler

1
推荐指数
1
解决办法
4922
查看次数

SQL Profiler 中的“排除不包含值的行”复选框有什么作用?

我想过滤跟踪并想知道“排除不包含值的行”复选框究竟有什么作用?是过滤掉任何事件类中没有选择的所有数据列吗?

谢谢。

在此处输入图片说明

sql-server profiler

1
推荐指数
1
解决办法
675
查看次数

如何使用 SQL Profiler 捕获单个存储过程

使用 SQL Server SQL Profiler,可以使用哪些配置来监视单个存储过程?我想捕获所有EXEC sprocName以包含参数列表。我想捕获这个过程,以便我可以使用真实的参数数据对其进行负载测试。

我在新的 SQL Profiler 跟踪中尝试了以下操作:

Events Selection > Column Filters > Text Data > LIKE: 'exec sprocName%'
Events Selection > Column Filters > Text Data > LIKE: 'exec sprocName'
Run Code Online (Sandbox Code Playgroud)

上述配置均未捕获我的程序。我还尝试使用以下配置删除过程名称:

Events Selection > Column Filters > Text Data > LIKE: 'exec%'
Events Selection > Column Filters > Text Data > LIKE: 'exec'
Run Code Online (Sandbox Code Playgroud)

以上配置不捕获任何程序。

最后,我尝试在没有任何列过滤器的情况下执行相同的配置文件,我可以确认它捕获了发送到 SQL Server 的所有 SQL 查询。

我已经考虑了一种解决方法,即使用 SQL 查询或 Excel Power Query 捕获所有存储过程执行和后过滤到我感兴趣的 sproc。但是,在我想要建模的环境中执行 sproc 的频率很高,这使得这不可行。

sql-server profiler sql-server-2012

1
推荐指数
1
解决办法
3632
查看次数

无法在探查器中跟踪“将数字转换为数字数据类型的算术溢出错误”错误

我有一个 .net 应用程序。它试图创建表、视图并将数据插入/更新到许多表中。应用程序运行时出现错误。

我尝试在 SQL Profiler 中跟踪查询,但没有发现任何错误。有什么方法可以跟踪错误语句,或者我需要在探查器中添加任何其他事件。

我已经尝试过以下事件(例外):

  • RPC:已完成
  • RPC:开始
  • SP:开始
  • SP:已完成
  • SP:开始
  • SP:StmtCompleted
  • SQL:批量启动
  • SQL:批量完成

sql-server-2008 sql-server profiler

0
推荐指数
1
解决办法
318
查看次数