新手求助,如何加快数据库查询速度。
ODBC建立了数据库连接。
数据库介绍:都是cstring类型。数据量非常大。从1951年-现在每天一条气象要素记录。
通过查询 年 和 月 ,来获得一个月的数据(比如最高温度。)
新手,所以用的最蠢得查询办法,我的代码如下:
while(!m_pSet->IsEOF())
{
if((m_strYY==m_pSet->m_yy)&&(m_strMM==m_pSet->m_mm))
{
tmax=atof(m_pSet->m_tmax);
tmax=y0-(tmax/10)*(yy/5)-yy*2;//---
dc.LineTo(x1,tmax);
m_pSet->MoveNext();
x1+=xx;//---
}
else
m_pSet->MoveNext();
}//end while
}//end if
[解决办法]
查询出的数据量过大,建议采用多次查询,其他的方法降低数据量) 或者sql语句没有优化好吧,虽然都是系统自己优化的,但还是有优化sql语句的意识
[解决办法]
你这个看代码是把所有的记录都取出来,才检查是不是你想要的数据
可以修改为从数据要你想要的数据,直接指定年和月,这样从数据库读取的数据量就会大大减小
[解决办法]
你的查询语句是怎么写的,贴出来看下
年月日放一个字段,改为date或者datetime类型的,这个用数据库处理效率会高不少