第一次访问数据库很慢,

时间:2022-01-23 16:57:45
我用的是WPF2010
DataSet Ds = new DataSet();
                DataTable Dt = new DataTable();
                string SqlStr = "select * from Word where Word='" + TxtWord + "'";
                OleDbDataAdapter Ad = new OleDbDataAdapter(SqlStr, Conn1);
                Ds.Clear();
                Ad.Fill(Ds, "Word");
                Dt = Ds.Tables["Word"];
在访问前和反问后的时间差一比较,好几秒呢,有时候达到7,8秒,请问该怎么解决这个问题,数据库才300M

8 个解决方案

#1


程序启动的时候预连一次数据库。

#2


你先看下你的SQL语句直接在数据库中执行时间需要多久。

如果是时间也很久,那就你的表数据量太大。

#3


第一次链接慢,你软件启动链接一次就可以,他有缓冲池,后面就快了

#4


在数据库中做些优化

#5


查询分析器里面评估一下select * from Word where Word='" + TxtWord + "'"
的执行时间,估计是这个时间过慢。

SET SHOWPLAN_ALL ON
select * from Word where Word=@word

sql server会缓存之前执行过的sql语句。

#6


如果是做个连接池的话,第一次会慢点,后面会很快。你的应该是表中数据太多。所以检索起来比较慢

#7


第一次尝试连接数据库,后面有缓冲池就快了,自己做缓冲区  也是这个道理

#8


BackGrounWork

#1


程序启动的时候预连一次数据库。

#2


你先看下你的SQL语句直接在数据库中执行时间需要多久。

如果是时间也很久,那就你的表数据量太大。

#3


第一次链接慢,你软件启动链接一次就可以,他有缓冲池,后面就快了

#4


在数据库中做些优化

#5


查询分析器里面评估一下select * from Word where Word='" + TxtWord + "'"
的执行时间,估计是这个时间过慢。

SET SHOWPLAN_ALL ON
select * from Word where Word=@word

sql server会缓存之前执行过的sql语句。

#6


如果是做个连接池的话,第一次会慢点,后面会很快。你的应该是表中数据太多。所以检索起来比较慢

#7


第一次尝试连接数据库,后面有缓冲池就快了,自己做缓冲区  也是这个道理

#8


BackGrounWork