C# 获取 SQL 查询返回的数据大小

标签 c# database oracle10g metrics

执行查询时如何获取从数据库返回的数据大小(以字节为单位)?这样做的原因是使用两种不同的技术来比较数据库服务器上的负载。我们正在运行从同一数据集构建的报告,该数据集将为每个报告加载整个数据集。现在我们正在缓存数据集并从缓存运行报告。我们为每个客户端运行报告,一些数据集比其他数据集大得多,我需要某种方法来为数据库服务器负载减少提供可衡量的指标。

我尝试通过 DbConnection、DbDataReader 和 DbCommand 查找任何现有功能,但无法找到它。如果可能的话,测量给定连接或读取器的数据吞吐量会很棒,但任何解决方案都是可以接受的。是否有一个数据库服务器代理可以用来测量它?

数据库是Oracle 10g。

最佳答案

一种可能性是简单地使用网络嗅探器。 Wireshark非常好。通过连接进行测量会很棘手(当在给定计算机上使用多个连接时),但您可以使用它来测量进出客户端计算机的所有流量。这样做的好处之一是,它还可以测量传出请求,这些请求在您的情况(报告生成)中应该很小,但仍然是总体负载的一部分。

以这种方式衡量的另一个好处是,它可以发现所发出的请求大小的差异(如果有的话)。例如,如果一种方法导致在单独的请求中从服务器读取单个记录,而另一种方法导致在一个请求中读取“一批”记录,那么您将能够看到这些差异。本例中的两种方法可能会显示 DbDataReader 级别的总数据相同,但第一种方法会导致网络流量显着增加。

Wireshark 显示了许多对此有用的统计信息。它可以给出数据包总数、数据包平均大小、总大小、每秒平均字节数等。

关于C# 获取 SQL 查询返回的数据大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2365703/

相关文章:

asp.net - 如何使用ms访问数据库制作简单的ASP.net登录表单

带有德语单词及其文章的数据库

javascript - Firestore NoSql 数据库结构(作为 n 叉树)

oracle - 生成数

oracle - oracle内部加密

配置 WEBUTIL 后 Oracle Form 卡住

c# - Web 自动化鼠标点击

c# - 如果大于 C#

c# - 如何使用 Oauth 在 mvc C# 中从 Gmail 导入联系人列表?

c# - 如何统计数据库中的公共(public)字段?