【问题标题】:SQL server client benchmark / low performance issueSQL Server 客户端基准测试/低性能问题
【发布时间】:2013-10-01 13:52:51
【问题描述】:

在执行大量 INSERT 查询时,我们使用 SQL-server 2008 试验了低性能。这些查询按 25、50、100 或 200 行的批次包含在事务中。

影响数据库性能的因素不同:

  • 数据库同时处理的并发查询数

  • 不太明显,INSERT 的复杂性(8 列时速度正常,但 20 列时慢 60 倍!)

  • 更出乎意料的是,客户端应用程序:我们已经测试了 jTDS、SQSH(命令行)和 Toad (GUI)。

下图显示了 Toad 如何比其他 2 个应用程序更快、更稳定: 注意:我们还测试了 SQL Server Express,它和 Toad 一样快。

Toad 怎样才能比其他两个更轻量级的应用程序性能更高? 我们如何使用 jTDS 或 SQSH 重现这种性能?有什么想法吗?

我们提供啤酒!

弗朗索瓦

【问题讨论】:

    标签: sql-server toad freetds jtds sqsh


    【解决方案1】:

    我在之前的问题中已经说过了,但是您应该看看一些事情。

    第一条:有/可以看看你的执行计划,这通常会指出问题的根源在哪里。一个错误的连接或转换可能会影响服务器的性能。

    第二项:寻找隐式转换,我最近通过将过滤器变量从 datetime 对象更改为 smalldatetime 对象,将查询的执行时间从 2 分钟减少到大约 10 秒。这消除了我与之比较的 600 万行的隐式转换。

    第三项:这很昂贵,我们发现在复制过程中发生转换/插入比更新表更便宜(然后处理约束、权限、索引和触发器)那些行。

    【讨论】:

    • 感谢 OrgTigger,但在这种情况下,same SQL 脚本(假设已优化)根据客户端应用程序以不同 性能执行。我不相信最快的应用程序 Toad 在执行我的代码之前会对其进行优化。那么我们如何解释这些差异呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 2014-07-30
    • 2016-06-10
    • 2014-12-19
    相关资源
    最近更新 更多