首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle上插入/删除/选择性能的故障排除

Oracle上插入/删除/选择性能的故障排除
EN

Stack Overflow用户
提问于 2020-05-12 07:08:56
回答 1查看 45关注 0票数 0

我有一个带有Python的web应用程序,它正在读取/写入Oracle数据库。空气污染指数的设计方式如下:

Oracle (SQLAlchemy)

  • when用户仅使用一个连接对象对应用程序进行数据更改,我们从两个表中删除记录并插入新记录(删除、插入、删除、插入发生sequentially)

  • two用户不能并发删除或插入相同的键),但是,它们可以同时从同一个表中删除或插入,但同时使用不同的键(

  • ),其他用户可能正在加载其他屏幕,在这些屏幕中,我们从同一个

运行选择,我们只有3-5个用户同时测试应用程序,但最终我们预计总并发使用不会超过30-40个用户。

因此,这里的问题是DB性能是非常不一致的,例如从表A中删除一条记录可能需要1秒,有时从表A中删除一条记录可能需要8秒。从我的研究来看,Oracle似乎不使用任何表级别的锁,只使用行级别的锁,因此读和写不应该相互冲突,因此不应该是并发问题。我也不确定使用多个连接或连接池是否会提高性能。因此,总之,我正在寻找方法,我可以排除这一点,以找出为什么会有这样的性能差异?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61745783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档