以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- SQL查询加索引优化速度 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=164197) |
-- 作者:漂亮美眉vszh -- 发布时间:2021/4/29 10:45:00 -- SQL查询加索引优化速度 老师,这个存储过程在数据库内执行是0.1秒都不到,绑到窗口上,耗时7秒多,会卡, 数据库上加了索引,索引去掉了排序 CREATE INDEX OrderMainIndex 但查询依旧很慢,数据量大后,会比较卡
Dim Cmt As String = Args(0) \'存储过程名 |
-- 作者:漂亮美眉vszh -- 发布时间:2021/4/29 10:46:00 -- 是SQL语句中去掉了排序,不是索引去掉了, |
-- 作者:漂亮美眉vszh -- 发布时间:2021/4/29 10:49:00 -- Tables(Tbnm).UseVisualStyle = False 我发现又加了这些语句,打开窗口长达15秒多, |
-- 作者:有点蓝 -- 发布时间:2021/4/29 10:59:00 -- 查询本身应该不费事,返回的数据多吧,如果还是远程数据库,数据量越大肯定就越慢,慢在网络传输上。在数据库里查询不涉及到数据传输的。 |
-- 作者:漂亮美眉vszh -- 发布时间:2021/4/29 15:19:00 -- 以下是引用有点蓝在2021/4/29 10:59:00的发言:
查询本身应该不费事,返回的数据多吧,如果还是远程数据库,数据量越大肯定就越慢,慢在网络传输上。在数据库里查询不涉及到数据传输的。 是的,是远程数据库 |
-- 作者:漂亮美眉vszh -- 发布时间:2021/4/29 15:20:00 -- 有没方法,得到的表分页加载过去 |
-- 作者:有点蓝 -- 发布时间:2021/4/29 16:01:00 -- 在存储过程里使用Row_Number分页,把页码,条数传入存储过程,类似:http://www.foxtable.com/webhelp/topics/2721.htm |
-- 作者:漂亮美眉vszh -- 发布时间:2021/4/29 16:54:00 -- 老师,再问下,照例子加了一个Row_Number,可外面再套了一个SELECT就报错呢,单独测也没问题
|
-- 作者:有点蓝 -- 发布时间:2021/4/29 17:01:00 -- 没有套对,把原sql发上来 |
-- 作者:漂亮美眉vszh -- 发布时间:2021/4/29 18:24:00 -- se lect * from (Se lect Row_Number() Over(Order by [_Identify]) As RowNum,*,round(([ResultMoney] - 开票金额),2) as 未开票金额,round(([ResultMoney] - 收款金额),2) as 未收款金额 From ([dbo].[OrderMain] a left join (se lect Order_ID,round(SUM([TotalTax]),2) as 开票金额 from [dbo].[InvoDetailed] GROUP BY [Order_ID]) b on a._Identify = b.Order_ID) left join (se lect Order_ID,SUM([AmountPay]) as 收款金额 from [dbo].[ReExpend] GROUP BY [Order_ID]) c ON a._Identify = c.Order_ID where a.Cl_PurSaleMold = 1 ORDER BY Order_Date desc) as aaa WHERE Row_Number >= 1 And Row_Number <= 10 |