SELECT
TM.DEALER_CODE,
TM.DEALER_SHORTNAME,
T.STORAGE_CODE, T.STORAGE_NAME,
T.PART_NO,T.PART_NAME,T.OH_COUNT,T.LIMIT_NO,
T.DNP,T.SALES_PRICE,(T.DNP * T.OH_COUNT) PRICE, to_char(T.UPDATE_DATE,'yyyy-MM-dd') UPDATE_DATE
FROM TT_PT_DEALER_STOCK T,TM_DEALER TM
where T.DEALER_CODE = TM.DEALER_CODE
AND T.OH_COUNT <> 0
一、(T.DNP * T.OH_COUNT) PRICE, to_char(T.UPDATE_DATE,'yyyy-MM-dd') 改到客户端处理,不在数据库操作
二、评估下FROM TT_PT_DEALER_STOCK T JOIN TM_DEALER TM ON T.DEALER_CODE = TM.DEALER_CODE 与 FROM FROM TT_PT_DEALER_STOCK T,TM_DEALER TM where T.DEALER_CODE = TM.DEALER_CODE 性能
三、DEALER_CODE的索引创建
四、T.OH_COUNT <> 0中的值会有负值?如果没有负值,T.OH_COUNT >0来代替,或者评估(T.OH_COUNT<0 OR T.OH_COUNT>0)的性能
另外考虑其它试为代替客户端直接查询并返回20W的数据(比如SQL的工具输出txt文件并压缩,然后传给客户端的HTTP请求之类),性能上会有很大改善。
thanks
20W行数据全读出来.光传输数据都要多久?
在数据库直接查要1分半,,,后序还要下载,也要时间1分半左右,,,时间过长,服务器会直接断开连接
@徘徊在人间的水墨: 唯一的优化方式就是少查一些.
@徘徊在人间的水墨: 程序里从数据库查询的时候,也是要从数据库把数据读取到程序中的.这个过程也是要走网络的,也是要时间的.
@吴瑞祥: 不能少查,,要下载全部的
花个3、5百万买台好点的IBM吧,反正不缺钱,把请程序员节省下来的钱都拿去买服务器好了。
大叔啊,真这样,我就不纠结了╮(╯▽╰)╭
@徘徊在人间的水墨: 本来瑞祥说了,我就不需要再说了,可是你连瑞祥的话都听不懂就没有办法了。
@爱编程的大叔: 是要时间,,所以,要问的是,怎么能减少时间!
@徘徊在人间的水墨: 升级硬件啊。内存多点,硬盘用SSD,CPU买最好的。网卡买最好的。
你这一句也没啥好优化的了,不知道你一下查这么多数据干什么,做个分页不行吗
这个是下载功能的查询
@徘徊在人间的水墨: 你的方向是错了,这么大量的查询应该用后台程序定时处理,或者Windows Form处理。
谢谢了啊