1

我有一个基于 Microsoft SQL Server 的第三方应用程序,即使是简单的选择查询也使用游标。对我来说它看起来像 .exe 文件,我无法更改任何内容。

我的问题是:我可以从 SQL Server 数据库管理员端以某种方式提高此应用程序的性能吗?更改一些 SQL Server 配置参数等。

换句话说:DBA 能否在不更改应用程序源代码的情况下提高游标性能?

更多信息和示例。

我有一个像这样的非常简单的查询(我从 SQL 跟踪中得到它)。

select id, name from my_table

idname列有索引。my_table有 700 000 条记录。

如果我在 SQL Server Management Studio 中运行它,它会立即返回第一个结果并在 7 秒内获取所有结果。

但是这个第三方应用程序仅在 7 秒后返回第一个结果。我比较了 SQL 跟踪,发现这个第三方应用程序使用游标来运行这个简单的查询并将数据返回到网格。对于这个简单的例子,我不能对索引等做太多事情,执行计划是完美的等等。

4

1 回答 1

0

大概。查看查询执行计划,创建索引并尝试再次运行代码几次以获得良好的测量结果。

通常,最好创建索引并在其中包含在 where、join、have 子句中使用的列。有很多关于这方面的信息需要阅读,归结为以我的经验测试和理解执行计划。

如果您无法更改他们的代码,并且索引已经到位。检查索引的碎片并确保它们是好的,否则可能会在每晚重新构建它们。

另一件事,服务器是否有足够的内存?这样它就可以将所有日期存储在内存中而不是磁盘上?

于 2013-10-31T10:27:06.133 回答