I want to confirm my understanding. When a stored procedure is called the first time the code's compiled version is cached and used next time it is executed. However it is cached once for every session and not globally for all sessions. In other words, if we have a large number of concurrent sessions (x num of sessions) executing the same procedures (y num of procedures), the memory pressure will be x * y. The reason why I am asking this is that the application we are moving from Oracle is heavy on stored procedures with some packages running into 8000-10000 lines of code.