标签: profiler

在按不同表中的列排序时避免使用临时表

所以我在这里有这个 MySQL InnoDB 查询:

SELECT s.vid, s.body, s.timestamp, COUNT(v.id) AS votecnt
FROM stories s
LEFT JOIN votes v ON s.vid = v.vid
WHERE s.lv = 1
AND s.status = 1
GROUP BY s.vid
ORDER BY votecnt DESC
Run Code Online (Sandbox Code Playgroud)

分析显示,运行此查询所需时间的 93% 以上需要复制到结果临时表,以便通过votecnt 进一步排序。可以做些什么来使其更快?

解释输出:

| 1 | 简单 | | 参考 | 最新 | 最新 | 2 | 常量,常量 | 19873 | 使用哪里;使用临时;使用文件排序 |

| 1 | 简单 | v | 参考 | 投票 | 投票 | 4 | sikna_ci.s.vid | 1 …

mysql optimization profiler temporary-tables

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

SQL Server Profiler 是否可用于 SQL Server 2008 Dev Edition?

我只是从带有高级服务的 SQL Server 2008 Express 升级到开发版。我想知道开发版是否可以使用 SQL Profiler?

如果存在,请告诉我如何访问它。

sql-server-2008 sql-server profiler

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

SQL Server:如何以有限的权限读取服务器端跟踪?

我正在尝试在远程服务器上设置跟踪。我能够通过 sql server 生成跟踪、设置过滤器,甚至停止和删除跟踪,而不会出现问题。但是,使用 sp_trace_create 创建的文件似乎归 SQL 服务所有,我没有授予自己读取访问权限的管理权限。

  • trace_files_publicSQL Server 2008 R2是否有类似于 Oracle 的东西?

“有一个未公开的参数 _trace_files_public,如果设置为 true,则会在创建跟踪文件时更改 user_dump_dest 目录中的文件权限,以允许所有人读取它们。” (http://www.petefinnigan.com/ramblings/how_to_set_trace.htm)

  • 有没有办法通过 SMSS 查看内容(因为我似乎在那里有足够的权限,如果不是文件本身?)

  • 还有什么我没有考虑过的更好的东西?

对不起,如果我的术语很粗糙——整个 dba 的事情对我来说都是新的。

提前致谢!我的系统管理员不会被窃听以设置权限(再次)。

sql-server-2008 profiler

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

如何分析一组 SQL Profiler 生成的滚动跟踪文件?

我正在尝试诊断生产 SQL Server 实例的问题。我已经要求 DBA 提供跟踪并获得了一组 SQL 跟踪文件(准确地说是 1185 个文件)。

当我打开第一个文件时,SQL Profiler 检测到其他跟踪文件的存在并提示我逐个加载- 这种方法不能扩展到 1185 个文件。

最终,我想要的是将所有跟踪数据导入 SQL 服务器,以便我可以查询它。

你能推荐一种方法或工具来让我做到这一点吗?

profiler sql-server-2008-r2

6
推荐指数
2
解决办法
2048
查看次数

在分析 LOAD DATA INFILE 语句的 mysql 中,“系统锁”是什么意思?

使用 LOAD DATA INFILE 插入到 innodb 的 2M 行需要 7.5 分钟,分析显示 99% 的时间在“系统锁定”中

这能告诉我什么有用吗?

   mysql> set profiling=1;
   Query OK, 0 rows affected (0.00 sec)

   mysql> LOAD DATA CONCURRENT LOCAL INFILE '/tmp/item' REPLACE INTO TABLE item_load;
   Query OK, 1964807 rows affected, 8 warnings (7 min 27.35 sec)
   Records: 1964806  Deleted: 1  Skipped: 0  Warnings: 8

   mysql> show profile for query 1;
   +------------------------------+------------+
   | Status                       | Duration   |
   +------------------------------+------------+
   | starting                     |   0.000206 |
   | checking permissions         |   0.000015 | …
Run Code Online (Sandbox Code Playgroud)

mysql innodb profiler

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

在没有值的 SQL Profiler 中插入 BULK

我启动了 SQL Profiler 来捕捉服务器上正在执行的操作,其中我发现了一行说明:

SQL BatchStarting: insert bulk table_name <column_list>
Run Code Online (Sandbox Code Playgroud)

但没有价值观?

如何查看应用程序接受的数据库?

sql-server profiler

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

SQL Profiler 中显示的二进制数据列是否包含有用的信息?

SQL Profiler 捕获的许多事件都包含一个二进制数据列。这些事件类的文档只是重复了这一事实,即该列包含“依赖于跟踪中捕获的事件类的二进制值”。

我对RPC:StartingRPC:Completed事件特别感兴趣;我注意到,无论何时执行相同的查询,每个事件的二进制数据都是相同的,尽管开始和完成事件具有不同的二进制数据。但是其他事件也会在此处显示我对解码感兴趣的信息。当然,这假设数据甚至相关或有意义。

这些字段的内容是否记录在任何地方,对开发人员/管理员是否有意义?

sql-server profiler

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

SQL Profiler - 插入值?

我设置了一个 SQL 分析器来运行,但我没有看到任何更新/插入值。有没有办法看到他们?

我看到的都是这样的:

insert into some_tbl(id, col1, col2, col3) values ( @P0 , @P1 , @P2 )
Run Code Online (Sandbox Code Playgroud)

我很想真正看到插入的值而不仅仅是一个通用变量,但似乎无法弄清楚?

profiler sql-server-2012

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

如何找到执行事件的存储过程?

我有一个问题,某个存储过程偶尔会消失,我需要找出哪个脚本删除了它。我发现这段代码给出了与删除这个存储过程相关的事件。

DECLARE @path NVARCHAR(260);

SELECT 
@path = REVERSE(SUBSTRING(REVERSE([path]), 
CHARINDEX(CHAR(92), REVERSE([path])), 260)) + N'log.trc'
FROM    sys.traces
WHERE   is_default = 1;

SELECT 
  LoginName,
  HostName,
  StartTime,
  ObjectName,
  TextData
FROM sys.fn_trace_gettable(@path, DEFAULT)
WHERE EventClass = 47    -- Object:Deleted
AND EventSubClass = 1
AND ObjectName like N'%usp_GetPendingConfiguration%'
ORDER BY StartTime DESC;
Run Code Online (Sandbox Code Playgroud)

有没有办法可以找到哪个存储过程或事件删除了这个存储过程?请指教。

sql-server-2008 stored-procedures profiler extended-events trace

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

跟踪事务回滚

我有一个非常繁忙的数据库,我被要求寻找回滚的事务。

我使用 SQL Server Profiler 来监视TM: RollbackTran Completed 事件,这表明每分钟都会发生几十个这样的事件,但它没有给我任何关于正在回滚的事务、回滚影响的对象的任何指示,或者回滚发生的原因。简而言之,它的用途似乎非常有限。

例如,如果我还尝试进行监控,以便为SQL:StmtStarting回滚提供一些上下文,那么在这个繁忙的环境中只会有太多噪音,无法识别哪个语句负责回滚。

我也试过运行语句

SELECT *
FROM fn_dblog (NULL, NULL)
WHERE Operation = 'LOP_ABORT_XACT';
Run Code Online (Sandbox Code Playgroud)

但这并没有返回任何结果(考虑到 SQL Profiler 报告的回滚次数,这似乎很奇怪)。

有什么方法可以生成显示已回滚事务的报告?

蒂亚!

profiler sql-server-2008-r2 rollback

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