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