我有一个用于邻近搜索的大型邮政编码数据库。大约有 100 万条记录。不知何故,我没有将主键添加到表中,现在我必须添加它,因为由于全表扫描,搜索大约需要 3 秒。当我去生成一个脚本将它添加到 SSMS 中时,操作超时,因为它正在创建一个新表并且很重要数据。有任何想法吗?
Shawn
问问题
2816 次
4 回答
4
确保 SSMS 选项/查询执行中的执行超时设置为 0(无超时)。然后使用类似于以下的查询,将表/列/键名替换为您的。根据需要调整参数。
ALTER TABLE tableName WITH NOCHECK
ADD CONSTRAINT PK_tableName PRIMARY KEY CLUSTERED (columnName)
WITH (FILLFACTOR = 75, ONLINE = ON, PAD_INDEX = ON)
于 2009-02-10T16:45:57.567 回答
1
生成脚本并将其粘贴到查询中并在那里运行。确保您的 SSMS 未在选项中设置为执行超时。
于 2009-02-10T16:28:47.920 回答
0
为什么不只创建一个唯一索引?
于 2009-02-10T17:54:05.157 回答
-2
ALTER TABLE 添加主键(等...)
应该在 MySQL 中工作。
于 2009-02-10T16:30:43.657 回答