测量Oracle DB连接带宽

时间:2013-10-15 07:03:20

标签: oracle perl dbi bandwidth performance

我正在寻找有关测量现有Oracle数据库连接(perl DBI)带宽的想法,而无需对数据库服务器端进行任何更改。现在我正在运行

select * from table;

针对具有大致已知数据量的表并对响应进行计时。我正在从shell手动运行它,我正在考虑在应用程序的管理/调试部分实现类似的功能,供管理员查看。具体来说,我正在考虑首先运行准备然后运行执行,同时使用Time :: HiRes计时性能。

问题:

  1. 是否有更好的SQL语句用于基准测试?也许某些查询可以动态生成特定数量的无意义数据,就像dd if=/dev/zero bs=1k count=1k
  2. 一样
  3. 有人会想到另一种测量可能与Web UI集成的带宽的方法吗?非交互式shell命令可以正常工作。
  4. 一点背景。我的应用程序是通过内部网络访问Oracle DB。网络存在带宽问题。在糟糕的一天,它就像拨号一样糟糕。 实施环境是RHEL / Oracle Instantclient / Perl DBI。

1 个答案:

答案 0 :(得分:1)

您可以尝试在位于循环中的Oracle服务器上运行一个小脚本,从指定端口读取(使用netcat)并将数据丢弃到/ dev / null。然后在客户端上有一个脚本,它不时地发送已知的数据量(使用netcat)并计算所需的时间。这几乎衡量网络性能,独立于Oracle或磁盘。

这样的事情:

在Oracle Server上

while /bin/true
do
    nc -l 20000 > /dev/null
done

在客户端

time dd if=/dev/zero bs=1024k count=10 | nc <oracle_ip> 20000