c# - 从 ASP.Net C# 应用程序性能问题运行 SQL 脚本

标签 c# sql asp.net

我正在从 C# 代码运行 SQL 脚本,我的问题是代码需要很长时间才能完成执行,它有很多表要在脚本中创建(至少 30 个表),所以我的代码可以工作但是它有性能问题。 这是代码

public static bool executeSqlScript(string scriptPath,string serverName,string databaseName)
    {
        try
        {

            SqlConnection myConn = new SqlConnection("Server=.;Integrated security=SSPI;database=master");
            Server server = new Server(new ServerConnection(myConn));
            string CreateCommand = "CREATE DATABASE " + databaseName + "";
            string appendText;
            //delete first line from script(Oldscript)
            var lines = File.ReadAllLines(scriptPath).Skip(1);
            File.WriteAllLines(scriptPath, lines);
            using (StreamReader sreader = new StreamReader(scriptPath))
            {
                appendText = sreader.ReadToEnd();
            }
            File.Delete(scriptPath);
            using (StreamWriter swriter = new StreamWriter(scriptPath, false))
            {
                appendText = "USE [" + databaseName + "]" + Environment.NewLine + appendText;
                swriter.Write(appendText);
                swriter.Close();
            }
            string readtext = File.ReadAllText(scriptPath);
            SqlCommand myCommand = new SqlCommand(CreateCommand, myConn);
            myConn.Open();
            myCommand.ExecuteNonQuery();
            server.ConnectionContext.ExecuteNonQuery(readtext);

            return true;
        }
        catch (Exception e)
        {
         throw e;
         return false;
        }
    }

最佳答案

我的建议是将其中的大部分迁移到 SQL Server,一旦设置了新的数据库和用户,调用存储过程来读取其中包含必要 DDL 的 SQL 文件。

我的上一个项目是一家托管公司,我们的 CMS 使用了 150 多个数据库对象。我们使用了一个“控制”数据库,我们将新的数据库信息传递给它,它通常会在不到一分钟的时间内创建新的表、函数和过程。

关于c# - 从 ASP.Net C# 应用程序性能问题运行 SQL 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43826341/

相关文章:

c# - 将尺寸较小的网格内的大矩形居中(并且 ClipToBounds 不起作用)

sql - postgres json数组元素和空返回

php - 我如何检查特定 mysql 表的特定列的任何行中是否存在值

javascript - 在 mvc Controller 中从 jquery 接收一个复杂的对象

C# Windows 服务自终止服务

C# Winforms DatagridView - 为不同的行设置不同的按钮颜色

c# - 在 visual studio 上使用 c#、mvc 管理我的用户

c# - 如何记录一条消息以便我可以在 VS2013 中看到它?

c# - WCF 何时使用 MessageHeader 而不是在函数参数中传递变量

sql - 在SQL Server 2008中,我应该如何将数据从一个数据库复制到另一个数据库?