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.执行上面的脚本,再次查看该数据表的索引发现刚刚建好的索引已经存在了。此方法比直接点击保存按钮要快的多。

 

备注:图片有点乱,是本地和现场凑起来的,功能步骤是一样的。

posted @ 2020-03-31 16:06  巴蒂青葱  阅读(683)  评论(0编辑  收藏  举报