Transaction log - Alter column
Bonjour,
Soit le script de création de table de test suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
create table varchar2nvarchar
(
id int identity (1,1) not null,
value varchar(255),
nvalue nvarchar(255)
)
insert into varchar2nvarchar (value)
select 'abc'
union
select 'def'
union
select 'ghi'
union
select 'jkl'
union
select 'mno'
union
select 'pqr'
union
select 'stu'
union
select 'vwx'
union
select 'yz'
GO
insert into varchar2nvarchar (value)
select top 1000000 a.value + b.value
from varchar2nvarchar a cross join varchar2nvarchar b
GO 3 |
Ensuite l'execution de la commande:
Code:
1 2
|
alter table varchar2nvarchar alter column value nvarchar(255) |
Mon fichier journal grossis jusque 1500MB.
Je n'arrive pas à expliquer une telle croissance pour un si petit nombre de rows (qui représente 35MB de données).
Comment peut on expliquer une telle croissance ?
Est ce que le grossissement du fichier log est une fonction linéaire?
Est ce qu'un tel changement (alter table ... alter column...) va generer plus de "logs" en fonction de la taille totale d'une row ou est ce uniquement dépendant de taille de la colonne ?