以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  动态合成的查询条件导致查询超时  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=100983)

--  作者:rjh4078
--  发布时间:2017/5/22 22:07:00
--  动态合成的查询条件导致查询超时
动态合成了下列的查询条件

 sel ect * from(sel ect * ,round(isnull((Sel ect sum(本次核销金额) from{收款明细} b where b.应收对账单号=a.应收对账单号 ),0),2) as 已收款金额,round(isnull((Sele ct sum(本次对账金额+isnull(折扣金额,0)) from{应收对账明细} b where b.应收对账单号=a.应收对账单号 ),0),2) as 已对账金额 from{应收对账单} a where 制单日期>=\'2017-05-15\' and 制单日期<=\'2017-05-22\') as d where 1=2  or Convert(char(100),应收对账单号) Like \'%%\' or Convert(char(100),制单人) Like \'%%\' or Convert(char(100),客户编号) Like \'%%\' or Convert(char(100),客户名称) Like \'%%\' or Convert(char(100),联系人) Like \'%%\' or Convert(char(100),电话) Like \'%%\' or Convert(char(100),审核人) Like \'%%\' or Convert(char(100),账期) Like \'%%\' or Convert(char(100),备注) Like \'%%\' or Convert(char(100),签发人) Like \'%%\' or Convert(char(100),结算方式) Like \'%%\' or Convert(char(100),开票方式) Like \'%%\' or Convert(char(100),传真) Like \'%%\' or Convert(char(100),所属业务员) Like \'%%\' or Convert(char(100),发票号码) Like \'%%\'

查询的时候就会超时 把where后面的条件去掉才行



--  作者:有点蓝
--  发布时间:2017/5/22 22:27:00
--  
Like \'%%\'  有什么意义?转换为char(100)又有什么用处?

到底想实现什么逻辑?
[此贴子已经被作者于2017/5/22 22:27:14编辑过]

--  作者:rjh4078
--  发布时间:2017/5/23 7:19:00
--  
like \'%%\' 这个中间是有一个变量的 只是现在这个变量是空
这个查询的意思是 查询某个时间段类的符合条件的数据

--  作者:有点色
--  发布时间:2017/5/23 9:16:00
--  

1、like查询效率太低,convert的效率野地。

 

2、你直接在sqlserver上测试,需要多久才能查找到数据?

 

3、查询超时,说明查询需要的时间较多。


--  作者:rjh4078
--  发布时间:2017/5/23 12:18:00
--  
直接在本地服务器查询没有问题 2000条数据几乎是瞬间完成
远程查询就会出现超时


--  作者:有点色
--  发布时间:2017/5/23 12:22:00
--  

 传输两千条数据有可能导致超时。

 

 你加载2000条数据有没有问题?修改保存呢?


--  作者:rjh4078
--  发布时间:2017/5/23 20:03:00
--  
重新测试了下  服务器问题 内存被人挪用了