› Fóruns › Banco de dados Oracle › Tempfile sempre com tamanho no limite – Oracle 11g
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 8 anos, 9 meses atrás por
José Laurindo Chiappa.
-
AutorPosts
-
17 de julho de 2017 às 4:00 pm #108859
Alberto
ParticipanteCaros colegas DBA’s, estou com uma dúvida: meu banco está sempre com o TEMPFILE no limite dos 32 Gb. Isso é prejudicial ao desempenho do banco? Ou é normal? Não vejo erros nas aplicações. Mas sempre que eu crio um novo arquivo e excluo o anterior, rapidamente cresce para os 32 Gb. Existe alguma forma desse arquivo “sofrer uma limpeza” de tempos em tempos, ou só dropando e criando um novo?
17 de julho de 2017 às 4:34 pm #108860José Laurindo Chiappa
ModeradorSim, é algo absolutamente normal : https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:34014729642755 tem várias demonstrações e provas sobre o Conceito, e a questão é que, para melhor performance, depois que o banco deixa de precisar do que estava gravada num tempfile ao invés de ter o esforço de apagar a informação e diminuir o tempfile, o RDBMS simplesmente faz uma ‘marca’ num ‘flag interno’ do tempfile dizendo que aquela informação não é mais necessária e acabou, as próximas sessões simplesmente vão gravar seus dados por cima dos dados desnecessários que já estavam em disco….
Se vc pensar a respeito faz sentido : já pensou na quantidade de I/O em disco que o RDBMS teria que fazer para remover os 32 Gigabytes do tempfile pra daqui a pouco vir outra sessão e gravar mais dados, fazendo o tempfile crescer de novo, pra depois ter que ser diminuído de novo ?? Não faz sentido isso, né não ???
Caso vc não saiba ainda , vc pode acompanhar quais pedaços do datafile estão marcados como ainda em uso através de views do sistema, como V$SORT_USAGE e similares…[]s
ChiappaOBS : até um ponto, vc vai ver que esse conceito de não ficar aumentando/diminuindo arquivos em disco cfrme são usados/liberados acontece também com DATAFILES comuns – experimente criar numa tablespace qquer um datafile (com o tipo comum, não-extensível e não gerenciado pelo sistema) de, digamos, 100 Megabytes e vc vai ver que mesmo sem dados em disco ele vai ocupar 100 megabytes em disco, aí se vc gravar, digamos, 10 Megabytes de dados nesse datafile ele *** Não Vai ** encolher para 10 Megabytes em disco, POUPANDO o sistema de ter o imenso trabalho de reduzir via um montão de I/Os o datafile : dos 100 MB em disco, 10 vão estar preenchidos com dados e os outros 90 com ‘zeros/nulos’, disponíveis para serem re-escritos com dados reais a qquer hora….
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › Banco de dados Oracle › Tempfile sempre com tamanho no limite – Oracle 11g