数据库内查询速度正常,几秒就ok
慢的原因有多种可能:
你可以使用视图sql在oracle客户端查询看看,分解sql语句逐个进行分析
在oracle客户端中正常,查询时间很快
如果你只是取一条就直接写SQL返回一条就好了,若你要取全部的话基本没什么优化的余地了,另代码写的太烂了,DateTime可以直接相减的而且转为数字相减秒数不正确时间是60精制的,连接也不打算关,DataTable不需要New
谢谢批评,我会改进的。
您说的取一条就返回一条,可查询出来的结果就只有一条。
没优化的余地了吗。。。快的时候十几秒,慢的时候六七八十秒,诶
@CodePanda: 我已经说了,是你的时间计算不准确,可能其实没那么长时间, 比如时间12:50-13:01本质上差11秒,但转成数字后51秒,你自己考虑下吧。
@56180825: 我换stopwatch计时吧,还是很久,就算我人工数,也是二三十秒
C# 查询 数据库到内存,一般分3步,
连接数据库,执行查询语句,加载到内存
写个测试程序,每个步骤单独执行100次记录耗时,取平均值,就知道哪里出问题。
查询语句中 da.fill(dt) 填充这步需要40秒上下,其他步骤正常...
@CodePanda: 加载10万数据都没有这么久。有多少行,多少列。或者是你的电脑配置太低了。
@geass..: 查询结果就一条。。其他sql语句查询出来装填也是秒回,就这条语句不行
你一次取多少啊?取多了当然会慢。如果取很少还是很慢,那就看看是不是网络问题,如果不是,就问问提供方吧
查询出来就几条数据,也就取这几条。提供方给了三个视图,我count(1)了一下,a视图一共36w条数据,b视图488w条,c视图233w条,为啥b和c视图能在0.02秒内返回结果,而a却要40秒之久呢。我觉得应该不是我代码问题,而是提供方数据库a视图所在的表没做好优化。是这样吗?
@CodePanda: 像。每次都取这怎么多?可不可以在本地缓存,每次取得时候只去本地没有的
@会长:36w对比488w、233w来说 ,已经很少了吧
公司的商业项目的话那么接盘侠
就安逸咯