Conhecendo o recurso de Tabela Temporária no PostgreSQL
Veja como você pode aplicar essa funcionalidade dentro da função do seu SGDB e aumentar a performance da sua consulta
Salve salve moqueridos, Gustavo Web aqui e o assunto da nossa aula de hoje é TEMPORARY TABLE.
Tenho quase certeza que a grande maioria já viu o termo antes (nem que seja na documentação) mas nunca utilizou e nem mesmo encontrou um bom motivo para trabalhar...
Se esse é o seu caso, assiste essa aula que está disponível gratuitamente no nosso canal do YouTube e confere as aulas onde estamos abordando o PostgreSQL.
Cada vez mais vamos entrando em recursos "mais avançados" do SGDB, e por mais que os exemplos que façamos agora sejam desconexos, lá na frente você vai ver que tudo isso faz sentido :)
Uso Prático
Basicamente, o uso desse tipo de recurso será feito dentro de uma função e principalmente quando essa rotina precisar de uma otimização de performance ou até mesmo reestruturação dos dados.
O principal ponto aqui é que você tem certeza que assim que a conexão do cliente for finalizada, essa tabela que fora criada será dropada automaticamente pelo SGDB sem a necessidade de uma intervenção do programador.
A vantagem de tudo isso é que como ela é uma tabela volátil (está armazenada em uma memória, e não gravada no disco) o acesso a ela é extremamente rápido. É claro que a memória do seu servidor tem um limite para o consumo da tabela temporária, e quando esse valor é extrapolado, automaticamente o banco começa a despejar isso para o disco.
Mas levando em consideração que você tem um servidor rodando o seu banco, estimo que a quantidade de memória nele seja o suficiente para que execute uma query e não chegue a esse ponto. Para alcançar 1GB de consumo de memória numa única querym é necessário que seja um processamento pesado... Imagina para consumir 2GB, 4GB, 8GB de RAM que seja!
Funcionalidades a disposição
Embora até o momento não tenhamos abordado VACCUM, ANALYZE e nenhum procedimento de rotina para manutenção do servidor, saiba que essas funcionalidades estão disponíveis para ser utilizadas também na sua tabela temp...
A única questão é que não serão executados os processos automaticamente (como numa tabela física por exemplo) mas até mesmo os índices podem ser utilizados.
Embora os parâmetros GLOBAL e LOCAL podem ser utilizados ainda na chamada da criação, isso está sendo feito somente por questão de compatibilidade e não apresentam nenhuma alteração no comportamento. Simplesmente são ignorados, portanto se você tinha o hábito de utilizar, já não é mais necessário.
Feedback
Você já está seguindo o nosso canal no YouTube? Essa aula e várias outras onde estamos abordando o PostgreSQL está numa playlist totalmente gratuita :)
Para seguir o canal da Up, é só clicar aqui e eu te levo pra lá agora! Só clicar em Inscrever-se e ativar o sininho para receber as notificações :)
Eu vou responder cada comentário lá do YouTube pessoalmente e aqui abaixo também!
Forte abraço, a gente se vê numa próxima aula