Добавление первичного ключа в большую таблицу на сервере общей базы данных - PullRequest
1 голос
/ 10 февраля 2009

У меня есть большая база почтовых индексов, используемых при поиске близости. Есть около 1 миллиона записей. Почему-то я не добавил первичный ключ в таблицу, и теперь мне нужно добавить его, потому что поиск занимает около 3 секунд из-за полного сканирования таблицы. Когда я иду, чтобы сгенерировать сценарий для добавления его в SSMS, операция прекращается, потому что она создает новую таблицу и важна данные. Есть идеи?

Ответы [ 4 ]

4 голосов
/ 10 февраля 2009

Убедитесь, что тайм-аут выполнения в параметрах / запросах SSMS установлен на 0 (нет времени ожидания). Затем используйте запрос, подобный следующему, с заменой имен таблиц / столбцов / ключей на ваши. Настройте параметры по желанию.

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

Ссылка

1 голос
/ 10 февраля 2009

Сгенерируйте скрипт, вставьте его в запрос и запустите его там. Убедитесь, что ваша SSMS не настроена на тайм-аут выполнения в опциях.

0 голосов
/ 10 февраля 2009

почему бы просто не создать уникальный индекс?

0 голосов
/ 10 февраля 2009

ALTER TABLE ADD PRIMARY KEY (и т. Д.)

Должно работать в MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...