Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Colonnes calculées et performance

4 réponses
Avatar
jerome
Bonjour,

Toujours mes histoires de code...

Est-il préférable, en termes de performance de créer une colonne calculée
qui serait la concaténation de colonne 1 + colonne 2 ou vaut il mieux créer
une colonne normale (colonne 1 + colonne2) qui serait mise à jour lors des
insert et update par trigger.
En sachant que cette nouvelle colonne doit être indexée.

Merci.

4 réponses

Avatar
Fred BROUARD
jerome a écrit :
Bonjour,

Toujours mes histoires de code...

Est-il préférable, en termes de performance de créer une colonne calculée
qui serait la concaténation de colonne 1 + colonne 2 ou vaut il mieux créer
une colonne normale (colonne 1 + colonne2) qui serait mise à jour lors des
insert et update par trigger.
En sachant que cette nouvelle colonne doit être indexée.

Merci.





une colonne calculée est calculée à la volée, c'est à dire à chaque fois
que vous faites un SELECT dessus.
Vous pouvez l'indexer, dans ce cas la valeur calculée sera instanciée
donc plus de calcul à la volée.
Quand à la calculer avant insertion ou update c'est encore mieux, mais
si c'est dans un trigger c'est franchement moins bon que l'indexation...

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
jerome
"Fred BROUARD" wrote in message
news:
jerome a écrit :
> Bonjour,
>
> Toujours mes histoires de code...
>
> Est-il préférable, en termes de performance de créer une colonne


calculée
> qui serait la concaténation de colonne 1 + colonne 2 ou vaut il mieux


créer
> une colonne normale (colonne 1 + colonne2) qui serait mise à jour lors


des
> insert et update par trigger.
> En sachant que cette nouvelle colonne doit être indexée.
>
> Merci.
>
>

une colonne calculée est calculée à la volée, c'est à dire à chaque fois
que vous faites un SELECT dessus.
Vous pouvez l'indexer, dans ce cas la valeur calculée sera instanciée
donc plus de calcul à la volée.
Quand à la calculer avant insertion ou update c'est encore mieux, mais
si c'est dans un trigger c'est franchement moins bon que l'indexation...

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************



Merci.

Donc, selon vous le mieux serait de calculer cette colonne dans l'applicatif
et de faire l'insert ou l'update avec la valeur connue ?
Avatar
Fred BROUARD
jerome a écrit :
"Fred BROUARD" wrote in message
news:
jerome a écrit :
Bonjour,

Toujours mes histoires de code...

Est-il préférable, en termes de performance de créer une colonne




calculée
qui serait la concaténation de colonne 1 + colonne 2 ou vaut il mieux




créer
une colonne normale (colonne 1 + colonne2) qui serait mise à jour lors




des
insert et update par trigger.
En sachant que cette nouvelle colonne doit être indexée.

Merci.




une colonne calculée est calculée à la volée, c'est à dire à chaque fois
que vous faites un SELECT dessus.
Vous pouvez l'indexer, dans ce cas la valeur calculée sera instanciée
donc plus de calcul à la volée.
Quand à la calculer avant insertion ou update c'est encore mieux, mais
si c'est dans un trigger c'est franchement moins bon que l'indexation...

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************



Merci.

Donc, selon vous le mieux serait de calculer cette colonne dans l'applicatif
et de faire l'insert ou l'update avec la valeur connue ?




non, indexer la colonne calculée me parait plus intelligent.

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
jerome
"Fred BROUARD" wrote in message
news:u$
jerome a écrit :
> "Fred BROUARD" wrote in message
> news:
>> jerome a écrit :
>>> Bonjour,
>>>
>>> Toujours mes histoires de code...
>>>
>>> Est-il préférable, en termes de performance de créer une colonne
> calculée
>>> qui serait la concaténation de colonne 1 + colonne 2 ou vaut il mieux
> créer
>>> une colonne normale (colonne 1 + colonne2) qui serait mise à jour lors
> des
>>> insert et update par trigger.
>>> En sachant que cette nouvelle colonne doit être indexée.
>>>
>>> Merci.
>>>
>>>
>> une colonne calculée est calculée à la volée, c'est à dire à chaque


fois
>> que vous faites un SELECT dessus.
>> Vous pouvez l'indexer, dans ce cas la valeur calculée sera instanciée
>> donc plus de calcul à la volée.
>> Quand à la calculer avant insertion ou update c'est encore mieux, mais
>> si c'est dans un trigger c'est franchement moins bon que


l'indexation...
>>
>> A +
>>
>> --
>> Frédéric BROUARD, MVP SQL Server, expert bases de données et langage


SQL
>> Le site sur le langage SQL et les SGBDR :


http://sqlpro.developpez.com
>> Audit, conseil, expertise, formation, modélisation, tuning,


optimisation
>> ********************* http://www.datasapiens.com


***********************
>
> Merci.
>
> Donc, selon vous le mieux serait de calculer cette colonne dans


l'applicatif
> et de faire l'insert ou l'update avec la valeur connue ?
>
>
non, indexer la colonne calculée me parait plus intelligent.

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************




Merci