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

Administration SQL Server Discussion :

[ALIAS TABLE] - Comment définir un alias sur des tables


Sujet :

Administration SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 38
    Points
    38
    Par défaut [ALIAS TABLE] - Comment définir un alias sur des tables
    Bonjour,

    Voici ma problématique, mais je ne suis pas sûr de bien expliquer ce que je souhaite ni même si cela est possible :

    J'ai une table "ARTICLE". Celle-ci est alimentée par des données référence. Elle peut cependant être alimentée par une source différente de même format.

    Je que je souhaite faire :
    Pour toutes les fonctions traitant les ARTICLES, offrir le choix à l'utilisateur de choisir sa source ARTICLES (source référente ou source spécifique).
    Pour cela, j'envisageais de définir une table "ARTICLE1" (source référente) et une table ARTICLE2" (source spécifique). dans mes développements visual studio 2008 (dataset et tableadapter) faire référence à une table ALIAS "ARTICLE" associée soit à la table "ARTICLE1" ou "ARTICLE2", selon le choix de l'utilisateur.

    Pourquoi je ne retiens pas la solution de tout mettre dans la même table en identifiant la source :
    Pour des raisons de performance (table volumineuse).

    Il n'y a peut-être aucune solution à ma demande.

    Remerciements et bonne journée

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Regarde sous SQL Server, l’utilisation de ce qu’on appelle le "SQL Dynamique" (Dynamic SQL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       EXECUTE sp_executesql  …
    Cette technique te permettra de paramétrer dynamiquement dans les traitements T-SQL, la redirection, selon le choix de l’utilisateur, vers la table ARTICLE1 ou vers la table ARTICLE2
    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  3. #3
    Invité
    Invité(e)
    Par défaut
    Pourquoi ne pas utiliser des vues ?

  4. #4
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Citation Envoyé par spezet29 Voir le message
    Pourquoi je ne retiens pas la solution de tout mettre dans la même table en identifiant la source :
    Pour des raisons de performance (table volumineuse).
    Par curiosite, qu'appelez vous une table volumineuse ?
    Avez vous correctement place les indexes ?
    Avez vous songe au partitionning ?

  5. #5
    Membre actif
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Points : 269
    Points
    269
    Par défaut
    Oui si table avec volume correct les index doivent résoudre le problème sinon partitionnement

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    je vous remercie pour toutes ces réponses. Je vais les étudier et essayer de mettre en place une des solutions qui répond le mieux à mes attentes.

    La table ARTICLES contient 140 000 Lignes.
    Je ne souhaite pas intégrer 2 x 140 000 lignes dans la même table car elles sont exclusives. Je préfère créer 2 tables ARTICLE (référence) et ARTICLE (spécifique à un client donné) afin d'isoler les données.

    Il semble, à la lecture d'articles du Net, que le concept dataset et tableadapter de Visual studio puisse résoudre ce problème.

    Remerciements à tous.

    Cordialement,

  7. #7
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Sans savoir exactement ce que vous souhaitez realiser, avez vous penser a utiliser 3 tables ?
    Soit une table Article, generique pour ceux-ci, une table Source et une table Article_Source.
    Si un article provient d'une source specifique, inserez un lien dans votre table Article_Source (exemple: un modele de TV specifique pourrait tres bien provenir de differents entreports de stockages - s'est le meme article pourtant il vient de source differentes)

    Je pense que vous faites fausse route si vous creez 2 tables identiques juste pour differencier la source de vos donnees.
    De plus 140000 enregistrements, si vous avez un nombre de colonnes raisonnable (pour un systeme OLTP se serait plutot bien...) ce n'est pas des masses.

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    A mon avis vous avez plutôt des problèmes de conception que des problèmes liés aux performances SQL Serveur !
    Voici néanmoins ce que je vous recommande de faire :
    1-Créer une table Source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create table t_source
    (
         sou_id int not null primary key,
         sou_libelle varchar(32) not null
    )
    go
    insert into Source(sou_id,sou_libelle)
    select 1,'reference'
    union all
    select 2, 'spécifique'
    go
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    2-Créer une table Article
    create table Article
    (
       art_id int not null primary key,
       art_sou_id int not null reference source(sou_id)
       art_champx  typx
    ....
    ....
    ...
    )
    go
    Si tu as des problèmes de performances, alors tu dois reviser to data access layer.
    Si les problèmes persistes, pose ton problème sur les forums VS2008 et invite moi.

    NB : 140 000 ligne ne representent rien pour SQL Serveur !

    Bonne chance.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. Réponses: 22
    Dernier message: 10/07/2011, 17h49
  2. Réponses: 3
    Dernier message: 18/07/2008, 16h03
  3. Comment faire un DROP sur des tables qui change de nom ?
    Par GeantBioHazard dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/07/2008, 15h03
  4. Réponses: 3
    Dernier message: 30/08/2007, 15h41
  5. Réponses: 3
    Dernier message: 09/05/2007, 11h43

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