sql server 创建索引 超时时间已到
如下图所示:在现场PR_Product表中添加绯聚焦索引PSCode,点击保存按钮后等了一段时间弹出超时警告!现场这张表的数据量也是特别大的(250+万),但是我本地也是把现场数据库还原了的,一样的数据库我本地能够点击保存添加索引,现场就不行了。
找度娘找寻解决方案:https://bbs.csdn.net/topics/392295567 https://www.jb51.net/article/28041.htm 这两个网页都有提到不要点击保存按钮,而是生成一个脚本,我按他们的意思找了半天终于被我找到了
具体步骤:
1.右击表结构/设计/鼠标放在左侧编辑区右键/添加索引键 弹出以下页面;点击添加按钮,选择列和排序方式,确定后修改名称,点击关闭按钮(关闭后自动保存新添加的索引信息(注意此保存并不是表结构已经创建了索引了))
2.关闭上面的页面后为下面第一张图,鼠标指向左侧处,右击,在弹出列表中点击生成更改脚本,弹出下面第二张图(英文版客户端则点击changescript选项,弹出下面第三张图)
3.复制上面的第二张图片的脚本,点击关闭按钮关闭此页面;再新建一个查询页面,粘贴刚刚复制的内容,如下图所示;
/* 为了防止任何可能出现的数据丢失问题,您应该先仔细检查此脚本,然后再在数据库设计器的上下文之外运行此脚本。*/ BEGIN TRANSACTION SET QUOTED_IDENTIFIER ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON COMMIT BEGIN TRANSACTION GO CREATE NONCLUSTERED INDEX TableColumnFile ON dbo.PR_Product ( TableColumnFile ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO ALTER TABLE dbo.PR_Product SET (LOCK_ESCALATION = TABLE) GO COMMIT
4.执行上面的脚本,再次查看该数据表的索引发现刚刚建好的索引已经存在了。此方法比直接点击保存按钮要快的多。
备注:图片有点乱,是本地和现场凑起来的,功能步骤是一样的。