如何获取 SQL Server 中 INSERT、UPDATE、DELETE、SELECT 语句的速率?

Posted

技术标签:

【中文标题】如何获取 SQL Server 中 INSERT、UPDATE、DELETE、SELECT 语句的速率?【英文标题】:How to get the rate of INSERT, UPDATE, DELETE, SELECT statements in SQL Server? 【发布时间】:2018-03-15 18:52:45 【问题描述】:

我想知道 SQL Server 中INSERT, UPDATE, DELETE and SELECT 语句的速率。例如,每秒 100 次插入。这可能吗?我搜索了 SQL Server 相关的性能计数器,没有发现任何有趣的东西。希望有人能指出我正确的方向。提前致谢。

编辑

我正在使用 SQL Server 执行一些监视任务。我的 mysql DBA 同事似乎可以很容易地从 MySQL 中获取这些数据。我被要求提供相同的数据,但用于 SQL Server。基本上我在问一种方法来获取在最后一秒、分钟等发生的 INSERT 数量。它是实例级别的指标,是所有数据库的所有 INSERT 的总和。

【问题讨论】:

率?你的意思是执行时间。您可以使用sql profile来收集语句和时间 每个 INSERT、UPDATE、DELETE 和 SELECT 语句都会有所不同。您所能做的就是根据真实的数据样本尝试它们以获得一个想法。 这是一个 DBA 问题;不是编程问题。 这甚至不是一个真正的问题。对此无法提供答案。每分钟允许的语句数量不是固定的。 【参考方案1】:

这个问题确实没有单一的答案,因为 INSERT 的速率会根据插入的表以及插入数据的行的宽度(以字节为单位)而有很大差异。

例如,包含 xml、images、varchar(max)'s、Unicode 字符串(如 nchar 和 nvarchar)或文件流的大列的表将比包含几个 int 和 varchar 列的表花费更长的时间.

所以要么给我们一个你要插入的具体表模式,要么答案是一个可靠的“它取决于”。

【讨论】:

以上是关于如何获取 SQL Server 中 INSERT、UPDATE、DELETE、SELECT 语句的速率?的主要内容,如果未能解决你的问题,请参考以下文章

sql server中获取date类的年月日(如何取中间的月分)

SQL Server - 在模式中触发AFTER INSERT表

在 SQL Server CE 和 C# 中获取新插入行的主键?

sql server 中如何插入一条时间记录

如何将csv文件导入到BUIK INSERT以外的sql server表中

如何使用 insert 语句将数百万不同 RDBMS 的数据插入 SQL Server 数据库?