2009-02-10 5 views
1

J'ai une grande base de données de codes postaux utilisés pour les recherches de proximité. Il y a environ 1 million d'enregistrements. D'une manière ou d'une autre, je n'ai pas ajouté la clé primaire à la table, et maintenant je dois l'ajouter car les recherches prennent environ 3 secondes en raison de l'analyse complète de la table. Lorsque je vais générer un script pour l'ajouter dans SSMS, l'opération expire parce qu'elle crée une nouvelle table et qu'elle est importante pour les données. Des idées?Ajout d'une clé primaire à une grande table sur un serveur de base de données partagé

Répondre

1

Générez le script et collez-le dans une requête, puis exécutez-le. Assurez-vous que votre SSMS n'est pas configuré pour avoir un délai d'expiration d'exécution dans les options.

-2

ALTER TABLE ADD KEY primaire (, etc ...)

devrait fonctionner dans MySQL.

4

Assurez-vous que le délai d'attente d'exécution dans vos options SSMS/exécution de requête est défini sur 0 (aucun délai). Ensuite, utilisez une requête similaire à la suivante avec les noms de table/colonne/clé remplacés par les vôtres. Ajustez les paramètres comme vous le souhaitez.

ALTER TABLE tableName WITH NOCHECK 
ADD CONSTRAINT PK_tableName PRIMARY KEY CLUSTERED (columnName) 
WITH (FILLFACTOR = 75, ONLINE = ON, PAD_INDEX = ON) 

Reference

0

pourquoi ne pas simplement créer un index unique?

Questions connexes