IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Choix entre une table temporaire et une table #Temp


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 55
    Points
    55
    Par défaut Choix entre une table temporaire et une table #Temp
    Bonjour,
    Je travaille sur un batch (aucun accès concurrent).

    J'ai une procédure stockée qui fait :

    DECLARE @DtJour DateTime
    SET @DtJour = GetDate()


    -- Création de la table temporaire
    SELECT A, B, C
    INTO TableTemporaire
    FROM RequeteComplique


    -- Nombreux traitements sur la table temporaire
    UPDATE TableTemporaire
    SET C = NULL
    WHERE C < @DtJour

    UPDATE T1
    SET CHAMP = 2
    FROM T1
    INNER JOIN TableTemporaire
    ON TableTemporaire.A = T1.A
    WHERE TableTemporaire.B = 1

    etc...
    -- Fin des traitements avec la table temporaire
    DROP TABLE TableTemporaire

    En général j'utilise les tables #Temporaire lorsqu'il y a des problématiques d'accès concurrent (accès web par exemple).
    Je me demande si je vais gagner en temps d'exécution de ma requête en remplaçant TableTemporaire par #TableTemporaire

    Merci d'avance++

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    Tu peux gagner un peu de temps avec le "#" puisque tu n'es pas obligé de faire le DROP. Mais ca va pas etre grand chose, c'est surtout fait pour l'acces concurrent comme tu dit

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 55
    Points
    55
    Par défaut
    En fait,
    Je me demandais s'il n'en profitait pas pour la stocker d'une manière particulière (genre dans la RAM aulieu de la mettre sur le HD).
    Auquel cas les gains en perf auraient été énorme.
    Le DROP je le ferais de toute manière. Question d'habitude . Et puis ce n'est pas ça qui prend bcp de temps

    Merci pour la réponse++

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    petit commentaire

    les tables #tabletemporaire sont crées dans la tempDB alors que tabletemporaire est créée dans la base en cours

    cette différence peut être importante si ton tempDB est sur un disque rapide ou si ton serveur est assez puissant et qu'il permet le montage en RAM de la tempDB...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. table temporaire dans une fonction
    Par jsteffe dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/12/2007, 14h26
  2. Impossible de créer une table temporaire dans une fonction
    Par bossun dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/10/2007, 10h03
  3. Réponses: 2
    Dernier message: 10/07/2007, 10h04
  4. Réponses: 8
    Dernier message: 06/06/2007, 17h03
  5. Réponses: 2
    Dernier message: 17/10/2006, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo