System.Data.Odbc.OdbcConnection.Open() 每次数据库调用都需要一秒钟

System.Data.Odbc.OdbcConnection.Open() 每次数据库调用都需要一秒钟

我的经验是使用 LAMP 堆栈,而不是 Windows 上的 .NET,但是我曾被赋予尝试调试缓慢站点的任务,并且在用 Google 搜索所有我能想到的方法后,我陷入了死胡同。

这就是问题所在: 堆栈跟踪 每次向数据库发送 SQL 调用时,连接需要大约 1 秒钟。我想指出的是,它永远不会出错,只是需要很长时间。

该机运行的是 Win 2008 R2,具有充足的 CPU 和 RAM、IIS 7.5,数据库是本地 mysql 5.1.66。

web.config 的 connectionStrings 标签内是

<add          
    name="nameOfConnectionString"          
    connectionString="Driver={MySQL ODBC 5.1 Driver};
        Server=localhost;
        Database=db_name;
        Pooling=True;
        Option=3;
        User ID=user_name;
        PASSWORD=pw;"          
    providerName="System.Data.Odbc"     
/>

需要注意的是,我尝试过使用和不使用池化,效果都是一样的

为了确保万无一失,我今天从 mysql 网站重新安装了 ODBC 5.1 驱动程序。我还远程控制了该机器并从 MySQL Workbench 运行了一些查询,所有执行时间都恰到好处,所以我很确定这不是 mysql 安装的问题。

下一步该怎么做才能解决这个问题?我应该注意什么?

更新

当 connectionString 中的 localhost 被替换为盒子的全局 ip 地址时,问题得到解决。什么会导致 localhost 的名称查找花费一秒钟?

相关内容