在 Basic/Standard 层上访问 SQL Azure 超时 - 在 Web 层上工作正常

Timeout accesing SQL Azure on Basic/Standard tier - works fine on Web tier

我正在升级旧版 Azure 站点以使用旧 Web 层中的当前 SQL Azure 层之一。

网站在网站上和本地都运行良好,但是当我从网络切换到基本或标准时,出现超时错误。

超时的代码是遗留的:

        SqlConnection Conn;
        Conn = new SqlConnection(StrConn);
        Conn.Open();
        try
        {
            SqlDataAdapter Cmd;
            DataSet dtSet;
            DataTable dtTable;


            Cmd = new SqlDataAdapter(_sql, Conn);
            dtSet = new DataSet();
            Cmd.Fill(dtSet);
            dtTable = new DataTable();
            dtTable = dtSet.Tables[0];
            Cmd = null;
            return dtTable;
        }
        finally
        {
            Conn = null;
        }

连接字符串未更改。

我可以从 Visual Studio 访问基本的 SQL 数据库。

有什么建议吗?

基本和标准服务层具有与 Web 服务层不同的性能特征。特别是在 Web 中,如果托管数据库的机器不忙,您可以获得高级 P2 性能。

当您 运行 上述代码连接到您的数据库并查询视图时 sys.dm_db_resouce_stats 以查看您是否最大限度地发挥了数据库的可用性能。

要解决此问题,您可以:

  1. 如果您可以忍受等待结果的时间更长,请增加命令超时时间
  2. 扩展到更高的性能级别,为您提供更多资源,以便查询 returns 更快

您还应该检查是否可以优化查询或模式以减少执行时间。例如,确保您有适当的索引。 This article 有性能调整指南可以帮助您入门。

一月