我必须发布应用程序的新版本。我创建了两个脚本,一个用于移动架构,一个用于迁移数据。该脚本包含一长串查询。
应用程序需要尽可能少地保持离线状态,因此,我想让这个脚本运行得更快。
我注意到最大的减速是某些表中的非聚簇索引创建。是否可以触发索引的创建,同时继续执行脚本?
我知道可以创建WITH (ONLINE = ON)
以避免锁定表,但我有兴趣了解是否可以异步运行脚本中的查询,以便执行时间不是顺序的。
我必须发布应用程序的新版本。我创建了两个脚本,一个用于移动架构,一个用于迁移数据。该脚本包含一长串查询。
应用程序需要尽可能少地保持离线状态,因此,我想让这个脚本运行得更快。
我注意到最大的减速是某些表中的非聚簇索引创建。是否可以触发索引的创建,同时继续执行脚本?
我知道可以创建WITH (ONLINE = ON)
以避免锁定表,但我有兴趣了解是否可以异步运行脚本中的查询,以便执行时间不是顺序的。
您可以做的是将脚本分解为多个脚本/查询:
那么解决方案就是使用多个会话来完成这项工作:
您的应用程序创建一个会话,运行第 1 步。
完成第 1 步后,您的应用程序需要并行跨越另一个会话,并在该会话中运行第 2 步(索引创建)。同时,第一个会话可以继续第 3 步,而第二个会话在后台运行第 2 步(索引创建)。
这将适用于永久表或全局临时表。这不适用于常规临时表