最近,我们的oracle数据库在锁定到目前为止我们所知道的1个查询时一直遇到问题。
我将对发生的事情进行细分,但实际上与我的问题没有太大关系,但我愿意提出建议。
过去一个月中,用户断断续续地不知道何时会发生,会在应用程序中单击某些内容。用户单击的内容仍然未知。无论单击什么,它将在数据库上运行查询,该查询将生成约700k行。
我检查了查询所针对的表,索引看起来不错。
数据库为60GB,服务器上为32GB。
从数据库服务器上的日志中,我看到I / O很高,但是CPU和RAM保持不变。
一台应用程序服务器,CPU达到大约75%。我可以找到工作进程,找到PID,但是当我杀死与工作进程相关的PID时,CPU将短暂关闭然后再向上运行。
同样,回收应用程序池,然后重新启动IIS也是一样,CPU将短暂关闭然后再重新启动。
要使服务器恢复正常运行,唯一可以做的就是重新启动。
因此,如果此查询是导致锁定的原因,我的建议是,可以在盒子上增加内存以允许数据库被缓存并耗尽内存。我曾经听过一次,但我不确定这是否属实。
该存储是具有3层的HP PAR 3,数据库几乎位于SSD层中。
SSD或内存哪个更快