【问题标题】:How do I speed up my application connecting to MS SQL Server?如何加快应用程序连接到 MS SQL Server 的速度?
【发布时间】:2009-02-07 17:00:12
【问题描述】:

我有一个在 SQL Server 2000 上运行的 Delphi 应用程序,但连接数据库需要很长时间!

但是当我在我的开发服务器上运行这个应用程序时,它的连接速度非常快!

我在 Windows 2003 服务器上运行 SQL Server 2k 个人版,当我在注册表中查看我的 MDAC 版本时,我看到已经安装了 2.8 版!

任何想法为什么会在生产机器上而不是在开发机器上发生这种情况?

【问题讨论】:

  • 在这两种环境中,您的应用程序和数据库是否位于不同的服务器上?

标签: sql sql-server delphi


【解决方案1】:

这很可能归结为连接到数据库的网络级别问题。当然,这取决于您是否在同一个盒子上运行应用程序和数据库。

尝试使用不同的工具从同一台机器连接到数据库。您可以设置一个数据源并从控制面板对其进行测试作为替代方案。如果另一个工具的连接速度很慢,请测试服务器之间的连接以进行其他类型的连接(例如运行 ping)。例如,它可能是通过广播而不是域来解析服务器。或任何数量的其他问题 - 防火墙、交换机、wins 等。

如果您使用集成身份验证进行连接,还要确保数据库可以解析应用程序服务器,反之亦然。这是身份验证过程的一部分,我之前已经看到它会导致创建数据库连接的速度变慢。

简而言之,我相信这不是 delphi / sql 特有的问题,而是生产服务器之间的通信问题。

祝你好运!

【讨论】:

    【解决方案2】:

    一旦建立连接,请保持连接打开。这称为连接池,将提高性能。我不知道如何使用 delphi 应用程序来做到这一点。

    【讨论】:

    • 一些Delphi连接组件为unidac地址连接池。
    【解决方案3】:

    您的问题很可能与网络或传输层有关

    1. 您是通过 TCP、命名管道还是其他机制进行连接?
    2. 您是否尝试过使用 Microsoft SQL Profiler 跟踪打开连接?

    问候,
    利文

    【讨论】:

      【解决方案4】:

      我很久以前就遇到过这样的问题,它归结为连接字符串的工作站部分。如果您从您的开发机器复制了连接字符串,工作站参数仍然在连接字符串中并指向您的开发机器,这可能在您的部署网络上不存在。

      在这种情况下,您与数据库的连接必须等到网络尝试连接不存在的机器(这显然需要时间)。删除工作站cluse,它会加速无止境。

      【讨论】:

        猜你喜欢
        • 2021-10-09
        • 1970-01-01
        • 2022-01-19
        • 2016-08-23
        • 1970-01-01
        • 2014-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多