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 :

[2K5]Colations dans le cas d'une localisation européenne


Sujet :

MS SQL Server

  1. #1
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut [2K5]Colations dans le cas d'une localisation européenne
    Bonjour,

    je dois gérer plusieurs applications ayant chacune une base sur une instance SQL Server 2005. Il se trouve que ces applications sont localisés (Français, Néerlandais, allemand, Polonais). L'application existe (en Anglais, avec une collation à priori de langue anglaise), et je dois la localiser, le plus simplement possible (problèmes de délais)

    Se pose donc le problème de la collation. On a plusieurs possibilités :
    -Unicode sur l'instance. Mais ça implique pas mal de changement.
    -Localisation par pays pour chaque base, avec les différenciations dans les procédures stockées de chaque base pour les tables temporaires
    -Western Europe ? Celà inclut-il la Pologne ? j'en doute.

    Avez-vous déjà eu ce cas ? Comment l'avez-vous résolu ? Quel est le meilleur moyen de le résoudre ?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 962
    Points
    52 962
    Billets dans le blog
    6
    Par défaut
    -Unicode sur l'instance. Mais ça implique pas mal de changement.
    Et cela double le volume des données, donc des performances 2 fois moins bonnes...

    -Localisation par pays pour chaque base
    C'est la bonne approche..

    avec les différenciations dans les procédures stockées de chaque base pour les tables temporaires
    Si un seul serveur c'est nécessaire. Mais 2 remarques :
    1) essayez de minimiser l'utilisation des tables temporaires. Avec 2005, les CTE et la récursivité, vous ne devriez plus avoir besoin d'utiliser des tables temporaires. Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/s...te-recursives/
    De plus votre code restera identique si au lieu de créer vos table temporaire from scratch, vous les créez en SELECT ... INTO ! En effet vos colonnes hériterons de la collation des colonnes du SELECT...

    -Western Europe ? Celà inclut-il la Pologne ? j'en doute.
    Aucun intérêt.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Je croyais que les tables temporaires, dans tempdb, utilisaient la collation de l'instance ? Un SELECT ... INTO #matable conservera la collation des colonnes du select quand même ?


    edit : question supplémentaire : Les tables temporaires étaient souvent utilisées pour des raisons de performances (suppression de curseur avec une table temporaire et un while en SQL2K, par exemple, ou réduction du nombre de jointures). Est-ce que l'utilisation des "WITH" dans le cas des CTE est aussi performant ? Quid du cas ou une table temporaire était la factorisation d'une jointure et était utilisée plusieurs fois par d'autres jointures pour divers résultats ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 962
    Points
    52 962
    Billets dans le blog
    6
    Par défaut
    Lorsque vous utilisez des tables temporaires, vous obligez SQL Server à écrire physiquement sur les fichiers :
    • du journal des transactions de Tempdb
    • des données de la base tempdb.

    Si vous utilisez des constructions à base de vues ou mieux de CTE vous n'obligez jamais SQL Server à écrire des données dans des fichiers.
    Sachant qu'une écriture disque est au minimum 1000 fois plus couteuse que la même opération en mémoire... deduisez vous même ce qu'il faut faire !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Vu comme ça, c'est sur...

    Merci !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/11/2009, 10h03
  2. Réponses: 2
    Dernier message: 24/06/2008, 09h46
  3. calcul préavis dans le cas d'une période d'essai renouvelée
    Par benlabasse dans le forum Démission
    Réponses: 6
    Dernier message: 22/02/2008, 14h18
  4. DRY dans le cas d'une relation 1-N
    Par titoumimi dans le forum Ruby on Rails
    Réponses: 15
    Dernier message: 02/05/2007, 05h48
  5. [cast] dans le cas d'une Std::list
    Par ZaaN dans le forum SL & STL
    Réponses: 9
    Dernier message: 26/10/2006, 10h07

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