go 语言,用的 gorm 表格内没有建立任何索引,共计 55 个字段。
插入之前把多条数据组成一条插入语句insert into values()
,最多 2100 个参数。
用事务和批量插入插入数据,每个事务插入 1w 条数据提交一次。
我们通常一批数据 30w,下来要 30 分钟,感觉很慢,且插入期间该表格无法进行其他操作。
想问问各位,这是 sqlserver 的性能问题,还是我操作问题,是否有更优的办法?
![]() | 1 gamexg 2019-12-03 19:35:24 +08:00 ![]() |
![]() | 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 的工具可以试试哪个 |