Servidor Compartilhado
O servidor compartilhado trabalha da seguinte forma:
Existe um listener que fica aguardando processos de usuários chegarem para conectá-los a processos do servidor Oracle. O listener não conecta o processo usuário diretamente a um processo de servidor e sim ao primeiro dispatcher que estiver disponível. Os dispatchers são conceitualmente parecidos com os processos servidores, porém trabalham de forma diferente.
O listener conecta sua solicitação a um dispatcher (atendente), que irá encaminhar para uma fila comum onde o primeiro processo de servidor compartilhado irá checar se o que você necessita esta em memória, ou no disco e se você tem privilégios suficientes para o que está solicitando e executar sua solicitação, o processo de servidor compartilhado irá devolver a resposta a fila do dispatcher que a encaminhou, isto tudo com um controle feito pelo Oracle, para balancear sobre o que entra e o que sai nas filas comuns e de devolução dos dispatchers, o balanceamento evita sobrecarga em um só servidor e em um só dispatcher.
Uma grande diferença está também na área temporária do processo usuário, onde antes existiam áreas únicas para cada conexão chamadas PGA´s, agora esta área é englobada a SGA na large pool.
O servidor compartilhado gerencia muito bem e muito mais rápido um ambiente com diversos usuários e inúmeras transações sem degradar tanto os recursos da máquina física devido a concorrência das informações. É possível que as instruções demorem algum tempo a mais para serem executadas em um ambiente com servidor compartilhado devido a entrada e saída das instruções nas filas e isto acaba gerando um pouco mais de gasto da CPU, mas no geral o ganho é maior. É recomendado para ambientes que tenham diversas conexões simultâneas e transações pequenas (Banco de dados OLTP, exemplo uma central de atendimento ao cliente), o que mesmo gerando um pouco mais de consumo de CPU e memória você deve levar em consideração que está usando mais de