现在有条sql,由于数据量过大,程序中执行过慢需要优化,有没有sql大神帮忙啊 下面是sql脚本。

现在有条sql,由于数据量过大,程序中执行过慢需要优化,有没有sql大神帮忙啊 下面是sql脚本。,第1张

1(SELECT COUNT() FROM t_activate_expand e WHERE eactivate_code = a CODE) total

这个是想得到t_activate_expand表的总记录数,

2(SELECT COUNT()FROM t_activate_expand e LEFT JOIN t_ticket_recode r ON ecode_data = rcode_data WHERE eactivate_code = a CODE AND rstate = 3 ) couponNum 这个用的左连接,couponNum和total的值是相等的吧,你是不是逻辑写错了?

3select a FROM t_activate_code a where ashop_id = 'c574d803-0ea0-4849-b4d8-030ea01849b7' AND atype = 1 这个句是条件查询t_activate_code表

你要在一句里面查询的话时间过长,你可以分3次查询,他们单个查询应该很快,不过我怎么看你这语句写得这么别扭

(1) 可以考虑一下索引的问题

对在你的SQL语句中WHERE子句里涉及的列, 设置为索引列, 将极大提高你的访问性能 特别是频繁访问的表,更应该注意这个问题

(2) 考虑存储过程的使用

对经常访问或连续 *** 作的SQL语句,可以考虑放在存储过程中处理, 由于存储过程是预编译的, 一般可以提高速度

(3) 考虑"事务"的问题

事务中的SQL语句,在提交前会锁定相关的表,使其无法访问,直到提交为止

(4) 考虑你的连接方式, 是否用到了连接池, 一般连接池的合理使用会提高你的速度及程序的可用性

可以在c#里面建立一个datatable,系统启动时把数据从数据库里载入到datatable里,你所有的 *** 作不要在数据库里计算,在datatable里算,具体的 *** 作你看下c#关于datatable的 *** 作,这样就不会大量占用数据库时间,但这样又会占用大量内存,根据你的需要试试看吧。

在内存里计算不在sql里面快,只是你在添加数据库时需要向datatable和sql里面同时添加同一条数据。10几万的数据我都是这么 *** 作的。

以上就是关于现在有条sql,由于数据量过大,程序中执行过慢需要优化,有没有sql大神帮忙啊 下面是sql脚本。全部的内容,包括:现在有条sql,由于数据量过大,程序中执行过慢需要优化,有没有sql大神帮忙啊 下面是sql脚本。、数据库MSSQL运行慢是什么原因、用C#连接数据库SQL并进行读取时,因数据量过大导致运行极慢,想建一个后台服务器实现实时显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10139988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存