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

Décisions SGBD Discussion :

Performances comparatives PostGreSQL vs SQL Server


Sujet :

Décisions SGBD

  1. #141
    Membre émérite
    Inscrit en
    Janvier 2006
    Messages
    719
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 719
    Points : 2 712
    Points
    2 712
    Par défaut Sémantique
    Citation Envoyé par MaximeCh Voir le message
    Voilà de la doc sur les collations sqlserver, difficile de faire moins documenté.

    En ce qui concerne la collation postgres, j'aurais d'abord du dire "potentiellement bien plus". La collation 'fr-u-ks-level1-kc-false' reste très simple et est pareille que french_ci_ai.
    Je vais faire un peu de vulgarisation Unicode et ICU ici, mais ça restera à ma sauce peu raffinée, et ne remplacera pas de vraies lectures.
    C'est très intéressant mais on s'est probablement mal compris.
    Ici tu montres bien que la documentation de SQL Server est insuffisante et bien en deçà de ce que propose ICU. Et éventuellement que ICU propose bien plus d'options. Certes.
    Par contre quand je lis ce message, auquel je réponds, on a l'impression que c'est la collation elle-même qui a des fonctions en moins et même que c'est pour cette raison que SQL Server peut se permettre de supporter le LIKE contrairement à Postgres.
    Et dans tous les cas, un exemple pratique serait bien plus lisible que beaucoup de documentation.

    Citation Envoyé par MaximeCh Voir le message
    Je ne suis pas d'accord, postgres est conçu pour tourner sur une machine dédiée, et le fait avec un peu de paramétrage sans problème.
    Là encore, tu as mal compris comment j'ai interprété la phrase de SQL Builder. Tel que j'ai compris (mais peut-être nous dira-t-il que c'était ton interprétation qui était correcte), SQL Server s'attend à priori à être seul sur sa machine, et s'autorise donc par défaut à s'approprier toutes les ressources disponibles, voire même à s'accorder plus de priorité que le système d'exploitation...
    Donc, quand on investit dans SQL Server, il faut être aussi prêt à investir dans une machine dédiée, sinon autant se contenter de la version express.
    Et non, je n'ai pas écrit que Postgres ne sait pas le faire, j'ai seulement voulu dire que ce n'est pas la manière dont il est utilisé la plupart du temps.

    Puisqu'on est dans la sémantique, je continue:

    Citation Envoyé par MaximeCh Voir le message
    Par ailleurs le nom de collation ignore_accent trouvé ici est assez mal choisi, la collation définie est insensible à la casse, aux accents, mais bien plus : c'est une collation ICU. Allez jeter un oeil à la doc ICU, vous entreverrez la puissance / l'usine à gaz du machin.
    Ici j'ai voulu garder un nom assez court, tant qu'on sait que cette collation sera la seule utilisée dans l'application ça peut suffire. Par contre pour les collations fournies par défaut, il vaut mieux des noms plus longs.

    Citation Envoyé par StringBuilder Voir le message
    Tout comme l'est french_ci_ai (ai incluant le œ ou le ç par exemple).
    Peut-être que le A est mal choisi en effet (j'aurais mis un D pour Diacritique mais j'aurais alours oublié les ligatures comme œ) mais fondamentalement, sais-tu seulement à quoi correspond "french"? Il faut quand même savoir que "insensible aux accents" n'a pas le même sens pour la langue française que pour d'autres langues. En français on admet généralement que si on doit écrire sans accents (sur un ordinateur avec un clavier qwerty par exemple) alors façade doit être écrit facade. En allemand c'est déjà plus compliqué, le remplaçant de ö n'est pas o mais oe (sans la ligature évidemment) et surtout le remplaçant de ß est ss... et comme si ce n'était pas assez compliqué, il y a deux ordres alphabétiques couramment utilisés: un dans lequel ö est remplacé par o, et un autre où il est remplacé par oe!
    Tout ça pour dire que œ ou ç sont en fait contenus dans "french", et ensuite, pour chaque langue on va avoir une ou plusieurs collations qui vont différer par la manière dont elles traitent les signes diacritiques (par exemple æ existe aussi bien dans la collation française et danoise, mais le traitement appliqué pour l'ordre de tri n'est pas du tout le même!). Une fois qu'on sait cela, le choix du nom french_ci_ai n'est pas si absurde que cela, finalement. Le seul problème est qu'on aimerait bien avoir quelque part une définition complète listant pour chaque collation, les substitutions qui sont faites. Pour ICU on a au moins le code source, mais ce ne serait pas inutile non plus.

  2. #142
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par MaximeCh Voir le message
    ...
    mssql par défaut prend 4Go de RAM, postgres même pas 1.
    On ne peut comparer que des choses comparables...
    Or le principe de PostGreSQL c'est d'en installer le minimum, quitte à ce que les utilisateurs doivent ajouter des "contrib" pour certaines formes de requêtes SQL, alors que dans SQL Server TOUT est installé... Ajoute donc toutes les contributions équivalentes à SQL Server dans postGreSQL et tu trouvera certainement un poids de code au moins équivalent voir plus...
    Par exemple SQL Server contient un SIG. Il faut ajouter la contribution PostGIS dans PG pour ce faire. SQL Server fait nativement du pooling de connexion. Pour PostGreSQL il faut rajouter une contribution externe. SQL Server fait du chiffrement. Pour PostgreSQL il faut rajouter la contrib pg_crypto (incomplète par rapport à SQL Server)....

    Et si le code SQL Server c'est plus lourd c'est parce qu'il y a beaucoup plus de fonctionnalités non supportées par PostGreSQL. En voici une liste non exhaustive :
    • Réplication des données en mode :
    • *** snapshot
    • *** fusion
    • *** peer to peer
      PostGreSQL ne supporte que la réplication transactionnelle des données et encore avec certaines limites...
    • Indexation verticale "ColumStore"
    • tables "In Memory"
    • Stockage des fichiers FILESTREAM (équivalent de la norme SQL "data link")
    • FileTable (une extension du FILESTREAM)
    • Indexation du XML
    • gestion du stockage (storage READ ONLY, parallélisme, dissociation des données LOBs / data d'une même table/index...)
    • cache de second niveau
    • pooling automatique des connexions
    • opération de DDL "online"
    • parallélisme automatique
    • journalisation des transactions par base (PostGreSQL n'utilise qu'un seul journal pour toutes les bases ce qui pose des problèmes de contention et de réplication).
    • compression des données des tables et/ou des index
    • compression des types NUMERIC ou DECIMAUX (vardecimal)
    • compression du NULL (sparse columns)
    • requêtes inter-base non optimisées (PostGreSQL fait du "remote join")
    • hint de plan
    • diagnostic d'indexation
    • "inligning" des UDF
    • jointure adapative
    • Support de XQuery et XPath2 (PostGreSQL en est resté à la version 1 de XQuery...)
    • mise à jour de fragments de XML (PostGreSQL ne peut pas mettre à jour une partie du XML; il faut récrire l'intégralité du document)
    • gestion des arborescence en mode path via hierarchyId (la contribution ltree de PostGreSQL s’en rapproche à environ 15%...)
    • verrouillage pessimiste
    • masquage des données
    • chiffrement auto salé
    • table temporelles normalisées
    • table de graphes (tables de nœud, tables d’arête, support de GQL)
    • "big table" (limitées à 30 000 colonnes)
    • messagerie de base de données (pour permettre d'envoyer des emails directement via SQL)
    • gouverneur de ressources (pour limiter par quoto les ressources disque, CPU ou RAM de certaines utilisateurs)
    • collecteur de données (pour enregistrer continuellement tous les diagnostics de SQL Server)
    • Query Store (pour conserver trace de toutes les requêtes avec tous les plans d'exécution)


    Et je n'ai pas parlé de tous les modules d'administration dont il n'existe pas d'équivalent dans le monde PostGreSQL... Database Tuning Advisor, gestion de projets, template de code...

    Le problème du like, c'est une critique de mauvaise foi éhontée de la part de SQLPro, pour qui on rédige ici le chapitre qui lui manquait tandis qu'il finit son oeuvre de benchmark dans son coin, et qui pointe le bout de son nez dès que ça sent le souffre pour postgres.
    J'ai du travail à l'international et n'ai pas toujours le temps de consacrer à répondre à vos élucubrations....
    En tout état de cause dire à un client qu'il faut doubler ou tripler ses colonnes dans une table pour avoir un minimum de correspondance entre SQL Server et PostrgeSQL, et en plus modifier toutes ses requêtes, ça va pas le faire du tout.... Il faut quand mêle tenir compte des rélités !

    Et oui pas de like sur les collations non déterministes, ça appelle des problèmes très bien évoqués ici qui sont loin d'être triviaux, ce qu'est justement la collation french_ci_ai utilisée sur sqlserver. Tant qu'on y est, postgres est encodée par défaut en UTF-8, sqlserver sur un désuet dérivé de LATIN1, col SQL_Latin1_General_CP1_CI_AS sur ma version 2019.
    Microsoft avec SQL Server y arrive bien depuis 22 ans... Donc PostGreSQL a toujours plus de 22 ans de retard... et toujours aucune solution à ce problème !

    Pour la jouer pédant et coller au cadre, le support d'UTF-8 est arrivé sur sqlserver... l'année dernière!!! ouff!! Sinon pas de soucis pour collationner une base postgres en C bien sûr, et stocker de façon ferme tous ses caractères sur un octet, et dire aux chinois d'aller voir ailleurs. Niveau support des encodages et recherche textuelle, postgres c'est la dernière Tesla, sqlserver c'est une pauvre Polo qui a truqué les tests de pollution!
    On reste pantois devant de telles stupidités... vas le dire à ceux qui conçoivent des sites internationaux multilingues et qui sont partis de PG ou d'Oracle pour aller vers SQL Server pour résoudre ce genre de problème. Quand à l'UTF8, c'est un piège à con à la TRUMP pour assouvir la domination de l'anglais par rapport à toutes les langues latines dotées de caractères diacritiques ! Avec un encodage ASCII toute était codé sur un seul octet et les recherches était linéaire en temps. Avec l'UTF8, tous les accents sont codés sur deux octets rendant toutes les langues latines, sauf l'anglais moins performantes : plus d'octets, des recherches moins rapide du fait des décalages d'octets dans les comparaisons ! C'est une des raisons qui faisait que Microsoft ne voulait pas implémenter l'UTF8 dans la plupart de ses outils et préféraient l'UTF16. Maintenant s'il faut satisfaire les imbéciles pour assurer l'hégémonie de l'anglais....

    Bref, la moutarde me monte doucement au nez devant ces abîmes de réflexion, et je vais finir par lui donner jour à ce site de benchmark, pour au moins concurrencer par SEO la tendance dévorante à la désinformation de Frédéric Brouard, (et montrer aux pauvres étudiants de DUT/licences pro, biberonnés de Microsoft comme j'ai pu l'être, la porte vers une informatique un peu moins malheureuse. et sauver le monde).
    Vive l'utopie et la bêtise !

    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. #143
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par esperanto Voir le message
    ...
    Peut-être que le A est mal choisi en effet (j'aurais mis un D pour Diacritique mais j'aurais alours oublié les ligatures comme œ) mais fondamentalement, sais-tu seulement à quoi correspond "french"? Il faut quand même savoir que "insensible aux accents" n'a pas le même sens pour la langue française que pour d'autres langues. En français on admet généralement que si on doit écrire sans accents (sur un ordinateur avec un clavier qwerty par exemple) alors façade doit être écrit facade. En allemand c'est déjà plus compliqué, le remplaçant de ö n'est pas o mais oe (sans la ligature évidemment) et surtout le remplaçant de ß est ss... et comme si ce n'était pas assez compliqué, il y a deux ordres alphabétiques couramment utilisés: un dans lequel ö est remplacé par o, et un autre où il est remplacé par oe!
    Tout ça pour dire que œ ou ç sont en fait contenus dans "french", et ensuite, pour chaque langue on va avoir une ou plusieurs collations qui vont différer par la manière dont elles traitent les signes diacritiques. Une fois qu'on sait cela, le choix du nom french_ci_ai n'est pas si absurde que cela, finalement. Le seul problème est qu'on aimerait bien avoir quelque part une définition complète listant pour chaque collation, les substitutions qui sont faites. Pour ICU on a au moins le code source, mais ce ne serait pas inutile non plus.
    Tant qu'à faire intéressons nous aussi aux collations de SQL Server qui sont sensible à la largeur des caractères.... Comment PostGreSQL peut-il faire la distinction entre ces éléments ou pas :
    "100m²"
    "100m2"
    "100M²"
    "100M2"
    Pour récupérer les m² quelque soit la casse, SQL Server propose l'extension WS dans la collation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM   ...
    WHERE MaColonne LIKE '%m²%" COLLATE French_CI_AS_WS;
    Et pour les confondre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM   ...
    WHERE MaColonne LIKE '%m²%" COLLATE French_CI_AS;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM   ...
    WHERE MaColonne LIKE '%m2%" COLLATE French_CI_AS;
    WS signifiant Wide Sensitive

    Que serait l'équivalent dans PostGreSQL ?

    Dans le même esprit comment PostGreSQL permet-il de gérer la différence ou non, des deux formes d'écriture du japonais, le katakana et l'hiragana ?

    Dans SQL Server il suffit de préciser KS (pour Kanatype Sensitive) afin de les distingues, sinon, il y a confusions....

    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/ * * * * *

  4. #144
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    ...
    Pour ce qui est des recherches textuelles, je suis surpris de ce que tu avances : car non seulement le LIKE ici fonctionne "mieux" puisqu'il supporte les collations non déterministes, mais surtout, il y a textsearch qui permet de faire des recherches sur les formes infléchies, et même, si bien configuré, sur les synonymes et même traductions. J'irai pas dire sans avoir vu que PostgreSQL peut pas faire mieux, mais on est quand même loin de la Polo truquée !
    petites corrections, c'est pas forme "infléchies" mais forme fléchies....

    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. #145
    Membre émérite
    Inscrit en
    Janvier 2006
    Messages
    719
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 719
    Points : 2 712
    Points
    2 712
    Par défaut
    La vache, un message tellement bien écrit que je n'ai même pas trouvé le lien "répondre avec citation", trop fort!

    Citation Envoyé par SQLpro-
    Or le principe de PostGreSQL c'est d'en installer le minimum, quitte à ce que les utilisateurs doivent ajouter des "contrib" pour certaines formes de requêtes SQL, alors que dans SQL Server TOUT est installé... Ajoute donc toutes les contributions équivalentes à SQL Server dans postGreSQL et tu trouvera certainement un poids de code au moins équivalent voir plus...
    Déjà je trouve le principe très bon, on installe seulement ce qui est nécessaire pour une application donnée. Tout le monde n'a pas besoin de toutes les fonctions.
    Et quand bien même, quand MaximeCh nous informe ici de la taille de SQL Server express (!) et que je compare à celle de Postgres (191 Mo pour la version Windows), en sachant quand même que l'installeur contient bien toutes les contrib (elles sont présentes sur le disque, mais on peut choisir de les charger en mémoire ou pas), alors même en chargeant toutes les contrib sur une instance donnée j'ai du mal à voir comment on peut atteindre les 1.5 Go de SQL Server...

    Citation Envoyé par SQLpro Voir le message
    Tant qu'à faire intéressons nous aussi aux collations de SQL Server qui sont sensible à la largeur des caractères.... Comment PostGreSQL peut-il faire la distinction entre ces éléments ou pas :
    "100m²"
    "100m2"
    "100M²"
    "100M2"
    Pour récupérer les m² quelque soit la casse, SQL Server propose l'extension WS dans la collation
    Test rapide avec la collation ignore_accents que j'ai créée précédemment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    testICU=# truncate t_accents2;
    TRUNCATE TABLE
    testICU=# insert into t_accents2(datum) values ('100 m²');
    INSERT 0 1
    testICU=# select * from t_accents2 where datum = '100 m2';
       id   | datum
    --------+--------
     100005 | 100(1 row)
     
    testICU=# \d t_accents2
    testICU=# select * from t_accents2 where datum = '100 M2';
       id   | datum
    --------+--------
     100005 | 100(1 row)
    Donc on dirait bien que le traitement de ² est déjà intégré par défaut.

  6. #146
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    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/ * * * * *

  7. #147
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par esperanto Voir le message
    ...
    Et quand bien même, quand MaximeCh nous informe ici de la taille de SQL Server express (!) et que je compare à celle de Postgres (191 Mo pour la version Windows), en sachant quand même que l'installeur contient bien toutes les contrib (elles sont présentes sur le disque, mais on peut choisir de les charger en mémoire ou pas), alors même en chargeant toutes les contrib sur une instance donnée j'ai du mal à voir comment on peut atteindre les 1.5 Go de SQL Server...
    Ce que vous dite est faux. Par exemple la contrib PostGIS n'est pas compris dans l'installation par défaut, de même que PGBouncer, PGpool...

    Fake News !

    Et votre test est tronqué, incomplet donc non pertinent...

    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/ * * * * *

  8. #148
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par MaximeCh Voir le message
    ...
    PostgreSQL est mieux adapté pour tourner sur un raspberry pi comme sur un cluster d'AMD Epyc2 réparti sur plusieurs continents (et pour une appli de ce dernier niveau, le choix ne se fera de toute façon probablement pas entre sqlserver et postgres mais entre google bigtable et google spanner).
    Oui et non. SQL Server dispose d'une version appelée LocalDB à peu près équivalente de SQL lite. PostGreSQL n'a pas une telle version et dans ce cas l'installation et son empreinte mémoire est bien, bien, bien plus importante !
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    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/ * * * * *

  9. #149
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par alassanediakite Voir le message
    Salut
    Avec la fonction remove_accents réécrite...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    CREATE OR REPLACE FUNCTION public.remove_fr_accents(
    	string text)
        RETURNS text
        LANGUAGE 'sql'
     
        COST 100
        IMMUTABLE PARALLEL SAFE
     
    AS $BODY$
    select regexp_replace(
    	regexp_replace(
    		regexp_replace(
    			regexp_replace(
    				regexp_replace(
    					regexp_replace(
    						regexp_replace(
    							regexp_replace(
    								regexp_replace(lower(string), 
    								'(ae|æ)','(ae|æ)','g'), 
    								'(oe|œ)','(oe|œ)','g'),
    								'(i|î|ï)','(i|î|ï)','g'),
    								'(o|ô|ö)','(o|ô|ö)','g'),
    								'(u|ù|û|ü)','(u|ù|û|ü)','g'),
    								'(a|â|ä|à)','(a|â|ä|à)','g'),
    								'(y|ÿ)','(y|ÿ)','g'),
    								'(c|ç)','(c|ç)','g'),
    								'(e|è|é|ê|ë)','(e|è|é|ê|ë)','g')
     
    $BODY$;
    ...
    ta fonction est notablement incomplète car elle ne prends pas en compte les majuscules accentuées !

    Je rappelle que les majuscules DOIVENT ÊTRE ACCENTUÉES !

    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/ * * * * *

  10. #150
    Membre émérite
    Inscrit en
    Janvier 2006
    Messages
    719
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 719
    Points : 2 712
    Points
    2 712
    Par défaut
    OK alors ici je vois bien la liste des collations disponibles, mais nulle part la définition complète de l'une d'entre elles: par définition je veux dire la liste des caractères bénéficiant d'un traitement particulier par exemple (ce qui change d'une collation à l'autre, en fait). Avec ICU, on peut au moins avoir l'info dans le code source, même si c'est vrai qu'une définition normalisée serait préférable, c'est déjà ça.

    Citation Envoyé par SQLpro Voir le message
    Ce que vous dite est faux. Par exemple la contrib PostGIS n'est pas compris dans l'installation par défaut, de même que PGBouncer, PGpool...
    OK en effet, moi je parlais du package "contrib" distribué par défaut avec Postgres, contenant entre autres, CITEXT, pg_trgm, unaccent, ...
    mais pas les gros packages maintenus par des équipes distinces.

    N'empêche: PostGIS fait 54 Mo à télécharger, pgbouncer 554 Ko, pgPool-II environ 1.5 Mo... faut quand même faire pas mal d'additions pour arriver à 1,5 Go !!!
    (sans même parler du fait que pgboucer et pgpool étant deux outils pour faire la même chose, on n'a aucune raison d'installer les deux en même temps, sauf pour des tests comparatifs évidemment)

    Citation Envoyé par SQLpro Voir le message
    Oui et non. SQL Server dispose d'une version appelée LocalDB à peu près équivalente de SQL lite. PostGreSQL n'a pas une telle version et dans ce cas l'installation et son empreinte mémoire est bien, bien, bien plus importante !
    C'est bien pour ça que je disais ici que je n'utilise pas toujours le même produit, surtout quand c'est du libre: quand je veux créer une base de données locale, je ne cherche pas une version locale de Postgres, j'utilise SQLite!

  11. #151
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par esperanto Voir le message
    ... N'empêche: PostGIS fait 54 Mo à télécharger, pgbouncer 554 Ko, pgPool-II environ 1.5 Mo... faut quand même faire pas mal d'additions pour arriver à 1,5 Go !!!
    je ne vous crois pas assez stupide pour confondre un téléchargement compressé et un code installé qui ne l'est pas ?

    Donc encore une fake news....

    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/ * * * * *

  12. #152
    Membre émérite
    Inscrit en
    Janvier 2006
    Messages
    719
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 719
    Points : 2 712
    Points
    2 712
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    je ne vous crois pas assez stupide pour confondre un téléchargement compressé et un code installé qui ne l'est pas ?
    Non mais à moins que j'ai mal compris, la taille évoquée ici était celle de l'archive compressée, donc en effet ça m'intéresse de savoir ce que les 1,5 Go compressés deviennent une fois déployés. Et je te mets au défi de trouver ensuite la même taille en additionnant celle de tous les modules disponibles pour Postgres, évidemment après décompression.

    Citation Envoyé par SQLpro Voir le message
    Citation Envoyé par MaximeCh Voir le message
    Et oui pas de like sur les collations non déterministes, ça appelle des problèmes très bien évoqués ici qui sont loin d'être triviaux, ce qu'est justement la collation french_ci_ai utilisée sur sqlserver.
    Microsoft avec SQL Server y arrive bien depuis 22 ans... Donc PostGreSQL a toujours plus de 22 ans de retard... et toujours aucune solution à ce problème !
    Au hasard, quelqu'un peut-il tester un exemple concret pour voir comment se comporte french_ci_ai avec un LIKE?

  13. #153
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Citation Envoyé par SQLpro Voir le message
    ta fonction est notablement incomplète car elle ne prends pas en compte les majuscules accentuées !

    Je rappelle que les majuscules DOIVENT ÊTRE ACCENTUÉES !

    A +
    lower et ~* résolvent ce problème.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  14. #154
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par esperanto Voir le message
    Au hasard, quelqu'un peut-il tester un exemple concret pour voir comment se comporte french_ci_ai avec un LIKE?
    C'est le test que j'ai fait ici : https://www.developpez.net/forums/d2.../#post11380641

    Et c'est là que je me suis rendu compte de cette limite, qui n'avait pas encore été évoquée de LIKE sous PostregreSQL concernant les collations non déterministes.

    Mais voici un test actualisé avec m² :
    Nom : m2.png
Affichages : 755
Taille : 28,3 Ko
    On ne jouit bien que de ce qu’on partage.

  15. #155
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    ...
    Mais voici un test actualisé avec m² :
    Nom : m2.png
Affichages : 755
Taille : 28,3 Ko
    Il faut utiliser une collation _WS pour ce faire. par exemple French_CI_AI_WS

    Exemple :

    Nom : SQL-Server-COLLATION-WideSensitive.png
Affichages : 566
Taille : 24,2 Ko

    Le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    USE tempdb
    GO
     
    CREATE TABLE mots (id int identity primary key, mot varchar(50));
     
    INSERT INTO mots VALUES ('100 M2'), ('100 M²'), ('100 m2'), ('100 m²');
     
    SELECT * FROM mots WHERE mot LIKE '%m²%' COLLATE French_CI_AI_WS
    Ceci fonctionne quelque soit la collation de la base et des colonnes de la table... parmi plus de 4 000 collations disponibles dans SQL Server

    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/ * * * * *

  16. #156
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il faut utiliser une collation _WS pour ce faire. par exemple French_CI_AI_WS

    A +
    Oui, je voulais simplement démontrer qu'avec CI_AI, le like permettait bien de ne pas faire la différence.
    Ce qui n'est possible avec PostgreSQL qu'avec une égalité, et pose rapidement problème.
    On ne jouit bien que de ce qu’on partage.

  17. #157
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par esperanto Voir le message
    OK alors ici je vois bien la liste des collations disponibles, mais nulle part la définition complète de l'une d'entre elles: ...
    Formidable ! En 19 minutes, vous avez eu le temps de voir parmi les 300 pages de la doc... soit 15 pages minutes. Et vous êtes par conséquent passé à côté.

    Je reposte :
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    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/ * * * * *

  18. #158
    Membre émérite
    Inscrit en
    Janvier 2006
    Messages
    719
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 719
    Points : 2 712
    Points
    2 712
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Formidable ! En 19 minutes, vous avez eu le temps de voir parmi les 300 pages de la doc... soit 15 pages minutes. Et vous êtes par conséquent passé à côté.

    Je reposte :
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    A +
    Oui je suis tellement passé à côté que je n'arrive toujours pas à trouver la liste des caractères concernés (et si possible la liste des règles) par french_ai_ci (lisez les questions avant de prétendre répondre!!!), même après avoir lu les deux pages du lien précédent.
    ça peut être important dans le cas où j'ai une colonne qui contient parfois des textes en langue étrangère, pour savoir si l'ordre de tri restera acceptable ou si je dois privilégier une langue plutôt qu'une autre.

  19. #159
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par esperanto Voir le message
    ...
    Au hasard, quelqu'un peut-il tester un exemple concret pour voir comment se comporte french_ci_ai avec un LIKE?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    USE tempdb
    GO
     
    CREATE TABLE mots (id int identity primary key, mot varchar(50) COLLATE French_100_BIN);
     
    INSERT INTO mots VALUES ('élevé'), ('élève'), ('eleve'), ('éleve'), 
                            ('ÉLEVÉ'), ('ELEVE'), ('ÉLEVE'), ('ÉLÈVE');
     
    INSERT INTO mots VALUES ('boy'), ('girl'), ('MAN'), ('WOMAN');
    Notez l'utilisation d'une collation encore différentes de celles de tests pour la colonne. J'aurais pu utiliser n'importe laquelle des 4 000 collations de SQL Server...


    --> recherche CI / AI et présentation CI/AS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM   mots 
    WHERE  mot LIKE '%eLeVe%' COLLATE French_CI_AI 
    ORDER  BY mot COLLATE French_100_CI_AS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    id          mot
    ----------- -------------------------------
    3           eleve
    6           ELEVE
    7           ÉLEVE
    4           éleve
    2           élève
    8           ÉLÈVE
    1           élevé
    5           ÉLEVÉ
    --> recherche CI / AI et présentation CI/AS avec similarité de lettres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM   mots 
    WHERE  mot LIKE '%' + REPLICATE('[EVLE]', LEN(mot)) +'%' COLLATE French_CI_AI 
    ORDER  BY mot COLLATE French_100_CI_AS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    id          mot
    ----------- -------------------------------
    3           eleve
    6           ELEVE
    7           ÉLEVE
    4           éleve
    2           élève
    8           ÉLÈVE
    1           élevé
    5           ÉLEVÉ
    --> recherche CS / AI et présentation CI/AS avec similarité de lettres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM   mots 
    WHERE  mot LIKE '%' + REPLICATE('[EVLE]', LEN(mot)) +'%' COLLATE French_CS_AI 
    ORDER  BY mot COLLATE French_100_CI_AS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    id          mot
    ----------- -------------------------------
    6           ELEVE
    7           ÉLEVE
    8           ÉLÈVE
    5           ÉLEVÉ

    --> recherche CI / AS et présentation CI/AI avec similarité de lettres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM   mots 
    WHERE  mot LIKE '%' + REPLICATE('[evle]', LEN(mot)) +'%' COLLATE French_CI_AS
    ORDER  BY mot COLLATE French_100_CI_AI
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    id          mot
    ----------- -------------------------------
    3           eleve
    6           ELEVE
    Bref, chacune de ces requêtes utilisent 2 à 3 collations :
    1) la collation des données : French_100_BIN
    2) la collation French_CS_AI / French_CS_AI pour la recherche avec LIKE
    3) la collation French_CI_AS / French_CI_AI pour le tri

    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/ * * * * *

  20. #160
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    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 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par esperanto Voir le message
    Oui je suis tellement passé à côté que je n'arrive toujours pas à trouver la liste des caractères concernés (et si possible la liste des règles) par french_ai_ci (lisez les questions avant de prétendre répondre!!!), même après avoir lu les deux pages du lien précédent.
    ça peut être important dans le cas où j'ai une colonne qui contient parfois des textes en langue étrangère, pour savoir si l'ordre de tri restera acceptable ou si je dois privilégier une langue plutôt qu'une autre.
    Il n'y a pas de liste des caractères concernés puisque ces listes sont celles des encodages spécifique aux normes et standards de l'industrie.... mais il y a les principes de classements.

    Il sont d'ailleurs listés par la fonction table sys.fn_helpcollations().

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM sys.fn_helpcollations();
    Voici la sortie des 5508 collations disponibles dans SQL Server 2019 :

    Albanian_BIN : Albanian, binary sort
    Albanian_BIN2 : Albanian, binary code point comparison sort
    Albanian_CI_AI : Albanian, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Albanian_CI_AI_WS : Albanian, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Albanian_CI_AI_KS : Albanian, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Albanian_CI_AI_KS_WS : Albanian, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Albanian_CI_AS : Albanian, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Albanian_CI_AS_WS : Albanian, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Albanian_CI_AS_KS : Albanian, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Albanian_CI_AS_KS_WS : Albanian, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Albanian_CS_AI : Albanian, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Albanian_CS_AI_WS : Albanian, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Albanian_CS_AI_KS : Albanian, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Albanian_CS_AI_KS_WS : Albanian, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Albanian_CS_AS : Albanian, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Albanian_CS_AS_WS : Albanian, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Albanian_CS_AS_KS : Albanian, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Albanian_CS_AS_KS_WS : Albanian, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Albanian_100_BIN : Albanian-100, binary sort
    Albanian_100_BIN2 : Albanian-100, binary code point comparison sort
    Albanian_100_CI_AI : Albanian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Albanian_100_CI_AI_WS : Albanian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Albanian_100_CI_AI_KS : Albanian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Albanian_100_CI_AI_KS_WS : Albanian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Albanian_100_CI_AS : Albanian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Albanian_100_CI_AS_WS : Albanian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Albanian_100_CI_AS_KS : Albanian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Albanian_100_CI_AS_KS_WS : Albanian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Albanian_100_CS_AI : Albanian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Albanian_100_CS_AI_WS : Albanian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Albanian_100_CS_AI_KS : Albanian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Albanian_100_CS_AI_KS_WS : Albanian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Albanian_100_CS_AS : Albanian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Albanian_100_CS_AS_WS : Albanian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Albanian_100_CS_AS_KS : Albanian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Albanian_100_CS_AS_KS_WS : Albanian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Albanian_100_CI_AI_SC : Albanian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Albanian_100_CI_AI_WS_SC : Albanian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Albanian_100_CI_AI_KS_SC : Albanian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Albanian_100_CI_AI_KS_WS_SC : Albanian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Albanian_100_CI_AS_SC : Albanian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Albanian_100_CI_AS_WS_SC : Albanian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Albanian_100_CI_AS_KS_SC : Albanian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Albanian_100_CI_AS_KS_WS_SC : Albanian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Albanian_100_CS_AI_SC : Albanian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Albanian_100_CS_AI_WS_SC : Albanian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Albanian_100_CS_AI_KS_SC : Albanian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Albanian_100_CS_AI_KS_WS_SC : Albanian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Albanian_100_CS_AS_SC : Albanian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Albanian_100_CS_AS_WS_SC : Albanian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Albanian_100_CS_AS_KS_SC : Albanian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Albanian_100_CS_AS_KS_WS_SC : Albanian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Albanian_100_CI_AI_SC_UTF8 : Albanian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Albanian_100_CI_AI_WS_SC_UTF8 : Albanian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Albanian_100_CI_AI_KS_SC_UTF8 : Albanian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Albanian_100_CI_AI_KS_WS_SC_UTF8 : Albanian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Albanian_100_CI_AS_SC_UTF8 : Albanian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Albanian_100_CI_AS_WS_SC_UTF8 : Albanian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Albanian_100_CI_AS_KS_SC_UTF8 : Albanian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Albanian_100_CI_AS_KS_WS_SC_UTF8 : Albanian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Albanian_100_CS_AI_SC_UTF8 : Albanian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Albanian_100_CS_AI_WS_SC_UTF8 : Albanian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Albanian_100_CS_AI_KS_SC_UTF8 : Albanian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Albanian_100_CS_AI_KS_WS_SC_UTF8 : Albanian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Albanian_100_CS_AS_SC_UTF8 : Albanian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Albanian_100_CS_AS_WS_SC_UTF8 : Albanian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Albanian_100_CS_AS_KS_SC_UTF8 : Albanian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Albanian_100_CS_AS_KS_WS_SC_UTF8 : Albanian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Arabic_BIN : Arabic, binary sort
    Arabic_BIN2 : Arabic, binary code point comparison sort
    Arabic_CI_AI : Arabic, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Arabic_CI_AI_WS : Arabic, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Arabic_CI_AI_KS : Arabic, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Arabic_CI_AI_KS_WS : Arabic, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Arabic_CI_AS : Arabic, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Arabic_CI_AS_WS : Arabic, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Arabic_CI_AS_KS : Arabic, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Arabic_CI_AS_KS_WS : Arabic, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Arabic_CS_AI : Arabic, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Arabic_CS_AI_WS : Arabic, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Arabic_CS_AI_KS : Arabic, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Arabic_CS_AI_KS_WS : Arabic, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Arabic_CS_AS : Arabic, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Arabic_CS_AS_WS : Arabic, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Arabic_CS_AS_KS : Arabic, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Arabic_CS_AS_KS_WS : Arabic, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Arabic_100_BIN : Arabic-100, binary sort
    Arabic_100_BIN2 : Arabic-100, binary code point comparison sort
    Arabic_100_CI_AI : Arabic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Arabic_100_CI_AI_WS : Arabic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Arabic_100_CI_AI_KS : Arabic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Arabic_100_CI_AI_KS_WS : Arabic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Arabic_100_CI_AS : Arabic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Arabic_100_CI_AS_WS : Arabic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Arabic_100_CI_AS_KS : Arabic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Arabic_100_CI_AS_KS_WS : Arabic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Arabic_100_CS_AI : Arabic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Arabic_100_CS_AI_WS : Arabic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Arabic_100_CS_AI_KS : Arabic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Arabic_100_CS_AI_KS_WS : Arabic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Arabic_100_CS_AS : Arabic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Arabic_100_CS_AS_WS : Arabic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Arabic_100_CS_AS_KS : Arabic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Arabic_100_CS_AS_KS_WS : Arabic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Arabic_100_CI_AI_SC : Arabic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Arabic_100_CI_AI_WS_SC : Arabic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Arabic_100_CI_AI_KS_SC : Arabic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Arabic_100_CI_AI_KS_WS_SC : Arabic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Arabic_100_CI_AS_SC : Arabic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Arabic_100_CI_AS_WS_SC : Arabic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Arabic_100_CI_AS_KS_SC : Arabic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Arabic_100_CI_AS_KS_WS_SC : Arabic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Arabic_100_CS_AI_SC : Arabic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Arabic_100_CS_AI_WS_SC : Arabic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Arabic_100_CS_AI_KS_SC : Arabic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Arabic_100_CS_AI_KS_WS_SC : Arabic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Arabic_100_CS_AS_SC : Arabic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Arabic_100_CS_AS_WS_SC : Arabic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Arabic_100_CS_AS_KS_SC : Arabic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Arabic_100_CS_AS_KS_WS_SC : Arabic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Arabic_100_CI_AI_SC_UTF8 : Arabic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Arabic_100_CI_AI_WS_SC_UTF8 : Arabic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Arabic_100_CI_AI_KS_SC_UTF8 : Arabic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Arabic_100_CI_AI_KS_WS_SC_UTF8 : Arabic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Arabic_100_CI_AS_SC_UTF8 : Arabic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Arabic_100_CI_AS_WS_SC_UTF8 : Arabic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Arabic_100_CI_AS_KS_SC_UTF8 : Arabic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Arabic_100_CI_AS_KS_WS_SC_UTF8 : Arabic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Arabic_100_CS_AI_SC_UTF8 : Arabic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Arabic_100_CS_AI_WS_SC_UTF8 : Arabic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Arabic_100_CS_AI_KS_SC_UTF8 : Arabic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Arabic_100_CS_AI_KS_WS_SC_UTF8 : Arabic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Arabic_100_CS_AS_SC_UTF8 : Arabic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Arabic_100_CS_AS_WS_SC_UTF8 : Arabic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Arabic_100_CS_AS_KS_SC_UTF8 : Arabic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Arabic_100_CS_AS_KS_WS_SC_UTF8 : Arabic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Assamese_100_BIN : Assamese-100, binary sort
    Assamese_100_BIN2 : Assamese-100, binary code point comparison sort
    Assamese_100_CI_AI : Assamese-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Assamese_100_CI_AI_WS : Assamese-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Assamese_100_CI_AI_KS : Assamese-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Assamese_100_CI_AI_KS_WS : Assamese-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Assamese_100_CI_AS : Assamese-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Assamese_100_CI_AS_WS : Assamese-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Assamese_100_CI_AS_KS : Assamese-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Assamese_100_CI_AS_KS_WS : Assamese-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Assamese_100_CS_AI : Assamese-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Assamese_100_CS_AI_WS : Assamese-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Assamese_100_CS_AI_KS : Assamese-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Assamese_100_CS_AI_KS_WS : Assamese-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Assamese_100_CS_AS : Assamese-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Assamese_100_CS_AS_WS : Assamese-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Assamese_100_CS_AS_KS : Assamese-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Assamese_100_CS_AS_KS_WS : Assamese-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Assamese_100_CI_AI_SC : Assamese-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Assamese_100_CI_AI_WS_SC : Assamese-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Assamese_100_CI_AI_KS_SC : Assamese-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Assamese_100_CI_AI_KS_WS_SC : Assamese-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Assamese_100_CI_AS_SC : Assamese-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Assamese_100_CI_AS_WS_SC : Assamese-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Assamese_100_CI_AS_KS_SC : Assamese-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Assamese_100_CI_AS_KS_WS_SC : Assamese-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Assamese_100_CS_AI_SC : Assamese-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Assamese_100_CS_AI_WS_SC : Assamese-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Assamese_100_CS_AI_KS_SC : Assamese-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Assamese_100_CS_AI_KS_WS_SC : Assamese-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Assamese_100_CS_AS_SC : Assamese-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Assamese_100_CS_AS_WS_SC : Assamese-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Assamese_100_CS_AS_KS_SC : Assamese-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Assamese_100_CS_AS_KS_WS_SC : Assamese-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Assamese_100_CI_AI_SC_UTF8 : Assamese-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Assamese_100_CI_AI_WS_SC_UTF8 : Assamese-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Assamese_100_CI_AI_KS_SC_UTF8 : Assamese-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Assamese_100_CI_AI_KS_WS_SC_UTF8 : Assamese-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Assamese_100_CI_AS_SC_UTF8 : Assamese-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Assamese_100_CI_AS_WS_SC_UTF8 : Assamese-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Assamese_100_CI_AS_KS_SC_UTF8 : Assamese-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Assamese_100_CI_AS_KS_WS_SC_UTF8 : Assamese-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Assamese_100_CS_AI_SC_UTF8 : Assamese-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Assamese_100_CS_AI_WS_SC_UTF8 : Assamese-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Assamese_100_CS_AI_KS_SC_UTF8 : Assamese-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Assamese_100_CS_AI_KS_WS_SC_UTF8 : Assamese-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Assamese_100_CS_AS_SC_UTF8 : Assamese-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Assamese_100_CS_AS_WS_SC_UTF8 : Assamese-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Assamese_100_CS_AS_KS_SC_UTF8 : Assamese-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Assamese_100_CS_AS_KS_WS_SC_UTF8 : Assamese-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_BIN : Azeri-Cyrillic-100, binary sort
    Azeri_Cyrillic_100_BIN2 : Azeri-Cyrillic-100, binary code point comparison sort
    Azeri_Cyrillic_100_CI_AI : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Azeri_Cyrillic_100_CI_AI_WS : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Azeri_Cyrillic_100_CI_AI_KS : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Azeri_Cyrillic_100_CI_AI_KS_WS : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Azeri_Cyrillic_100_CI_AS : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Azeri_Cyrillic_100_CI_AS_WS : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Azeri_Cyrillic_100_CI_AS_KS : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Azeri_Cyrillic_100_CI_AS_KS_WS : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Azeri_Cyrillic_100_CS_AI : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Azeri_Cyrillic_100_CS_AI_WS : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Azeri_Cyrillic_100_CS_AI_KS : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Azeri_Cyrillic_100_CS_AI_KS_WS : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Azeri_Cyrillic_100_CS_AS : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Azeri_Cyrillic_100_CS_AS_WS : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Azeri_Cyrillic_100_CS_AS_KS : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Azeri_Cyrillic_100_CS_AS_KS_WS : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Azeri_Cyrillic_100_CI_AI_SC : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Azeri_Cyrillic_100_CI_AI_WS_SC : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Azeri_Cyrillic_100_CI_AI_KS_SC : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Azeri_Cyrillic_100_CI_AI_KS_WS_SC : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Azeri_Cyrillic_100_CI_AS_SC : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Azeri_Cyrillic_100_CI_AS_WS_SC : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Azeri_Cyrillic_100_CI_AS_KS_SC : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Azeri_Cyrillic_100_CI_AS_KS_WS_SC : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Azeri_Cyrillic_100_CS_AI_SC : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Azeri_Cyrillic_100_CS_AI_WS_SC : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Azeri_Cyrillic_100_CS_AI_KS_SC : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Azeri_Cyrillic_100_CS_AI_KS_WS_SC : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Azeri_Cyrillic_100_CS_AS_SC : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Azeri_Cyrillic_100_CS_AS_WS_SC : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Azeri_Cyrillic_100_CS_AS_KS_SC : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Azeri_Cyrillic_100_CS_AS_KS_WS_SC : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Azeri_Cyrillic_100_CI_AI_SC_UTF8 : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CI_AI_WS_SC_UTF8 : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CI_AI_KS_SC_UTF8 : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CI_AI_KS_WS_SC_UTF8 : Azeri-Cyrillic-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CI_AS_SC_UTF8 : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CI_AS_WS_SC_UTF8 : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CI_AS_KS_SC_UTF8 : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CI_AS_KS_WS_SC_UTF8 : Azeri-Cyrillic-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CS_AI_SC_UTF8 : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CS_AI_WS_SC_UTF8 : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CS_AI_KS_SC_UTF8 : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CS_AI_KS_WS_SC_UTF8 : Azeri-Cyrillic-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CS_AS_SC_UTF8 : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CS_AS_WS_SC_UTF8 : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CS_AS_KS_SC_UTF8 : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Cyrillic_100_CS_AS_KS_WS_SC_UTF8 : Azeri-Cyrillic-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Latin_100_BIN : Azeri-Latin-100, binary sort
    Azeri_Latin_100_BIN2 : Azeri-Latin-100, binary code point comparison sort
    Azeri_Latin_100_CI_AI : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Azeri_Latin_100_CI_AI_WS : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Azeri_Latin_100_CI_AI_KS : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Azeri_Latin_100_CI_AI_KS_WS : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Azeri_Latin_100_CI_AS : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Azeri_Latin_100_CI_AS_WS : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Azeri_Latin_100_CI_AS_KS : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Azeri_Latin_100_CI_AS_KS_WS : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Azeri_Latin_100_CS_AI : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive
    Azeri_Latin_100_CS_AI_WS : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive
    Azeri_Latin_100_CS_AI_KS : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive
    Azeri_Latin_100_CS_AI_KS_WS : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive
    Azeri_Latin_100_CS_AS : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive
    Azeri_Latin_100_CS_AS_WS : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive
    Azeri_Latin_100_CS_AS_KS : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive
    Azeri_Latin_100_CS_AS_KS_WS : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive
    Azeri_Latin_100_CI_AI_SC : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Azeri_Latin_100_CI_AI_WS_SC : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Azeri_Latin_100_CI_AI_KS_SC : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Azeri_Latin_100_CI_AI_KS_WS_SC : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Azeri_Latin_100_CI_AS_SC : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Azeri_Latin_100_CI_AS_WS_SC : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Azeri_Latin_100_CI_AS_KS_SC : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Azeri_Latin_100_CI_AS_KS_WS_SC : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Azeri_Latin_100_CS_AI_SC : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Azeri_Latin_100_CS_AI_WS_SC : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Azeri_Latin_100_CS_AI_KS_SC : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Azeri_Latin_100_CS_AI_KS_WS_SC : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Azeri_Latin_100_CS_AS_SC : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
    Azeri_Latin_100_CS_AS_WS_SC : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
    Azeri_Latin_100_CS_AS_KS_SC : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
    Azeri_Latin_100_CS_AS_KS_WS_SC : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
    Azeri_Latin_100_CI_AI_SC_UTF8 : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Latin_100_CI_AI_WS_SC_UTF8 : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Latin_100_CI_AI_KS_SC_UTF8 : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Latin_100_CI_AI_KS_WS_SC_UTF8 : Azeri-Latin-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Latin_100_CI_AS_SC_UTF8 : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Latin_100_CI_AS_WS_SC_UTF8 : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Latin_100_CI_AS_KS_SC_UTF8 : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Latin_100_CI_AS_KS_WS_SC_UTF8 : Azeri-Latin-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Latin_100_CS_AI_SC_UTF8 : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Latin_100_CS_AI_WS_SC_UTF8 : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Latin_100_CS_AI_KS_SC_UTF8 : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Latin_100_CS_AI_KS_WS_SC_UTF8 : Azeri-Latin-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Latin_100_CS_AS_SC_UTF8 : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Latin_100_CS_AS_WS_SC_UTF8 : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters, UTF8
    Azeri_Latin_100_CS_AS_KS_SC_UTF8 : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters, UTF8
    Azeri_Latin_100_CS_AS_KS_WS_SC_UTF8 : Azeri-Latin-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
    ...
    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/ * * * * *

Discussions similaires

  1. Performances temps d'insertions sql server
    Par KRis dans le forum Bases de données
    Réponses: 5
    Dernier message: 24/04/2008, 20h17
  2. Migration de PostGreSQL vers SQL Server
    Par Jidoche dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/08/2007, 19h37
  3. Migration PostGreSql vers SQL Server
    Par ZeMomoDesBois dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 09/11/2006, 08h43
  4. Outil pour comparer des bases SQL Server 2000
    Par plutonium719 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/08/2006, 08h54
  5. Postgresql vs SQL Server
    Par tanys dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/01/2005, 16h22

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