V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ZZ74
V2EX  ›  数据库

阿里云的 Sqlserver 六七百万的数据,插入慢,各位有什么排查或者解决建议

  •  
  •   ZZ74 · 1 天前 · 1180 次点击

    不是宽表。表结构 id 是自增列,一个 varchar 列,类似于订单号,建了索引。剩下就是创建更新时间,以及四五个 varchar 类型的列。
    过程是
    产生一个单号
    每个单号 3 到 4 条数据要插入这个表,用的 batch 插入。每个 batch 都是一个事务。
    插入的同时另外有服务拿着单号从这个表里取数据。

    现象是插入慢,log 看每次插入要一到两秒不止。

    降低表中的数据到 3 百万或者更少,就没问题了

    看看各位有啥思路或者经验

    15 条回复    2025-01-07 11:13:51 +08:00
    yinmin
        1
    yinmin  
       1 天前 via iPhone
    先确认不是阿里的轻量服务器,轻量不适合数据库,直接改 ecs 的 cpu 密集型服务器。

    然后看看是不是表的索引太多了?
    billzhuang
        2
    billzhuang  
       1 天前
    没有 DBA 么?
    ggabc
        3
    ggabc  
       1 天前 via Android
    什么硬盘?
    wangybsyuct
        4
    wangybsyuct  
       1 天前
    我用的是 ecs ,1CPU ,2G 内存,老配置,windows2003+sql server2008 ,大于二百万条数据后,果断分表,读写速度都在合理范围。
    cccvno1
        5
    cccvno1  
       1 天前
    不介意脏读的话加个 with(nolock) 可能会有改善
    xshell
        6
    xshell  
       1 天前
    是 RDS SQL Server ?还是自己在服务器上部署安装的 SQLServer ?
    sirwu28
        7
    sirwu28  
       1 天前
    都六七百万的数据了 早就应该应该上读写分离 或者分表了把。
    jimrok
        8
    jimrok  
       1 天前
    大概率是索引引起的,索引是为了查找方便,代价就是写入的时候需要比较多的计算,数据量越大,计算复杂度越高,自然数据多了插入就慢。没啥好办法,要么就是简化索引,分表,方法挺多的。
    PopRain
        9
    PopRain  
       1 天前
    @sirwu28 你也太看不起 SQL Server 了吧。。。。 主要还是看内存、硬盘 IO, 这么点数据量对于商业数据库实在是太小 case 了,但是如果内存不足、IO 慢,那没戏
    evan1
        10
    evan1  
       22 小时 45 分钟前
    同意楼上。

    复制出来一张备份表,在备份表里把订单号索引去掉试试,观察下去掉前和去掉后的差异。
    qq1427168550
        11
    qq1427168550  
       22 小时 17 分钟前
    找专业的我试试 alyunflc
    ZZ74
        12
    ZZ74  
    OP
       19 小时 2 分钟前
    @yinmin 就主键 外加一个索引
    @billzhuang 没有
    @ggabc 买的阿里云的数据库服务,不知道啥硬盘
    @xshell RDS
    @PopRain 我也觉得 正常情况下这么点数据应该完全没问题。鬼知道阿里云的 rds 底下配置和做了啥
    yinmin
        13
    yinmin  
       15 小时 33 分钟前 via iPhone
    大概率是 rds 的内存太小了。我们部署企业项目的时候,都要求甲方服务器内存是数据库文件的 2 倍以上。例如:mssql 的 data 目录里 mdf 文件有 20GB ,服务器内存要 40GB 以上。

    阿里云的 rds 不划算,用 ecs 通用型或者 ecs 计算型自己部署 winserver+mssql 更可控。mssql 维护简单,做好每 5 分钟日志备份/每天全量备份到另外一台服务器的共享目录即可。
    yinmin
        14
    yinmin  
       15 小时 20 分钟前 via iPhone
    @sirwu28 #7 mssql 做企业应用还是挺强的。16 核 32 线程 128GB 的 mssql 服务器,企业级 ssd raid ,7000-8000 万条长记录,上百个并发连接都不卡,某些客户端汇总统计一条 select 跑十几分钟,其他的并发连接也不卡。

    不过么,现在要信创淘汰 mssql ,要改用国产数据库了。
    opengps
        15
    opengps  
       4 小时 3 分钟前
    “数据量大了之后插入慢”。大概率是因为维护索引引起的,你要是没这个索引,写入性能就不会在数据量大的情况下下降严重了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5549 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 07:17 · PVG 15:17 · LAX 23:17 · JFK 02:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.