go 语言,用的 gorm 表格内没有建立任何索引,共计 55 个字段。
插入之前把多条数据组成一条插入语句insert into values()
,最多 2100 个参数。
用事务和批量插入插入数据,每个事务插入 1w 条数据提交一次。
我们通常一批数据 30w,下来要 30 分钟,感觉很慢,且插入期间该表格无法进行其他操作。
想问问各位,这是 sqlserver 的性能问题,还是我操作问题,是否有更优的办法?
1
gamexg 2019-12-03 19:35:24 +08:00 1
|
2
tomczhen 2019-12-03 19:43:28 +08:00 via Android
都用 MSSQL 了,配套的企业管理器了解一下,查询分析器了解一下,自己看执行计划不就好了。
再说还有 SQL Profiler,别开源产品用太习惯了,不去用这些配套工具啊。 |
5
superrichman 2019-12-03 20:18:56 +08:00
2100 个参数. 我很好奇这是什么表要这么多参数的?
|
6
fox0001 2019-12-03 22:21:57 +08:00
用 insert 语句插入是超级慢的,一般我直接用 excel 或 csv 导入
|
7
mituxiaomanong 2019-12-03 22:43:19 +08:00 via Android
sqlbulk 了解一下? 30 万数据 10 几 20 秒即可
|
8
mituxiaomanong 2019-12-03 22:44:14 +08:00 via Android
批量插入用你那个方法 数据多了,肯定不好
|
9
zjhui 2019-12-03 23:29:47 +08:00 via Android
sqlbulk 适合大批量插入
|
10
reus 2019-12-04 00:10:37 +08:00
直接导入啊
|
11
kiracyan 2019-12-04 09:55:43 +08:00
怎么会有这么多参数.
|
12
kidexp 2019-12-05 06:00:34 +08:00
应该是 mssql 的问题 之前用 python 也遇到相同的情况 mssql 好像有专门的 buck insert 的工具可以试试哪个
|