【发布时间】:2023-03-27 08:33:01
【问题描述】:
我正面临一个问题,即在一个命令中使用从 ASP.NET 作为批处理发送的 17000 行代码长脚本来创建新数据库缓慢。问题是在高峰时段执行此脚本有时需要 20 多秒。如果我在 SQL Server Management Studio 中运行此脚本,则需要 2 秒。
根据请求创建数据库、将脚本放入存储过程、数据库克隆、预创建以及重命名数据库的最佳实践是什么?我们需要确保它与负载下的并发环境兼容。
谢谢。
【问题讨论】:
-
此实例中的所有数据库是否相互克隆?如果是这样,最好的方法是将所有对象/数据添加到模型数据库中。然后你所要做的就是发出一个 CREATE DATABASE 命令。创建的新数据库将是模型数据库的副本。这就是模型数据库的用途,它是在该实例上创建的所有新数据库的模板(模型)。
-
数据库创建代码是否有任何动态需要您在命令中执行它?或者您可以使用脚本文件和其他适当的开关执行 SQLCmd 来创建数据库吗?
-
您是否分析过您的 ASP.NET 应用程序以查看额外的 18 用于何处?
-
这是一个遗留代码,我刚刚意识到 SMO 用于调用它,使用分析器我可以看到脚本被分成 1000 个单独的调用,所以这可能是问题所在。但是,当用户注册新帐户时,动态创建数据库的最佳方法是什么?
标签: asp.net sql-server