找回密码
 加入
搜索
楼主: heavenm

[效率算法] 每天处理3W条左右的SQLITE,差不多要两个小时,研究效率写入方法!

  [复制链接]
发表于 2019-11-7 20:58:32 | 显示全部楼层
AU3的UDF是没有考虑速度的,可以自己改一下,Sqlite本身是很快的,可能放到数组里面的时候速度慢了,au3脚本循环是很慢的,还有频繁变更数组大小,这个你也发现了。
发表于 2019-11-12 13:47:19 | 显示全部楼层
sqlite  好用,但是用不好,就会出问题!后面我都用 MDB与mysql 了!这两种了!!
发表于 2019-11-21 11:35:20 | 显示全部楼层
楼主是个执着的人,顶了。
发表于 2019-12-15 01:17:07 | 显示全部楼层
询问一下 INSERT INTO "test"("%s") VALUES ("%s") 这指令是否有详细的用法,
我也有组数写入问题,1W读取后写入组数,
-----------------
Local $c = 0
_SQLite_Query(-1, "SELECT  * FROM money ORDER BY date ASC" ,$hQuery)
While _SQLite_FetchData ($hQuery, $aRow,False,False) = $SQLITE_OK
    $arraydata[$c][0] = $aRow[0]
    $arraydata[$c][1] = $aRow[1]
    $arraydata[$c][2] = $aRow[2]
    $arraydata[$c][3] = $aRow[3]
    $arraydata[$c][4] = $aRow[4]
    $arraydata[$c][5] = $aRow[5]
    $arraydata[$c][6] = $aRow[6]
    $arraydata[$c][7] = $aRow[7]

        $arraydata[$c][0] = $i
        $c += 1

        $j = ($i / $tempmno2) *100
    GUICtrlSetData($idProgressbar1, $j)
        GUICtrlSetData($k, $i)
        $i = $i + 1
WEnd
----- 已上部分代码

可以使用_ArrayDisplay($arraydata) 显示已排列的组数。但是却无法写入??

是否我有用错什么代码吗?
-----
;將讀取的資料逐一寫入 money2 資料表內
        _SQLite_Exec ( -1,'BEGIN;' )
       
        _SQLite_Exec(-1, "Insert into money2 values ('" & $arraydata & "');")
        _SQLite_Exec ( -1,'COMMIT;' )
----- 写入数据库
 楼主| 发表于 2019-12-15 10:42:58 | 显示全部楼层
yohoboy 发表于 2019-12-15 01:17
询问一下 INSERT INTO "test"("%s") VALUES ("%s") 这指令是否有详细的用法,
我也有组数写入问题,1W读取 ...

_ArrayToString($arraydata, ",")
应该把数组转化为字符串,不是数组
发表于 2019-12-15 13:04:55 | 显示全部楼层
学习ing              
发表于 2019-12-16 23:59:26 | 显示全部楼层
_SQLite_Query(-1, "SELECT  * FROM money ORDER BY date ASC" ,$hQuery)
While _SQLite_FetchData ($hQuery, $aRow,False,False) = $SQLITE_OK
        $TEXT = StringStripCR($aRow[6])
    $arraydatac &= "Insert into money2 values ('" & $i & "','" & $aRow[1] & "','" & $aRow[2] & "','" & $aRow[3] & "','" & $aRow[4] & _
                                        "','" & $aRow[5] & "','" & $TEXT & "','" & $aRow[7] & "');" & @CRLF
        $j = ($i / $tempmno2) *100
    GUICtrlSetData($idProgressbar1, $j)
        GUICtrlSetData($k, $i)
        $i += 1
WEnd
_SQLite_Exec ( -1,'begin;' )
_SQLite_Exec(-1, $arraydatac )  ;<----  配合_SQLite_Query ,預先將查詢後的資料重整並寫入字串處理。
_SQLite_Exec ( -1,'commit;' )

----以上部分代碼,1w5條短時間重整寫入,感謝協助。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-16 17:34 , Processed in 0.064999 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表