OVH Cloud OVH Cloud

Variable Table ou Table Temporaire. que préconiser ?

6 réponses
Avatar
Extra
Bonjour à tous,

une petite question, concernant l'utilisation d'une variable table en lieu
et place d'une table temporaire.

Est ce que la variable table est bien moins couteuse en ressource qu'une
table temporaire et est ce qu'il existe une limitation(mémoire je suppose
que oui).

Est ce que je suis dans le vrai en préconisant une variable table pour une
une faible quantité d'enregistrement ou mes connaissance sql serveur sont à
mettre à jour au plus vite ?

J'ai cherché dans la documentation SQL SERVER mais je n'ai rien trouvé à ce
sujet.

J'aimerais avoir votre avis sur ce sujet.
merci pour vos réponses.

6 réponses

Avatar
Sylvain Lafontaine
Les tables temporaires sont d'authentiques tables SQL stockées dans la base
tempdb; il est donc évident que pour de petites tables, genre 2 ou 3
enregistrements, les variables de type Table sont beaucoup moins
dispendieuses en ressources; sinon MS ne les aurait pas créées.

Cependant, si vos résultats intermédiaires couvrent des centaines de
millions d'enregistrements et plus, il est probable que l'utilisation de
tables temporaires soit mieux.

Pour les nombres intermédiaires d'enregistrements, j'imagine que vous êtes à
même d'évaluer la solution la plus propice.

S. L.

"Extra" wrote in message
news:
Bonjour à tous,

une petite question, concernant l'utilisation d'une variable table en lieu
et place d'une table temporaire.

Est ce que la variable table est bien moins couteuse en ressource qu'une
table temporaire et est ce qu'il existe une limitation(mémoire je suppose
que oui).

Est ce que je suis dans le vrai en préconisant une variable table pour une
une faible quantité d'enregistrement ou mes connaissance sql serveur sont
à
mettre à jour au plus vite ?

J'ai cherché dans la documentation SQL SERVER mais je n'ai rien trouvé à
ce
sujet.

J'aimerais avoir votre avis sur ce sujet.
merci pour vos réponses.




Avatar
Extra
la réponse me rassure sur mes préconisations et suis tout a fait d'accord.
Je pensais pouvoir utiliser une variable table a concurrence maxi de 50 à
100 enregistrements (en tenant compte de la structure de la table).

merci pour la réponse.

"Sylvain Lafontaine" a écrit :

Les tables temporaires sont d'authentiques tables SQL stockées dans la base
tempdb; il est donc évident que pour de petites tables, genre 2 ou 3
enregistrements, les variables de type Table sont beaucoup moins
dispendieuses en ressources; sinon MS ne les aurait pas créées.

Cependant, si vos résultats intermédiaires couvrent des centaines de
millions d'enregistrements et plus, il est probable que l'utilisation de
tables temporaires soit mieux.

Pour les nombres intermédiaires d'enregistrements, j'imagine que vous êtes à
même d'évaluer la solution la plus propice.

S. L.

"Extra" wrote in message
news:
> Bonjour à tous,
>
> une petite question, concernant l'utilisation d'une variable table en lieu
> et place d'une table temporaire.
>
> Est ce que la variable table est bien moins couteuse en ressource qu'une
> table temporaire et est ce qu'il existe une limitation(mémoire je suppose
> que oui).
>
> Est ce que je suis dans le vrai en préconisant une variable table pour une
> une faible quantité d'enregistrement ou mes connaissance sql serveur sont
> à
> mettre à jour au plus vite ?
>
> J'ai cherché dans la documentation SQL SERVER mais je n'ai rien trouvé à
> ce
> sujet.
>
> J'aimerais avoir votre avis sur ce sujet.
> merci pour vos réponses.
>
>





Avatar
lionelp
Bonjour,

Tout à fait, les cardinalités sur table variable = 1 donc
on privilégie leur utilisation à des volumes <0.

Cordialement,
LionelP

-----Message d'origine-----
la réponse me rassure sur mes préconisations et suis


tout a fait d'accord.
Je pensais pouvoir utiliser une variable table a


concurrence maxi de 50 Ã
100 enregistrements (en tenant compte de la structure de


la table).

merci pour la réponse.

"Sylvain Lafontaine" a écrit :

Les tables temporaires sont d'authentiques tables SQL




stockées dans la base
tempdb; il est donc évident que pour de petites




tables, genre 2 ou 3
enregistrements, les variables de type Table sont




beaucoup moins
dispendieuses en ressources; sinon MS ne les aurait pas




créées.

Cependant, si vos résultats intermédiaires couvrent




des centaines de
millions d'enregistrements et plus, il est probable que




l'utilisation de
tables temporaires soit mieux.

Pour les nombres intermédiaires d'enregistrements,




j'imagine que vous êtes Ã
même d'évaluer la solution la plus propice.

S. L.

"Extra" wrote in




message
news:6A1E149A-6B89-4BEC-B01C-





> Bonjour à tous,
>
> une petite question, concernant l'utilisation d'une




variable table en lieu
> et place d'une table temporaire.
>
> Est ce que la variable table est bien moins couteuse




en ressource qu'une
> table temporaire et est ce qu'il existe une




limitation(mémoire je suppose
> que oui).
>
> Est ce que je suis dans le vrai en préconisant une




variable table pour une
> une faible quantité d'enregistrement ou mes




connaissance sql serveur sont
> Ã
> mettre à jour au plus vite ?
>
> J'ai cherché dans la documentation SQL SERVER mais




je n'ai rien trouvé Ã
> ce
> sujet.
>
> J'aimerais avoir votre avis sur ce sujet.
> merci pour vos réponses.
>
>





.



Avatar
Fred BROUARD
l'avantage des tables temporaires est que l'on peut placer la tempdb (base ou
elles sont créées) sur un disque différent, donc paralléliser facilement les
traitements pour de grands volumes.

A +

Extra a écrit:
Bonjour à tous,

une petite question, concernant l'utilisation d'une variable table en lieu
et place d'une table temporaire.

Est ce que la variable table est bien moins couteuse en ressource qu'une
table temporaire et est ce qu'il existe une limitation(mémoire je suppose
que oui).

Est ce que je suis dans le vrai en préconisant une variable table pour une
une faible quantité d'enregistrement ou mes connaissance sql serveur sont à
mettre à jour au plus vite ?

J'ai cherché dans la documentation SQL SERVER mais je n'ai rien trouvé à ce
sujet.

J'aimerais avoir votre avis sur ce sujet.
merci pour vos réponses.





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Extra
Vos réponses me rassure sur mes préconisations.
merci à tous

"Fred BROUARD" a écrit :

l'avantage des tables temporaires est que l'on peut placer la tempdb (base ou
elles sont créées) sur un disque différent, donc paralléliser facilement les
traitements pour de grands volumes.

A +

Extra a écrit:
> Bonjour à tous,
>
> une petite question, concernant l'utilisation d'une variable table en lieu
> et place d'une table temporaire.
>
> Est ce que la variable table est bien moins couteuse en ressource qu'une
> table temporaire et est ce qu'il existe une limitation(mémoire je suppose
> que oui).
>
> Est ce que je suis dans le vrai en préconisant une variable table pour une
> une faible quantité d'enregistrement ou mes connaissance sql serveur sont à
> mettre à jour au plus vite ?
>
> J'ai cherché dans la documentation SQL SERVER mais je n'ai rien trouvé à ce
> sujet.
>
> J'aimerais avoir votre avis sur ce sujet.
> merci pour vos réponses.
>
>

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************




Avatar
Philippe [MS]
Attention, lorsque l'on utilise des variables de type table dans des
environnements nécessitant des performances accrues, il est important
éventuellement de bien localiser la table TempDB sur un espace disque
différent de celui de la base. Il est également important de s'assurer que
la taille de la table TempDB soit suffisament grande pour éviter d'avoir un
phénomène de tables redimensionnée lors de l'utilisation de cette variable
de type table.

Phil.

"lionelp" wrote in message
news:176201c4ad4f$9c37a2d0$
Bonjour,

Tout à fait, les cardinalités sur table variable = 1 donc
on privilégie leur utilisation à des volumes <0.

Cordialement,
LionelP

-----Message d'origine-----
la réponse me rassure sur mes préconisations et suis


tout a fait d'accord.
Je pensais pouvoir utiliser une variable table a


concurrence maxi de 50 Ã
100 enregistrements (en tenant compte de la structure de


la table).

merci pour la réponse.

"Sylvain Lafontaine" a écrit :

Les tables temporaires sont d'authentiques tables SQL




stockées dans la base
tempdb; il est donc évident que pour de petites




tables, genre 2 ou 3
enregistrements, les variables de type Table sont




beaucoup moins
dispendieuses en ressources; sinon MS ne les aurait pas




créées.

Cependant, si vos résultats intermédiaires couvrent




des centaines de
millions d'enregistrements et plus, il est probable que




l'utilisation de
tables temporaires soit mieux.

Pour les nombres intermédiaires d'enregistrements,




j'imagine que vous êtes Ã
même d'évaluer la solution la plus propice.

S. L.

"Extra" wrote in




message
news:6A1E149A-6B89-4BEC-B01C-





> Bonjour à tous,
>
> une petite question, concernant l'utilisation d'une




variable table en lieu
> et place d'une table temporaire.
>
> Est ce que la variable table est bien moins couteuse




en ressource qu'une
> table temporaire et est ce qu'il existe une




limitation(mémoire je suppose
> que oui).
>
> Est ce que je suis dans le vrai en préconisant une




variable table pour une
> une faible quantité d'enregistrement ou mes




connaissance sql serveur sont
> Ã
> mettre à jour au plus vite ?
>
> J'ai cherché dans la documentation SQL SERVER mais




je n'ai rien trouvé Ã
> ce
> sujet.
>
> J'aimerais avoir votre avis sur ce sujet.
> merci pour vos réponses.
>
>





.