Nous sommes confrontés à de graves problèmes de verrouillage de la table en production. J'ai remarqué que j'ai créé une procédure stockée qui obtient une liste de commandes par numéro de commande. Le numéro de commande est un VARCHAR (150). Il n'y a aucun index de n'importe quel type sur cette colonne.Index sur un Varchar?
À l'heure actuelle, il existe beaucoup de valeurs NULL dans cette colonne. Cependant, au fil du temps (ce tableau est entré en ligne récemment), la table va croître de manière significative. Plus de valeurs NULL ne seront ajoutées à ce moment.
Ma question est double. Premièrement, un indice serait-il bénéfique ici? Le proc est très utilisé. Et si oui, devrait-il être regroupé ou non? Les données sont des choses comme CP123456, DR126512.
La deuxième question, qui influence probablement la première question est - serait-il avantageux de changer la colonne à un CHAR (10), car il semble que le numéro de commande est toujours la même taille. Y a-t-il un avantage de vitesse à mettre un index sur un CHAR à longueur fixe, par opposition à un VARCHAR (150)?
(La taille différente est due à des exigences inconnues lors de la création de la colonne).
SQL Server 2008.
Vous pouvez certainement avoir des clés primaires non groupées dans le serveur ms sql. – MatBailie