找回密码
 立即注册

QQ登录

只需一步,快速开始

lanting

初级会员

9

主题

56

帖子

321

积分

初级会员

积分
321

微信认证勋章

lanting
初级会员   /  发表于:2022-3-20 19:19  /   查看:1848  /  回复:4
10金币
本帖最后由 lanting 于 2022-3-20 20:29 编辑



无论是用数据表操作命令的添加还是用新的执行sql命令,执行添加50条数据用时700多毫秒!

我是用第三方api通过http请求拿到的json数据,有几万条数据需要插入本地数据库。怎么才能以最快的效率插入到本地数据库呢,我现在用的是内置数据库测试的(外置mysql也耗时也基本一致)。

存储过程能实现吗?还没开始学习存储过程。。。
还是先拼接出N个sql来,减少活字格调用执行sql的次数。。。?


再一个疑问:


执行sql返回值都是null??不应该时影响的行数才对,我理解的insert成功应该返回1,删除表内所有50条数据成功,返回 50 才对??为啥都是null呢
select返回的是json结果集,没疑问。

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

性能问题优化教程——目录 https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=140009&fromuid=63460 (出处: 葡萄城产品技术社区)

4 个回复

倒序浏览
最佳答案
最佳答案
wangpenga悬赏达人认证
金牌服务用户   /  发表于:2022-3-20 19:19:01
来自 4#
性能问题优化教程——目录
https://gcdn.grapecity.com.cn/fo ... 9&fromuid=63460
(出处: 葡萄城产品技术社区)
回复 使用道具 举报
lanting
初级会员   /  发表于:2022-3-20 21:55:59
2#
通过在循环内拼接sql字符串,实现一条insert语句批量插入几百几千条都可以10几毫秒完成!执行sql命令的作用发挥到极致。但是现在担心某一条数据插入时报错,可能会中止后面的插入数据。
回复 使用道具 举报
VVANVI悬赏达人认证
论坛元老   /  发表于:2022-3-20 23:30:21
3#
追求效率可以尝试撸源码,其实700多毫秒也不是很难接受
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-21 11:10:36
5#
本帖最后由 Chelsey.Wang 于 2022-3-21 11:13 编辑
lanting 发表于 2022-3-20 21:55
通过在循环内拼接sql字符串,实现一条insert语句批量插入几百几千条都可以10几毫秒完成!执行sql命令的作用 ...

您好,insert语句执行的次数的确会直接影响到数据添加的效率,如果数据量比较大,这样循环的话是会占用一定的性能。
建议您将返回的json在存储过程/中解析并添加到数据表。
存储过程调用 - 活字格V7帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn)

网上也有一些相关的教程,可以参考一下:
存储过程处理json数据_胡杨_的博客-CSDN博客_存储过程解析json

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部