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语句。
的执行时间,估计是这个时间过慢。
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语句。
的执行时间,估计是这个时间过慢。
SET SHOWPLAN_ALL ON
select * from Word where Word=@word
sql server会缓存之前执行过的sql语句。
#6
如果是做个连接池的话,第一次会慢点,后面会很快。你的应该是表中数据太多。所以检索起来比较慢
#7
第一次尝试连接数据库,后面有缓冲池就快了,自己做缓冲区 也是这个道理
#8
BackGrounWork