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 :

Exite-t-il une alternative à SELECT ... INTO?


Sujet :

MS SQL Server

  1. #1
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut Exite-t-il une alternative à SELECT ... INTO?
    SqlServer 2000 SP3

    Bonjour.

    On dit ici http://sqlpro.developpez.com/cours/s...nsactsql/#L2.1 qu'il faut éviter les SELECT... INTO pour des questions de performances.

    Je comprends tout à fait mais existe-t-il un autre moyen de copier des tables à une autre?

    Merci d'avance

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    un insert into... select...

    Petit éclaircissement pour mettre un bémol à ce qui précède : le select into est très performant pour l'insertion (car les lignes insérées alors ne sont pas journalisées), mais cause une certaine contention sur les tables systèmes (car il crée la table, et donc insère dans sysobjects et syscolumns). Un select into est donc peu performant s'il insère peu de ligne et crée énormément de tables (cas de traitements batch), mais très performant dans le cas contraire (insertion d'énormément de lignes dans une table)
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Merci pour ta réponse.

    J'en étais arrivé à utiliser INSERT INTO ... SELECT.

    Je peux récupérer quelques centaines de lignes, laquelle est préférable dans ce cas? La vitesse est primordiable car c'est une recherche full text sur toutes les colonnes indexées de la base.

    Merci beaucoup.

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Combien de fois le select into (ou le insert into) sera-t-il appelé ? Si c'est une fois par index, vaut mieux passer par le insert, si c'est une fois pouir toute, par le select
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Pour chaque colonne indexée, c'est à dire dans mon cas 19 fois par recherche.

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  6. #6
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Alors insert... select...
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  7. #7
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Merci beaucoup.

    L'autre solution me prennait deux fois plus de temps pour s'exécuter mais je voulais en être sûr

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


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

Discussions similaires

  1. [2008R2] Copier la valeur de l'Id dans une requête SELECT * INTO
    Par lepotier dans le forum Développement
    Réponses: 0
    Dernier message: 17/07/2014, 16h36
  2. [Débutant] Passer les Paramètres à une requette "Select into "
    Par sidisadmir dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/10/2013, 09h44
  3. [SQL]Creer une table a partir d'une requete SELECT * INTO
    Par aliboubou dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 03/04/2007, 11h30
  4. une requête SELECT INTO provoque un plantage sous Access
    Par Invité dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 29/12/2005, 11h35
  5. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32

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