【问题标题】:Migrated classic ASP to Win2008/IIS7/SQL Server 2008. Now some inserts/updates are very slow from ASP, but very fast from Management Studio将经典 ASP 迁移到 Win2008/IIS7/SQL Server 2008。现在一些插入/更新从 ASP 非常慢,但从 Management Studio 非常快
【发布时间】:2012-04-09 12:00:40
【问题描述】:

标题很好地涵盖了它。我是 Windows 2008 R2、IIS7 和 SQL Server 2008 的新手。

一些非常基本的插入和更新语句在 Management Studio 中运行得非常快,但在经典 ASP 页面中运行时每个都需要几秒钟。

正如您所料,在以前的带有 IIS 6 和 SQL Server 2000 的 Windows 2003 Box 上一切正常。

关于从哪里开始的任何提示?

【问题讨论】:

  • 要么是服务器相关,问题跑题了,要么是我们需要查看的代码中。
  • @MitchWheat 感谢您的提示。其实我以前看过那个页面。我认为在这种情况下,问题不在查询计划中。这些是非常简单的语句,它们在 SSMS 中第一次和每次都运行得很快,而在 ASP 中第一次和每次都运行得很慢。
  • @DG。 - 你能显示查询吗?
  • @DG。 - 是的,不再相关。也许运行探查器跟踪,看看你是否能看到发生了什么。即报表本身是否需要更长的时间,或者报表发送是否有一些延迟?

标签: sql sql-server-2008 iis-7 asp-classic


【解决方案1】:

自己找到了解决方案。

似乎在新的 64 位 Windows 2008 服务器上使用在以前的 32 位 Windows 2003 服务器上运行良好的过时 SQL 连接类型很糟糕。

上一个连接字符串:

"Driver={SQL Server};SERVER=(local);DATABASE=db1;UID=me;Password=pass;"

更新到这个让事情变得更快:

"Provider=SQLNCLI10;Data Source=(local);Initial Catalog=db1;User ID=me;Password=pass"

【讨论】:

  • 谢谢,这对我也有用,虽然我使用 SQLNCLI11 作为提供程序。这当然取决于 sql server 版本。
【解决方案2】:

更改 SQL 提供程序对我的机器没有帮助,然后我通过手动打开和关闭数据库连接来运行脚本:

conn.Open
sql = "SELECT ... :"
Set rs_test= Conn.Execute(sql, ,1)

conn.Close
conn.Open

sql = "SELECT ... :"
Set rs_test= Conn.Execute(sql, ,1)

conn.Close
conn.Open

sql = "SELECT ... :"
Set rs_test= Conn.Execute(sql, ,1)

conn.Close
conn.Open

它确实运行得更快。

【讨论】:

    【解决方案3】:

    除了上面的解决方案,将连接字符串更改为使用服务器名称而不是 .或(本地)为我工作。

    改变这个

    "Provider=SQLNCLI10;Data Source=(local);Initial Catalog=db1;User ID=me;Password=pass"
    

    "Provider=SQLNCLI10;Data Source=MYSERVERNAME;Initial Catalog=db1;User ID=me;Password=pass"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      相关资源
      最近更新 更多