我有一个带有Python的web应用程序,它正在读取/写入Oracle数据库。空气污染指数的设计方式如下:
Oracle (SQLAlchemy)
运行选择,我们只有3-5个用户同时测试应用程序,但最终我们预计总并发使用不会超过30-40个用户。
因此,这里的问题是DB性能是非常不一致的,例如从表A中删除一条记录可能需要1秒,有时从表A中删除一条记录可能需要8秒。从我的研究来看,Oracle似乎不使用任何表级别的锁,只使用行级别的锁,因此读和写不应该相互冲突,因此不应该是并发问题。我也不确定使用多个连接或连接池是否会提高性能。因此,总之,我正在寻找方法,我可以排除这一点,以找出为什么会有这样的性能差异?
发布于 2020-05-12 07:19:16
如果您有时间和一些DBA技能,请尝试安装和配置Statspack (不需要额外的许可),获取管理主机并发布Statspack报告以获得详细的实例活动报告。Statspack记录在$ORACLE_HOME/rdbms/admin/spdoc.txt中。
如果不尝试使用lab128免费版本几天:它有一些非常好的特性来分析数据库活动,包括一种Statspack :您不需要在数据库端安装任何东西。
您还可以尝试使用SQL (免费的Oracle工具):它有一些用于性能分析的有限特性(实例查看器),但是要小心:高级特性的使用可能会触发其他许可选项的使用。
(我假设您没有使用AWR的许可证,但是如果您有,只需使用AWR报告即可)。
如果甲骨文在Linux上运行,您可以尝试安装护城河,这是一种轻型工具,可以为数据库会话提供“top”类工具:https://github.com/oracle-developer/moats。
https://stackoverflow.com/questions/61745783
复制相似问题