天天看点

火线救急!十万火急。今天一做工控哥们问我,Sqlite查询几百条记录,速度奇慢,他的软件是工控机上一个工具,今天查询数据

作者:程序猿海哥

火线救急!十万火急。

今天一做工控哥们问我,Sqlite查询几百条记录,速度奇慢,他的软件是工控机上一个工具,今 天查询数据特别的慢,就几百条记录,也要5、6秒出来,百思不得其解。我调笑他说:“兄弟,你是不是上卫生间不记得洗手了”。

此时他苦笑,搞不好,要挨批了。没办法,既然是江湖救急,那就来点真的吧?

1、建表代码:(总体来说没发现什么大问题!)

 strSqlCMD = "CREATE TABLE IF NOT EXISTS SCGC_DataTB(id INTEGER PRIMARY KEY AUTOINCREMENT ,dateTime TEXT,userInfor TEXT,str_MJH VARCHAR(30),str_DDH VARCHAR(30),str_PFM VARCHAR(30),str_prodCnt VARCHAR(30),str_workMode VARCHAR(30)," +

                "param_1 VARCHAR(30),param_2 VARCHAR(30),param_3 VARCHAR(30),param_4 VARCHAR(10),param_5 VARCHAR(10),param_6 VARCHAR(10),param_7 VARCHAR(10),param_8 VARCHAR(10),param_9 VARCHAR(10),param_10 VARCHAR(10)," +

                 "param_11 VARCHAR(10),param_12 VARCHAR(10),param_13 VARCHAR(10),param_14 VARCHAR(10),param_15 VARCHAR(10),param_16 VARCHAR(10),param_17 VARCHAR(10),param_18 VARCHAR(10),param_19 VARCHAR(10),param_20 VARCHAR(10)," +

                    "param_21 VARCHAR(10),param_22 VARCHAR(10),param_23 VARCHAR(10),param_24 VARCHAR(10),param_25 VARCHAR(10))";

            Public.SQLiteHelpers.ExecuteNonQuery(strSqlCMD, null);

2、查询语句:

sqlCMD = "SELECT * FROM SCGC_DataTB " + whereCMD + " ORDER BY id DESC LIMIT 0,50";

DataSet dataSet = Public.SQLiteHelpers.ExecuteDataSet(sqlCMD, null);

一眼看到大问题,有经验的程序员知道,查询语句时,不要为了省事,千万别用*代替了具体的字段。我这位工控朋友,平时他们数据量不太,所以估计没在意。这次翻船了,好了知道原因,那就好办了。

1、去掉*号,用具体字段代替。

2、优化操作数据库Sqlite类。

3、取消DataGridView所有行与列的自适应。

4、绑定数据源时,在工控机里,尽量不要用线程。

好的,废说就说这么多啊!问题已经解决,大功完成,问个红包先。

火线救急!十万火急。今天一做工控哥们问我,Sqlite查询几百条记录,速度奇慢,他的软件是工控机上一个工具,今天查询数据
火线救急!十万火急。今天一做工控哥们问我,Sqlite查询几百条记录,速度奇慢,他的软件是工控机上一个工具,今天查询数据
火线救急!十万火急。今天一做工控哥们问我,Sqlite查询几百条记录,速度奇慢,他的软件是工控机上一个工具,今天查询数据

继续阅读