1、存储过程手动执行正常,应用程序高并发允许时,数据成倍数增加
通常此类问题是由于存储过程中使用了永久表作为中间表,用以存储临时数据。当高并发时,比如同时执行3次,则同时往中间表中插入3倍的数据,得到的结果就会出现数倍的情况。
解决办法:
避免使用中间表,可以考虑使用 with 语句。如果逻辑很复杂,很难做到一条sql直接查出来,使用以下办法:
- 使用本地临时表(会话级的临时表),本地临时表彼此隔绝,不会像永久表那样相互影响。
- 使用表变量。
时间: 2024-10-15 08:41:24
1、存储过程手动执行正常,应用程序高并发允许时,数据成倍数增加
通常此类问题是由于存储过程中使用了永久表作为中间表,用以存储临时数据。当高并发时,比如同时执行3次,则同时往中间表中插入3倍的数据,得到的结果就会出现数倍的情况。
解决办法:
避免使用中间表,可以考虑使用 with 语句。如果逻辑很复杂,很难做到一条sql直接查出来,使用以下办法: