The Oracle multithreaded server (MTS, later renamed "shared servers") was developed in the days of Oracle7 when
- RAM was expensive and
- RAM region sizes were severely limited by 32-bit technology.
Nevertheless, the MTS is still needed for Java connections and shared_servers=1 is default because internal Java (and others) require a shared server to access the database.
Oracle shared servers are also inappropriate for ERP packages that spawn and hold database connections within the application server layer.
There are also limitations to using the MTS. The Oracle 10g documentation indicates that session migration for BFILE datatypes in shared server (multithreaded server) mode is not supported.