Your job is safe for now. We have seen a number of similar problems. Programmers sitting at a member record do an obtain owner, thinking there are owner pointers. In a test environment, with a small set the problem goes undetected. In production, with a long set CA-IDMS walks all the members back to the owners.
Run times are excesive and everyone thinks it's just a volume problem.
Index sets need to be re-built on a periodical basis. If you miss one performance really suffers. With your database design you thought you would get about 250 records per page. Maybe your performance problems are just volume related. Performance issues can be due to either database design, programming, or volume.