如何在不重写任何代码的情况下提高SQL Server游标性能?

时间:2013-10-31 10:11:21

标签: sql-server performance cursor database-administration

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

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

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

更多信息和示例。

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

select id, name from my_table

idname列的索引。 my_table有70万条记录。

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

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

1 个答案:

答案 0 :(得分:0)

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

通常,最好创建索引并在其中包含where,join,having子句中使用的列。有很多关于此内容的信息可供阅读,它归结为根据我的经验测试和理解执行计划。

如果您无法更改其代码,并且索引已到位。检查索引的碎片并确保它们是好的,否则放入每晚重建它们的工作。

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