SqlServer——常见问题汇总

1、存储过程手动执行正常,应用程序高并发允许时,数据成倍数增加

  通常此类问题是由于存储过程中使用了永久表作为中间表,用以存储临时数据。当高并发时,比如同时执行3次,则同时往中间表中插入3倍的数据,得到的结果就会出现数倍的情况。

解决办法:

避免使用中间表,可以考虑使用 with 语句。如果逻辑很复杂,很难做到一条sql直接查出来,使用以下办法:

  • 使用本地临时表(会话级的临时表),本地临时表彼此隔绝,不会像永久表那样相互影响。
  • 使用表变量。
原文地址:https://www.cnblogs.com/SunBlog/p/5032982.html