存储过程性能调整

时间:2015-12-15 11:09:09

标签: vb.net sql-server-2012

我有一个项目,我需要做的是提高应用程序的性能。为了提高性能,我在应用程序中进行了以下更改。 sql存储过程:

  1. 我已将所有临时表替换为存储过程中的子查询
  2. 一次调用SP而不是多次调用,可以逐个向表中插入多个参数。 (注意:创建带有所有参数数据的XML文件并发送到新的存储过程,我正在使用游标将参数数据插入表中)
  3. 我在做/正确的方式吗?

2 个答案:

答案 0 :(得分:0)

你应该注意的事情;如果要链接选择中的任何表,请确保使用JOINS而不是选择内部选项,这可能看起来像是一件小事,但这种类型的更改可能会将程序的运行时间缩短一半。

答案 1 :(得分:0)

取代临时。具有子查询的表实际上可以使性能变差,因为这可能导致相同的语句被执行数百次,而不是填充临时表一次。

同样盲目地删除过程调用并用X​​ML处理和光标替换它可能是一大步。

不应该问我们这是不是正确的事情,你应该真正衡量它。

除此之外,您还应该查看性能调整的正常位置:

  • 索引:查看所选查询的统计信息输出或计划总体I / O使用的缓存

  • 阻止:如果某些内容阻止了你的陈述,你一定要看看是否有可以做的事情

  • 查询计划中的高成本操作:排序,后台打印,具有大量执行的键查找。