问题标签 [sql-trace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
126 浏览

sql - 用户定义的表类型插入导致转换错误

不是用户定义的表类型插入的重复,有时会导致转换错误

我有一个用户定义的表类型:

DateCreated 字段填充在我的数据库层中DateTime.Now(),,而所有其他字段都来自导入的表。

当我导入填充了日期字段的文件时,出现 SQL 错误:

从字符串转换日期和/或时间时转换失败。

使用 SQL Profiler 拦截生成的代码显示了这一点:

impSaveImport 是一个存储过程,它只有一个参数:表类型 var 并直接插入表 [Import]。没有逻辑,没有触发器,没有对其他表的引用。

在 SSMS 中执行此代码显示与预期相同的错误。
修剪最后一个 DateTime 字段的最后 4 位数字会导致插入查询成功。

到现在为止还挺好。

当我导入一个 StartDate 和 EndDate 字段为空的文件时,我没有收到任何错误,并且数据已成功插入到 Import 表中。

当我使用探查器拦截成功的插入时,我得到了这个:

请记住,此查询成功地将一行插入到表 Import 中。

当我在 SSMS 中运行这个最新查询时,我得到与以前相同的转换错误,

但它在我的 MVC 应用程序中运行没有错误!

最后一部分让我难住了。

怎么可能?

项目正在使用带有 SQL2016 的 MVC。

0 投票
1 回答
130 浏览

sql-server - SQL Server 跟踪未捕获所有审核添加数据库用户事件

在 SQL Server Audit Add DB User Event Class中,定义了四个Event Sub Classes

  1. 添加
  2. 降低
  3. 授予数据库访问权限
  4. 撤销数据库访问

(在这里找到 MS 文档)

当我设置 SQL Server Profiler 来跟踪 Audit Add DB User Event Class 时,它似乎只捕获具有 3 或 4 子类的事件,而不是 1 或 2。

为了测试跟踪,我使用了以下 SQL 语句:

当我在 SQL Server Management Studio 中运行这些语句时,SQL Server Profiler 显示两个审核添加数据库用户事件,一个带有 EventSubClass 3(授予数据库访问权限),一个带有 EventSubClass 4(撤销数据库访问权限),但没有显示 EventSubClass 1 的任何内容(添加)或 EventSubClass 2(删除)。

据我所知,上面使用的 SQL 语句应该涵盖所有三个偶数子类。为了捕获这些事件子类,是否需要配置一些额外的东西?

0 投票
1 回答
47 浏览

sql-server - SQL Server Profiler 与 COALESCE (SP:STMTCOMPLETED)

我正在运行跟踪并发现了一些我不明白的东西。我有一个带有简单选择语句的过程,该语句从一系列函数调用中返回第一个非空值。

我希望每个函数只被调用一次。因此,在使用 SP:STMTCOMPLETED 事件进行分析时,我希望只看到一组记录,其中包含来自该调用的语句。

但是,我看到的是该组记录多次,这表明该函数被多次调用。

该函数真的被调用了两次吗?为什么?

这是创建函数和存储过程的脚本:

这是过程调用

下面是 Profiler 的输出,其中两行表示函数 FOO,一行表示过程 POO:

在此处输入图像描述

如果我用这样的 CASE 语句替换 COALESCE 调用:

我在分析器上只得到一行 FOO :

在此处输入图像描述

这是 SQL Profiler 生成的分析脚本(按数据库名称过滤 = dbTest):

0 投票
0 回答
52 浏览

sql-server - SQL Server:ServerRestart 或 Start 上的 DefaultJob

我想帮助我们的 IT 部门创建一个 DefaultJob,它会在每次服务器重新启动或启动时自行执行(Windows SQL Server 2012)

在服务器重新启动或启动后(硬关机或更新后),有一个跟踪总是会激活自己。

基本上我想通过 DefaultJob(SQL Server 代理中的作业)自动执行以下查询(停用 ID 为 1 的跟踪):

在执行之前,我想检查 ID 为 1 的跟踪是否处于活动状态,如果是,则执行查询,如果不是,则不执行任何操作。

任何帮助将非常感激。

如果你们有问题,请问... :-)

提前非常感谢。干杯!

0 投票
0 回答
23 浏览

sql-server - 为什么 SQL Server Trace 中一个任务的结束时间和下一个任务的开始时间之间有延迟

当使用基本相同的数据运行相同的查询时,我们看到生产中的性能与 QA 相比要慢得多。我们已经为 QA 和生产运行了 DBA 跟踪。跟踪不显示任何查询的任何问题。但是,我注意到在生产跟踪中大多数任务的结束和下一个任务的开始之间有 0.033 的延迟。我在 QA 跟踪中没有看到同样的延迟。什么可能导致生产延迟?在服务器上可以做些什么来减少任务结束和开始之间的延迟时间?这会导致用户显着延迟 - 最多 50 秒。谢谢。

以下是生产跟踪的摘录。请注意大多数任务的开始和结束时间之间的 .033 延迟

以下是生产跟踪的摘录

以下是 QA 跟踪的摘录。开始时间和结束时间之间没有 .033 的延迟

在此处输入图像描述

0 投票
1 回答
42 浏览

db2 - 在 DB2 中以用户身份执行

我们正在尝试调试一个使用 DB2 的非常古老的 Web 应用程序。

我想运行跟踪以查看单击按钮时会发生什么,但是一旦尝试,我就会收到此错误:

在此处输入图像描述

对我来说很明显,我们的用户没有足够的权限来运行跟踪。

在 T-SQL 中有一种方法可以模拟另一个用户:

我想知道 DB2 中是否有相同的命令。

目标是尝试运行类似SQL Server ProfilerforDB2并嗅探查询。

是的,我已经尝试运行GRANT DBADM ON DATABASE TO USER E.....O了,当然系统回复了:

我们被卡住了,无法移动,因为我们不知道查询是如何工作的。向我们的用户要求更多特权不是一种选择,因为我们正在将客户从竞争对手迁移到我们这边。

我正在尝试做的是一种privilege escalation不犯罪。

我还教过如何从 SQL Server 连接到 DB2 数据库并使用PolyBase,但据我所知,这样的功能只允许我查询,我无法嗅探参数。

0 投票
0 回答
10 浏览

s4hana - SAP - SQL-Trace - ST05 在 S/4HANA 系统中显示 FLAG=N"X"

我们正在比较经典 R/3 和 S/4 系统之间的性能,从标准功能模块中进行的简单选择(例如从 IDoc 表中选择记录)在 S/4 中看起来不同。

最有趣的是那些:

  • S/4 带来的性能低于 R/3(在 db 表中存储相同数量的记录)
  • 当我们看到(在这种情况下是在FOR ALL ENTRIESAKA FAE 中)WHERE STATUS = 69FLAG ="X"在 R/3 内部时,我们会看到它以 N 为前缀,例如FLAG = N"X"...。

我假设,这代表否定,但代码清楚地说明了 EQUALS。而且由于与 S/4 相比性能非常差,我假设 S/4 有时无法处理 FAE,副作用之一是否定 FAE 相关源字段上的 where 子句-桌子...

N代表什么?