0

在执行大量 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 重现这种性能?任何想法?

我们提供啤酒!

弗朗索瓦

4

1 回答 1

1

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

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

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

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

于 2013-10-01T15:19:41.213 回答