SqlServer——常见问题汇总
1、存储过程手动执行正常,应用程序高并发允许时,数据成倍数增加
通常此类问题是由于存储过程中使用了永久表作为中间表,用以存储临时数据。当高并发时,比如同时执行3次,则同时往中间表中插入3倍的数据,得到的结果就会出现数倍的情况。
解决办法:
避免使用中间表,可以考虑使用 with 语句。如果逻辑很复杂,很难做到一条sql直接查出来,使用以下办法:
- 使用本地临时表(会话级的临时表),本地临时表彼此隔绝,不会像永久表那样相互影响。
- 使用表变量。
1、存储过程手动执行正常,应用程序高并发允许时,数据成倍数增加
通常此类问题是由于存储过程中使用了永久表作为中间表,用以存储临时数据。当高并发时,比如同时执行3次,则同时往中间表中插入3倍的数据,得到的结果就会出现数倍的情况。
解决办法:
避免使用中间表,可以考虑使用 with 语句。如果逻辑很复杂,很难做到一条sql直接查出来,使用以下办法:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步