进度数据库性能问题?

时间:2014-11-06 11:47:48

标签: progress-4gl openedge progress-db

  

我们最近升级到OE 11.3版本。应用程序和数据库在某个特定位置似乎很慢。但我们在应用程序或数据库中没有遇到任何性能问题。我检查了几个参数promon like buffer hits,数据库缓冲区数,-spin参数。

     

缓冲命中率-97%

     

数据库缓冲区数量 - 50000

     

-spin berfore timeout-2000看起来非常低。

     
    

有没有什么方法可以找到数据库和应用程序只在那个位置非常慢的问题?

  
     

我们不会在其他地方遇到任何性能问题。

     

增加-spin值会增加该位置的性能吗?

     

位置是指地理位置。

3 个答案:

答案 0 :(得分:1)

您没有提供太多信息:

A)关于你的意图。你只是希望一切都“更快”吗?还是有其他需求 - 比如服务器内存不足/负载过重等。

B)关于您的系统。有多少用户,数据库,表格,索引等等。

C)当你说位置时 - 你的意思是什么?它是特定程序,特定查询/搜索还是特定(地理)位置?

缓冲区命中

97%的缓冲区本身并没有多说:

  • 是否有1 000条记录查询或1 000 000 000条记录?
  • “Primary Buffer hits”对单个表没有任何说明。也许所有“缓冲区未命中”都来自一个表(或很少)。

缓冲命中的简单解释:

在缓冲区(内存)中读取的记录是“命中”从磁盘读取的记录不是。

1 000 record lookups with 97% buffer hits means:
  970 records are read from buffer (memory). (0.97 x 1 000)
   30 records are read from disk. (0.03 x 1 000)
Increasing to 99% buffer hits means you will remove: 
   20 disc reads. (0.02 x 1 000)


1 000 000 000 record lookups with 97% buffer hits means: 
  970 000 000 records are read from buffer (memory). 
   30 000 000 are read from disk.
Increasing to 99% buffer hits means you will remove:
   20 000 000 disc reads.    

在第一种情况下,当从97%到99%时,你几乎不会注意到任何事情。在第二种情况下,光盘上的负载会减少很多。

<强>结论

增加-B可能会影响您的性能以及缓冲区命中率。更改-spin可能会通过利用更多CPU来影响您的性能。这一切都取决于您的系统如何工作。最好的方法是尝试(使用测试设置)。

您真正应该做的第一件事是查看您的应用程序和运行最多的查询 - 使用最佳指数吗?如果不是,你很可能在没有大的差异的情况下调整很多。阅读索引用法,XREF编译和可用于检查索引性能等的不同VST表。

这是一个很好的起点:

Top 10 (really more) Performance Tuning Tips For The Progress Database

此外,您可以尝试使用优秀的免费ProTop软件,并对-B进行一些猜测:

ProTop

答案 1 :(得分:0)

这个问题很模糊。你可以在一个可以进行“来回”的论坛中提出这个问题,并且可以引导你找到更完整的答案。

您可以尝试:

这些论坛都有专注于DBA的领域,许多人经常在这些领域提供帮助。

答案 2 :(得分:0)

我们发现添加(在Linux服务器上)-T /dev/shm带来了很大的性能提升

/oe116> cat startup.pf -T /dev/shm

您也可以将其添加到common.pf文件

您可以通过执行a(数据库运行)来查看之前和之后的内容 lsof | grep delete

然后您应该在硬盘上看到很多位置然后在添加它并重新启动数据库之后它将使用共享内存