최근 우리는 지금까지 알고있는 1 개의 쿼리에서 Oracle 데이터베이스를 잠그는 데 문제가있었습니다.
나는 무슨 일이 일어나고 있는지에 대한 분석을 제공 할 것이지만 실제로 내 질문과 관련이 많지 않지만 제안에 개방적입니다.
간헐적으로 언제 발생하는지 알지 못하고 지난 달에 4 번 발생했으며 사용자는 응용 프로그램에서 무언가를 클릭합니다. 사용자가 클릭 한 내용을 여전히 알 수 없습니다. 무엇이든 클릭하면 약 700k 행을 생성하는 데이터베이스에서 쿼리가 실행됩니다.
쿼리가 실행되는 테이블을 확인했으며 인덱스가 좋아 보입니다.
데이터베이스는 60GB이며 서버에는 32GB가 있습니다.
데이터베이스 서버의 로그에서 높은 I / O가 표시되지만 CPU와 RAM은 동일하게 유지됩니다.
하나의 응용 프로그램 서버 인 CPU는 약 75 %까지 올라갑니다. 작업자 프로세스를 찾고 PID를 찾을 수 있지만 작업자 프로세스와 관련된 PID를 종료하면 CPU가 잠깐 동안 내려간 다음 다시 위로 이동합니다.
또한 응용 프로그램 풀을 재활용하고 IIS를 다시 시작해도 CPU가 잠시 중단 된 다음 바로 백업됩니다.
서버를 온라인 상태로 되돌릴 수있는 유일한 방법은 재시작입니다.
따라서이 쿼리가 데이터베이스를 캐시하고 메모리가 부족하도록 상자에서 메모리를 늘릴 수있는 이유입니다. 나는 이것을 한 번 들었지만 그것이 사실인지 확실하지 않습니다.
스토리지는 3 계층의 HP PAR 3이며 데이터베이스는 SSD 계층에 거의 있습니다.
더 빠른 SSD 또는 메모리