Tempo aproximado para leitura: 00:04:30 min
Dúvida
Como funciona o processo de migração automática dos tipos de dados TEXT, NTEXT e IMAGE para as novas estruturas do SQL Server utilizando o RM Atualizador a partir da release 12.1.2606?
Ambiente
Framework - Framework (Linha RM) - Banco de Dados - Versão 12.1.2606
Solução
Este documento apresenta como será realizada a migração dos tipos de dados text, ntext e image nas colunas do banco de dados. Esses tipos foram marcados pela Microsoft como obsoletos e estão em processo de descontinuação, com remoção prevista em versões futuras do SQL Server. Para apoiar esse processo, a Microsoft já disponibiliza diretrizes oficiais que recomendam a substituição por tipos mais modernos e compatíveis, como varchar(max), nvarchar(max) e varbinary(max), assegurando melhor desempenho, suporte contínuo e maior compatibilidade futura.
Mais informações técnicas a respeito destes tipos de dados descontinuados no site do fabricante: ntext, text e image (Transact-SQL)
Com o objetivo de apoiar o processo de atualização do cliente, nossa ferramenta apresentará uma etapa dedicada à migração automática de todas as colunas de negócio existentes no banco de dados da linha RM que ainda utilizam os datatypes legados.
Essa etapa foi planejada para reduzir riscos e acelerar a adequação da estrutura, alinhando-se às melhores práticas já recomendadas pela Microsoft.
Benefícios da migração
- Compatibilidade futura: uso de datatypes plenamente suportados nas versões mais recentes do SQL Server.
- Melhoria de performance: consultas e operações passam a ter ganhos de desempenho em cenários de leitura e escrita.
- Facilidade de manutenção: uso de tipos modernos simplifica scripts, integrações e ajustes futuros.
- Confiabilidade: elimina riscos relacionados ao uso de tipos obsoletos, que podem deixar de ser suportados em releases futuras.
DETALHAMENTO DA MIGRAÇÃO
A migração será realizada por meio de um item disponível na última etapa do processo de execução do RM Atualizador, conforme ilustrado abaixo:
Tabela com log detalhado
Durante a atualização, será gerado um log em uma tabela interna do sistema (GUPGLOGMIGRACAODATATYPESIMAGETEXT), registrando o processo de conversão dos tipos de dados e, em caso de falhas, detalhando o respectivo motivo.
Migração datatypes (tratamento locks) - Com uso de triggers
Durante a migração, será criada uma trigger na base de dados para impedir alterações concorrentes na coluna em migração, a tabela ficará bloqueada durante este processo de migração. A trigger é criada de forma temporária e removida ao final do processo de migração dos dados.
Toda esta operação de criação e remoção da trigger também pode ser visualizada na tabela de log (GUPGLOGMIGRACAODATATYPESIMAGETEXT) de migração dos dados.
Caso ocorram falhas durante a atualização de uma base de dados, como, por exemplo, queda de comunicação com o Host do RM, a base poderá conter objetos que são utilizados durante a migração de datatypes. Não se preocupe quanto aos objetos existentes, nas próximas execuções, o processo irá ajustar a estrutura da tabela de maneira resiliente, sem gerar efeitos colaterais no uso do sistema.
Os objetos usados na migração são:
- Trigger MigraDatatypes_Bloquear
- Coluna temporária: NOVOTYPEPARAMIGRACAOIMAGETEXT
- Indice de contador linhas: IDX_CONTADORLINHAS
- Coluna Contador Linhas: CONTADORLINHAS
TELA RM ATUALIZADOR
No RM Atualizador, haverá uma etapa dedicada a apresentar ao usuário as tabelas envolvidas na migração, organizadas conforme o tamanho em disco.
O objetivo é incentivar a análise da possibilidade de reduzir o conteúdo dessas tabelas antes de submetê-las à migração, o que pode, consequentemente, diminuir o tempo necessário para a atualização da base de dados.
Para mais orientações sobre como reduzir o conteúdo da tabela, consulte o quadro de dicas no Tópico 5 deste documento.
Em seguida, é apresentada a lista de versões, juntamente com o item responsável pela migração, conforme ilustrado:
No momento da Migração dos Tipos de dados SQL Server, o sistema apresenta qual tabela está em processo de migração:
REGRA DE TEMPO LIMITE PARA MIGRAÇÃO
Visão Geral
Durante o processo de migração de datatypes do sistema, o tempo limite de processamento varia de acordo com o tipo de entrega (Release ou Patch).
O sistema possui valores mínimos padronizados de acordo com cada tipo de instalação, veja o exemplo abaixo:
- Tempo mínimo para release de 60 minutos
- Tempo mínimo para patch de 15 minutos
- Após a execução dos scripts, será iniciada a migração dos tipos. O tempo definido acima se aplica exclusivamente a essa etapa e será somado ao tempo habitual de conversão da sua base de dados.
Regras de Configuração
- Sem limite de tempo - O processo irá executar a migração de todas as colunas das tabelas até sua totalidade.
- Limitar o tempo de execução em N minutos - A migração ocorrerá dentro do tempo estipulado. Caso o limite seja atingido, a conversão da coluna atual será interrompida com segurança e o motivo registrado no log, deixando a tabela pronta para reiniciar a migração na próxima oportunidade.
Uso do Parametro pela API
Para alterar o tempo limite padrão (em minutos) durante a conversão da base via API (ExecuteUpgrade), utilize o parâmetro tempoLimiteRelease= N, substituindo o 'N' por um número inteiro.
LISTAGEM DAS TABELAS MIGRADAS
Para visualizar as tabelas migradas por versão clique nos links abaixo:
Ordem de Migração dos dados
A migração das colunas será feita de forma diferente para release e patch, sempre respeitando o tempo definido pelo usuário, conforme descrito acima.
- Release: a migração das colunas começa pelas maiores tabelas e segue até as menores.
- Patch: a migração das colunas começa pelas menores tabelas e segue até as maiores.
Redução de dados nas tabelas
Para potencializar os benefícios, reforçamos a importância de reduzir o conteúdo das principais tabelas mais volumosas antes da execução do processo de migração.
Ao diminuir a quantidade de dados armazenados, o tempo necessário para converter os datatypes pode ser significativamente reduzido, resultando também em menor tempo destinado à atualização da base de dados como um todo.
![]()
Foi criado um requisito que identifica bases contendo tabelas com grandes volumes de dados, as quais podem ocasionar demora na migração dos tipos de dados em suas colunas. Caso o RM.Atualizador sinalize este requisito, significa que uma ou mais tabelas do seu banco de dados podem gerar lentidão durante a etapa de atualização. Abaixo disponibilizamos um modelo de consulta SQL para auxiliá-lo na identificação das tabelas que necessitam ser saneadas:
WITH cte_sizes AS (
SELECT
p.OBJECT_ID,
OBJECT_NAME(p.OBJECT_ID) AS NOME,
CAST((SUM(a.total_pages) * 8.0) / 1024 AS DECIMAL(18,2)) AS TotalSizeMB
FROM sys.partitions p
JOIN sys.allocation_units a ON p.partition_id = a.container_id
GROUP BY p.OBJECT_ID
),
cte_rows AS (
SELECT
OBJECT_ID,
SUM(row_count) AS NumeroLinhas
FROM sys.dm_db_partition_stats
WHERE index_id IN (0, 1)
GROUP BY OBJECT_ID
),
cte_gdic AS (
SELECT TABELA
FROM GDIC (NOLOCK)
WHERE COLUNA = '#'
AND TABELA IN (
SELECT tabs
FROM ( VALUES
('AANEXO'), ('ADEFINICAOCOMPENSACAO'), ('AIMPORTACAOBATIDALOG'), ('AJORNADACALCULADA'), ('AJORNADACALCULADAAM'), ('AMEMORIAIMPORTACAO'), ('APARAMREL'), ('APERFUN'), ('BHISTORICO'), ('BMEMO'),
('BOBJETOAVALIADO'), ('BOPCAO'), ('BOPCAOVERSAO'), ('BPARAM'), ('BPROVA'), ('BQUESTAO'), ('BQUESTAOVERSAO'), ('EACORDO'), ('EALUANAMNESE'), ('EALUATIV'), ('EALUBOLSA'), ('EALUDOC'), ('EALUMENS'), ('EALUNOS'), ('EALUOCOR'), ('EALUPONTO'),
('EALUSAUDE'), ('EATENDIMENTO'), ('ECFGLAUDA'), ('ECNTATENDIM'), ('ECONCESSAOBOLSA'), ('ECONSULTA'), ('ECONTEUDOPROG'), ('ECURSOS'), ('EDEFANAMNESE'), ('EFILTROCRITERIOMENSAGEM'), ('EGRADE'), ('EHISTALUN'), ('ELRENTMAT'), ('EMATTURMA'),
('EMODCONTR'), ('EOBSHIST'), ('EPARAMGLB'), ('EPERIODOS'), ('EPERLET'), ('EPLANOAULA'), ('EPLANOAULATURMISTA'), ('EPONTOPRF'), ('EPROFOCOR'), ('EPROTOCOLOS'), ('EPROVAS'), ('ESRVEVENT'), ('ETABFORMS'), ('ETURMAS'),
('EVALORPROVA'), ('EWEBCXENTRADA'), ('EWEBCXSAIDA'), ('EWEBENQUETE'), ('EWEBENQUETEDESC'), ('EWEBFORUM'), ('EWEBFORUMRESPOSTA'), ('EWEBMENSAGEM'), ('EWEBMSG'), ('EWEBNOTICIA'), ('EWEBNOTICIAS'), ('EWEBPARAM'), ('EWEBRESPOSTA'),
('GUPGATUALIZACAO'), ('GUPGATUALIZACAOTEMP'), ('HACAO'), ('HACAORESULTADO'), ('HARQUIVO'), ('HATENDIMENTOARQUIVOSANEXOS'), ('HATENDIMENTOAVALIADO'), ('HCAMPANHA'), ('HCAMPDISCUSSAO'), ('HCAMPTIPOACAO'), ('HCCONCEITO'),
('HCFILAINTEGRACAO'), ('HCLIENTECAMPANHAHISTSEL'), ('HCLOG'), ('HCLOGAGENT'), ('HCMAPAINTEGRACAO'), ('HCPARAMETROS'), ('HCPLANOHIST'), ('HCRMLOG'), ('HCTRANSFORMACAO'), ('HDIRECIONAEMAIL'), ('HDISCUSSAO'), ('HDISCUSSAODETALHE'),
('HEMAILALARME'), ('HENTENDIMENTO'), ('HENVIAEMAIL'), ('HEVENTOS'), ('HFAQ'), ('HFECHAMENTO'), ('HFLUXOTAREFA'), ('HGRUPOATENDIMENTO'), ('HGRUPOCLIENTE'), ('HINFORMCLIENTE'), ('HITEMAVALIACAO'), ('HPARAMATENDIMENTO'),
('HPARAMCAMPANHA'), ('HPARAMCAMPANHACLIVALORES'), ('HPARAMETRO'), ('HPARAMPESQUISASATIS'), ('HPARAMPESQUISASATISVALORES'), ('HPARAMTELEOPERACAO'), ('HPARAMTIPOATEND'), ('HPESQUISASATISFACAO'), ('HPESQUISASATISFACAOLAYOUT'),
('HPROCESSOS'), ('HPRODUTO'), ('HRECCATALOGO'), ('HSCRIPT'), ('HSOLICITACAO'), ('HSOLICITACAODETALHE'), ('HSOLUCAO'), ('HSOLUCAODETALHE'), ('HTAREFA'), ('HTEXTOACOMPANHAMENTO'), ('HTIPOACAO'), ('HTIPOATENDIMENTO'), ('HTIPOMIDIA'),
('HUSUARIOFORUM'), ('HWORKFLOWDATASERVER'), ('HWORKFLOWDATASERVERPROCBLOQ'), ('HWORKFLOWDATASERVERTAREFAS'), ('LARQUIVOSPUBLIC'), ('LEDITORA'), ('LFONTE'), ('LMEMO'), ('LPARAM'), ('LPARAMGLB'), ('NAGENDA'), ('NCLASSIFICADOS'),
('NCONTROLEVERSAO'), ('NCXENTRADA'), ('NCXSAIDA'), ('NEMPREGO'), ('NENQUETE'), ('NFORUM'), ('NFORUMRESPOSTA'), ('NNOTICIA'), ('NOPCAOENQT'), ('NPARAMETROS'), ('NPERGUNTAENQT'),
('NRESPOSTAENQT'), ('NVERSAOCONTEUDO'), ('OFATENDIMENTO'), ('OFCONTRATO'), ('OFEVENTOPROC'), ('OFHISTIMPLANCINDICADORUSO'), ('OFINDICE'), ('OFLAYOUTIMPLANCINDICADORUSO'), ('OFMEMO'), ('OFOBJDESC'), ('OFOBJLOCAL'), ('OFPLANOMANUT'),
('OFPROPOSTA'), ('PANOTAC'), ('PCARGO'), ('PCOMMUNICATEATTACHMENT'), ('PDIAGRAM'), ('PDIRF'), ('PFMOVCONVENIO'), ('PFUNCAO'), ('PLAYOUTVALIDADOR'), ('PLOGCALCTEXTO'), ('PLOGCALCTEXTOSUPL'), ('PLOGCALCULO'), ('PLOGCALCULOSUPL'),
('PLOGFUNCIONARIO'), ('PLOGFUNCIONARIOSUPL'), ('PLOGPARAMEXEC'), ('PMEMO'), ('PORCAMENTO'), ('PPARAMRELAT'), ('PPESSOA'), ('PSECAO'), ('PSECAOPROPOSTA'), ('PSECAOREALOCACAOPESSOAL'), ('PSEFIPHSTARQ'), ('PSINDVAL'),
('SACEITETERMO'), ('SACEITETERMOUSOIMAGEMVOZ'), ('SAGDEVENTO'), ('SALOCACAOPRIORIDADE'), ('SALUNO'), ('SALUNOFICHAMEDICA'), ('SALUNOMEC'), ('SALUNORESPONSAVEL'), ('SARQUIVOS'), ('SASSINATURACONTRATO'), ('SATIVIDADE'), ('SATIVIDADEALUNO'),
('SATIVIDADEGRADE'), ('SATIVIDADEPESSOA'), ('SAUTORIZACAOFILIAL'), ('SBANNER'), ('SBLOCO'), ('SBOLSAALUNO'), ('SCATEGORIANOTIFICACAO'), ('SCCOMMENSAGEM'), ('SCENSOXMLBASE'), ('SCENSOXMLMANUTENCAO'), ('SCERTIFICADO'), ('SCOMPETENCIA'),
('SCOMPLDISC'), ('SCOMUNIDADESOCIALLOGSINC'), ('SCONCESSAOBOLSA'), ('SCONTRATOLOGCONT'),
('SCONTROLEENTREGAAVAL'), ('SCOORDENADOR'), ('SCURSO'), ('SDISCGRADECOMPLDISC'), ('SDISCNAOAPROVEITADAS'), ('SDOCALUNO'), ('SDOCFIADOR'), ('SEXTAUXILIOVISITA'), ('SEXTGRUPOESTUDO'), ('SEXTTIPOACAO'), ('SEXTVISITAAVALIACAO'),
('SEXTVISITAEVENTO'), ('SHABILITACAO'), ('SHABILITACAOALUNO'), ('SHISTALUNOCOL'), ('SHISTDISCFAC'), ('SHISTDISCFACEXT'), ('SHISTHABILITACAOALUNO'), ('SIMAGEMMENSAGEM'), ('SIMPORTPROCSEL'), ('SINOVACESSOTECNOLOGICO'),
('SINOVCAMPOAPLICACAO'), ('SINOVINVENTO'), ('SINOVPARECER'), ('SLOG'), ('SLOGCOMPLDISC'), ('SLOGDISCGRADECOMPLDISC'), ('SLOGSUGESTAO'), ('SMATRICPL'), ('SMENSAGEM'), ('SMENSAGEMCOMUM'), ('SMENSAGEMINDIVIDUAL'), ('SMENSAGENSNOTIFICACAO'),
('SMODALIDADE'), ('SMULTAPERGAMUM'), ('SNOTAETAPACOMENTARIO'), ('SNOTASCOMENTARIO'), ('SOCORRENCIAALUNO'), ('SOCORRENCIAALUNOARQ'), ('SOCORRENCIAPROFESSOR'), ('SORIENTACAO'), ('SPARAM'), ('SPARAMGERAL'), ('SPARAMPERFIL'),
('SPARAMRELAT'), ('SPESCONFIRMAGRUPO'), ('SPLANOAULA'), ('SPLETIVO'), ('SPODEMANDAEXECUTADA'), ('SPROJDESISTENCIABOLSISTA'), ('SPROJEDITAL'), ('SPROJFREQUENCIA'), ('SPROJPROJETO'), ('SPROJSOLICITACAOAVALIACAO'),
('SPROJSOLICITACAOPARCERIA'), ('SPROVAS'), ('SPSACEITETERMO'), ('SPSALTDATAVENCLANC'), ('SPSAREAOFERTADA'), ('SPSARQUIVOSCANDIDATO'), ('SPSBANNER'), ('SPSINSCRICAOAREAOFERTADA'), ('SPSLOGINSCRICAOPS'), ('SPSLOGNOTAS'),
('SPSPARAMETRO'), ('SPSPARAMETROGERAL'), ('SPSPARAMETROPS'), ('SPSPROCESSOSELETIVO'), ('SPSUSUARIO'), ('SRESERVAINSTALACAO'), ('SRESERVARECURSO'), ('SSTATUS'), ('STEMPDADOSMATRICULAPORTAL'), ('SURANIATURMADISCLOG'),
('SVAGASCANDIDATOS'), ('SZ_SUSAIHPROD'), ('SZAGENDA'), ('SZAGENDAMENTO'), ('SZAGENDAMENTOCOMPLINT'), ('SZAGENDAMENTOLISTESPERA'), ('SZANAMNESELOG'), ('SZANAMNESPECIAL'), ('SZANSATENDAUTORIZCAB'), ('SZAOLRESCADEXMVR'),
('SZAOLRESSOLEXM'), ('SZAPACHELOG'), ('SZAPACNEFRO'), ('SZAPRAZAMENTO'), ('SZAPRAZAMENTOBKP'), ('SZAPRAZAMENTOLOG'), ('SZARQUIVO'), ('SZATENDIMENTO'), ('SZATENDIMENTOREC'), ('SZAUDITPREGLOSA'), ('SZAUDITPREGLOSAITEM'),
('SZBLOQCONVENIO'), ('SZBRADENLOG'), ('SZCADGERALINFORFAT'), ('SZCIDALTALOG'), ('SZCIDANAMNESELOG'), ('SZCMEMETODO'), ('SZCONDCONTRAT'), ('SZCONTROLEDOC'), ('SZCONTROLEGLOSA'), ('SZCONTROLEGLOSAITEM'), ('SZCRITREPASSE'),
('SZEQAGENDAMENTO'), ('SZEUROSCORELOG'), ('SZEVOLENFERM'), ('SZEVOLENFERMLOG'), ('SZEVOLTECENFERMAGEM'), ('SZEVOLTECENFERMAGEMLOG'), ('SZEVOLUCAO'), ('SZEVOLUCAOFARMACO'), ('SZEVOLUCAOLOG'), ('SZEVOLUCAOPROF'),
('SZEVOLUCAOPROFLOG'), ('SZFICHACLINANAMNESE'), ('SZFICHACLINPEDEXAMELOG'), ('SZFICHACLINRECEITA'), ('SZFICHACLINRECEITALOG'), ('SZGLASGOWLOG'), ('SZHISTORICOIMPORTASUS'), ('SZHISTORICOSTATUS'), ('SZHPDINFOADICIONAL'),
('SZHPDITEMEXAME'), ('SZHPDRESULTADOSUPEREXAME'), ('SZHPDRESULTPEDIDO'), ('SZHPDVALOR'), ('SZHPDVALORREFERENCIAITEMEXAME'), ('SZHPPASSOCLOG'), ('SZHPRESULTADOEXAME'), ('SZIMAGEM'), ('SZINFORMCONTRAT'), ('SZINTEGRAAGHOSHIST'),
('SZITEMALTOCUSTO'), ('SZITEMPRESCRICAO'), ('SZITEMPRESCRICAOPARECER'), ('SZJANALISEANTIBIOTICO'), ('SZJCIRURGIA'), ('SZJEQUIPEMEDICA'), ('SZJIMPORTACAO'), ('SZJIMPORTANTIBIOTICO'), ('SZJIMPORTLOG'), ('SZJIMPORTLOGUSUARIO'),
('SZJINFECCAOHOSPITALAR'), ('SZJINTERNACAO'), ('SZJLAYOUTRELATORIOS'), ('SZJPEDIDOANTIBIOTICO'), ('SZJPEDIDOCULTURA'), ('SZJPEDIDOCULTURAPARCIAL'), ('SZJRESULTADOCULTURAPARCIAL'), ('SZJXINTERNACAOMOTIVO'),
('SZLABEXAME'), ('SZLABEXAMESIMPL'), ('SZLABGRPTXTPADRAORESULT'), ('SZLABMETEXAMERESULT'), ('SZLABMETODO'), ('SZLABMSGPEDEXAME'), ('SZLABPARAMDADOSREF'), ('SZLABRESPONSTEC'), ('SZLEITOLOG'), ('SZLINHASARQ'), ('SZLOCALCIRURGIA'),
('SZLOGAGENDAMENTO'), ('SZLOGFATURAMENTO'), ('SZLOGINTEGRACAO'), ('SZLOGINTEGRACAOGERINT'), ('SZLOGJSONINTEGRACAOGERINT'), ('SZLOGPROCESSOALTA'), ('SZLOGVISITANTE'), ('SZLOTEPEDIDOS'), ('SZLOTEPEDLAYTOTVS'),
('SZLOTEREQUISICAO'), ('SZLOTEREQUISICAOLAYTOTVS'), ('SZMEMO'), ('SZMEWSLOG'), ('SZMNEMOLAUDO'), ('SZMODSLOG'), ('SZMONITORGERCON'), ('SZMONITORINTEGRACAOCROSS'), ('SZMOTIVOOBITO'), ('SZMOVIESTOQUEITEM'),
('SZMOVIESTOQUEITEMBKP'), ('SZMOVITMAPRAZNAPLIC'), ('SZMOVITMAPRAZNAPLICBKP'), ('SZMSGRODAPERESULT'), ('SZNOTASRESULTLAUDO'), ('SZOBSORCAMENTCLIENTE'), ('SZOBSPADRAO'), ('SZOBSPRESCRICAO'), ('SZORCAMENCLI'),
('SZPACIENTE'), ('SZPACIENTELOG'), ('SZPACMENS'), ('SZPACMENSLOG'), ('SZPADRAOFORMDOCUMENTO'), ('SZPARAMETRIZACAORISCODETALHE'), ('SZPARECERPEP'), ('SZPARECERPEPLOG'), ('SZPASSAGEMPLANTAO'), ('SZPASSAGEMPLANTAOPAC'),
('SZPEDEXAMECONCLUSAO'), ('SZPEDEXAMEITEM'), ('SZPEDEXAMEITEMLOG'), ('SZPEDEXAMELOG'), ('SZPEDEXAMEOBS'), ('SZPEDEXAMERESULTMOD'), ('SZPEDEXAMERESULTMODLOG'), ('SZPENDENCIASGLOSA'), ('SZPEPENFERMAGEM'),
('SZPEPENFLANCAMENTO'), ('SZPEPENFLANCAMENTOLOG'), ('SZPREPAROEXAME'), ('SZPRESCENFITEM'), ('SZPRESCENFITEMLOG'), ('SZPROCMSG'), ('SZRAM'), ('SZRAMLOG'), ('SZREAGENDAMENTO'), ('SZRECURSOS'), ('SZREGINFCIRURGIA'),
('SZREGINFCIRURGIAINTERCOR'), ('SZREGRACONTRAT'), ('SZREGRAFAT'), ('SZRESPAUTORIZA'), ('SZSAPSIILOG'), ('SZSCALDRETELOG'), ('SZSCDORFACESLOG'), ('SZSCDORLOG'), ('SZSCDORNIPSLOG'), ('SZSCFUGULINLOG'), ('SZSCJOUVETLOG'),
('SZSCRAMSAYLOG'), ('SZSINAISVITAISLOG'), ('SZSOFALOG'), ('SZSOLICITA'), ('SZSUMARIOALTA'), ('SZSUMARIOALTALOG'), ('SZSUSAIHPROD'), ('SZSUSCARDIOLOGIAAPAC'), ('SZSUSHEMOAPAC'), ('SZSUSLME'), ('SZSUSOFTALMOAPAC'), ('SZTABW'),
('SZVISITANTE'), ('SZWORKLIST'), ('UALUCURSO'), ('UATVCOMP'), ('UATVCOMPALUNO'), ('UATVCOMPOFERTA'), ('UCONTEUDOPROG'),
('UCURSOS'), ('UDATAAVAL'), ('UGRADE'), ('UMATALUN'), ('UMATERIAS'), ('UMATRICPL'), ('UMATTURMA'), ('UPERIODOS'), ('UPLANOAULA'), ('UPROFALUNO'), ('UPROTOCOLOS'), ('VACAOMETA'), ('VACOESASSOCIADAS'), ('VACOMPANHAMENTOMETA'), ('VADESCALA'),
('VADESCALAPADRAO'), ('VADGRAFICOS'), ('VADNOTAS'), ('VADVERTENCIA'), ('VAGENTE'), ('VAMBIENTETRABALHO'), ('VANDAMENTOFASESPROCESSO'), ('VAREASCARGOS'), ('VASSUNTO'), ('VATESTADO'), ('VAULA'), ('VAVALIACAOHISTORICO'), ('VBENEFICIOS'),
('VCANDIDATOS'), ('VCATALOGOEPI'), ('VCATEGORIABENEFICIO'), ('VCID'), ('VCOMPETENCIA'), ('VCOMPETENCIAFUNCAO'), ('VCOMPETENCIAPERFORMANCE'), ('VCOMPETENCIAPESSOA'), ('VCOMPETENCIAPESSOAHIST'), ('VCONSULTASPRONT'),
('VCONSULTASPRONTTEMP'), ('VCONTROLEEXTINTOR'), ('VCONTROLEMETA'), ('VCONTROLESISTEMA'), ('VCURSOS'), ('VCURSOSPESSOAIS'), ('VCUSTOEPI'), ('VDESPESA'), ('VDOCS'), ('VELEICAO'), ('VELEICAOVOTOMANUAL'), ('VEMAILIMAGEM'), ('VENTIDADES'),
('VEPI'), ('VETAPAS'), ('VETAPASRECRUTAMENTO'), ('VEVIDENCIAS'), ('VEXAMES'), ('VEXAMESPRONT'), ('VEXAMESPRONTINFCLINICA'), ('VEXAMESPRONTINFCLINICATEMP'), ('VEXAMESPRONTTEMP'), ('VFATORESORG'), ('VGRADUACAOCOMP'), ('VGRAFICOFAIXAETARIA'),
('VGRAFICOS'), ('VGRUPOAVALIACAO'), ('VGRUPOCURSO'), ('VGRUPOENTIDADE'), ('VGRUPOHABIL'), ('VGRUPOMETAS'), ('VGRUPOOCUPACIONAL'), ('VGRUPOSEPI'), ('VHABILIDADESPESSOAIS'), ('VHISTFUNCAO'), ('VIMAGENS'), ('VINDICACOES'), ('VINVESTIGACAO'),
('VITENSQUALIDADE'), ('VLOCALTRABALHO'), ('VMAPACONHECIMENTOCOMPETENCIA'), ('VMAPARISCOSECAO'), ('VMEDIDASPREVENTIVAS'), ('VMEMO'), ('VMETAS'), ('VMETASDOCONTROLE'), ('VMETASPM'), ('VMETASVINCULADAS'), ('VMINISTRA'), ('VMOTADVERT'),
('VNATUREZA'), ('VNIVEISHABILIDADE'), ('VNIVELMAPARISCO'), ('VOBJETIVOBENEFICIO'), ('VOCORRENCIA'), ('VPERFIL'), ('VPERFILFUNCAO'), ('VPERSPECTIVAS'), ('VPESQUISA'), ('VPLANEJCURSOPESSOA'), ('VPLANOTREINA'), ('VPLANOTREINACURSO'),
('VPREATESTADO'), ('VPUNICAO'), ('VRANK'), ('VREPRESENTANTE'), ('VREQAUMENTOQUADRO'), ('VREQAUMENTOQUADROPARECER'), ('VREQDESLIGAMENTO'), ('VREQDESLIGAMENTOPARECER'), ('VREQGERAL'), ('VREQGERALPARECER'), ('VREQPROMOCAO'),
('VREQPROMOCAOPARECER'), ('VREQSUBSTITUICAO'), ('VREQSUBSTITUICAOPARECER'), ('VREQTRANSFERENCIA'), ('VREQTRANSFERENCIAPARECER'), ('VREQTRANSFPROMOCAO'), ('VREQTRANSFPROMOCAOPARECER'), ('VREQTREINAMENTO'), ('VREQTREINAMENTOPARECER'),
('VREQUISICAOADMISSAO'), ('VREQUISITOACESSO'), ('VRESPOSTAQUESTCAND'), ('VREUNIAO'), ('VRSSELECOESPESSOASOBSERVACAO'), ('VRSVAGAS'), ('VSELECAO'), ('VSELECOES'), ('VSPAT'), ('VTABSALARIAIS'), ('VTAREFA'), ('VTIPOACAO'), ('VTIPOBENEFICIO'),
('VTIPOEXTINTOR'), ('VTIPOOCORRENCIA'), ('VTIPORELATORIOITEM'), ('VTIPOSAGENTE'), ('VTIPOSEXAMES'), ('VTUAVCONH'), ('VTUAVCONHLACTO'), ('VTUAVQUALID'), ('VTUAVQUALIDLACTO'), ('VTURMAS'), ('XADITVCTOPARC'), ('XAGENDAMENTOGARANTIA'),
('XALGIMOVELIMAGEM'), ('XALGMAPACOBRANCA'), ('XAPURACAO963'), ('XAUTORIZACAOLPD'), ('XBEN'), ('XCHECKLISTITEM'), ('XDOCUMENTACAOARQUIVO'), ('XDOCUMENTO'), ('XEMPREENDIMENTO'), ('XEMPREENDIMENTODOCUMENTOS'), ('XETAPAGARANTIACHECKLIST'),
('XGALERIAFOTOSEMPREENDIMENTO'), ('XLOGASSINATURAAUTOTAE'), ('XLOGCONTRATO'), ('XLOGEMPREENDIMENTO'), ('XLOGMODALIDADEVENDA'), ('XLOGPARCELAPAGAMENTO_OLD1217'), ('XLOGREAJUSTE'), ('XLOGREAJUSTEVENDAGRUPO'), ('XLOGSUBUNIDADE'),
('XLOGVENDA'), ('XMODALIDADEVENDA'), ('XMODELO'), ('XMODELOMINUTA'), ('XMOTIVOCANCELAMENTOPARCELA'), ('XPARAMETROSCOLIGADA'), ('XPARCELADOCUMENTOS'), ('XPERFILCORDETALHE'), ('XPESSOA'), ('XPIANOTACAOPESSOA'), ('XPIAUDITTRAIL'),
('XPICAMPANHAMARKETING'), ('XPICOLUNA'), ('XPICOMPONENTEVENDA'), ('XPICOMPONENTEVENDA_MODALVENDA'), ('XPIDOCUMENTOPESSOA'), ('XPIDOCUMENTOPROPOSTA'), ('XPIEMPREENDIMENTO'), ('XPIFORMULA'), ('XPIFORMULACOMPOSICAO'), ('XPIIMAGEMCOLUNA'),
('XPIIMAGEMUNIDADE'), ('XPIIMPORTACAOPARTICIPTECAMPHA'), ('XPILOG'), ('XPILOGSITUACAOPROPOSTA'), ('XPIPESSOA'), ('XPIPESSOA_PROPOSTA'), ('XPIPESSOA_PROPOSTA_DOCUMENTO'), ('XPIPHPSESSION'), ('XPIPROPOSTA'), ('XPIPROPOSTANEXO'),
('XPIPROPOSTAMENSAGEM'), ('XPIPROPOSTATROCACORRETOR'), ('XPIRELATORIO'), ('XPISINCRONIA'), ('XPITABELAPRECO'), ('XPIVENDALOG'), ('XPROPOSTA'), ('XSOLICITACAOGARANTIAARQUIVOS'), ('XSUBUNIDADE'), ('XTABELATEXTO'), ('XTABPRECO'),
('XTABPRECOHISTORICO'), ('XVENDA'), ('XVENDADOCUMENTOS'), ('XVENDAPARCELAREAJUSTE'), ('XXADITIVO'), ('XXCONTRATO'), ('XXCONTRATOARQUIVO'), ('ZAUDITCHANGES'), ('ZWNLOG'), ('ZWNPARAM'), ('ZWNPARAMHST'), ('ZWNWCCONTROLEENVIOS')
) AS tabelasFiltro(tabs)
)
)
SELECT DISTINCT
SCHEMA_NAME(c.schema_id) AS Esquema,
OBJECT_NAME(a.object_id) AS Tabela,
d.TotalSizeMB AS Tamanho,
ISNULL(r.NumeroLinhas, 0) AS Linhas
FROM sys.columns a
JOIN sys.types b ON a.system_type_id = b.system_type_id
AND b.name IN (SELECT * FROM ( VALUES ('text'), ('image') ) tipos (nomes))
JOIN sys.tables c ON c.object_id = a.object_id
AND c.schema_id IN (SELECT * FROM ( VALUES (SCHEMA_ID('dbo')), (SCHEMA_ID('TOTVSAUDIT')) ) esquemas (nomes))
JOIN cte_sizes d ON a.object_id = d.OBJECT_ID
JOIN cte_gdic g ON c.name = g.TABELA
LEFT JOIN cte_rows r ON a.object_id = r.OBJECT_ID
ORDER BY d.TotalSizeMB DESC;
Nossa ferramenta já disponibiliza documentações de apoio para auxiliar na redução do conteúdo das tabelas e otimizar o processo. Recomendamos que o cliente utilize essas orientações previamente, de forma a garantir que a migração seja mais ágil, segura e com menor impacto para os usuários:
Segue o link com documentação para auxiliar na redução de dados nas principais tabelas do produto: https://tdn.totvs.com/x/KmTeO
USO DO MODELO DE RECUPERAÇÃO FULL
Este processo utiliza transações atômicas para transferir os valores entre as colunas, garantindo o menor risco possível aos dados. No entanto, bancos de dados com o modelo de recuperação Full terão um alto consumo do log de transações. Para assegurar a conclusão do RM Atualizador e a operação normal do produto, alinhe com o seu DBA as seguintes medidas preventivas: garantir espaço em disco suficiente e aumentar a frequência dos backups de log.
Observação: Durante a migração, o RM.Atualizador avalia o espaço disponível no log de transação. Se não houver capacidade suficiente, a conversão da coluna é interrompida por segurança, evitando que a base de dados fique inacessível.
Saiba Mais
0 Comentários