以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 动态合成的查询条件导致查询超时 (http://foxtable.net/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 -- 重新测试了下 服务器问题 内存被人挪用了 |