Histórico da Página
...
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:
| Bloco de código | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
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
)
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'))) esquemas (nomes))
JOIN cte_sizes d ON a.object_id = d.OBJECT_ID
LEFT JOIN cte_rows r ON a.object_id = r.OBJECT_ID
ORDER BY d.TotalSizeMB DESC |
...
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
SELECT SCHEMA_NAME(C.SCHEMA_ID) ESQUEMA,
OBJECT_NAME(A.OBJECT_ID) TABELA, A.NAME COLUNA, B.NAME TIPO,
CASE WHEN B.NAME = 'IMAGE' THEN 'VARBINARY(MAX)'
WHEN B.NAME = 'NTEXT' THEN 'NVARCHAR(MAX)'
WHEN B.NAME = 'TEXT' THEN 'VARCHAR(MAX)'
END NOVOTIPO,
CASE WHEN B.IS_NULLABLE = 0 THEN 'NOT NULL' ELSE '' END PERMITENULO
FROM SYS.COLUMNS A JOIN SYS.TYPES B
ON A.SYSTEM_TYPE_ID = B.SYSTEM_TYPE_ID
JOIN SYS.TABLES C ON C.OBJECT_ID = A.OBJECT_ID
AND SCHEMA_NAME(C.SCHEMA_ID) IN= ('DBO','TOTVSAUDIT')
AND OBJECT_NAME(A.OBJECT_ID) COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI IN ( SELECT TABELA COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI FROM GDIC (NOLOCK))
AND B.NAME IN ('TEXT', 'NTEXT', 'IMAGE')
ORDER BY OBJECT_NAME(A.OBJECT_ID), A.NAME |
...
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:
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á migrando
Regra de Tempo de Processamento – Migração de Datatypes
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 e máximos padrão, respeitando regras específicas, com possibilidade de configuração manual via tela.
...
1. Migração do Tipo Release
Parâmetros de Tempo
Tempo mínimo permitido: 30 minutos
Tempo máximo padrão (default): 60 minutos
Regras de Configuração
Caso o usuário não informe um valor, o sistema assume o tempo padrão máximo de 60 minutos.
É permitido ao usuário informar via tela um tempo superior a 60 minutos.
Não é permitido informar um tempo inferior a 30 minutos





