首页 > 数据库 >sql server 修改表字段长度耗时问题分析

sql server 修改表字段长度耗时问题分析

时间:2024-05-27 14:00:24浏览次数:25  
标签:段长度 sql 表字 server 耗时 SQL com ALTER

  产品报了一个bug,保存某个单据时报错,数据库错误。本地调试后发现是某个表字段长度不够导致,所以解决起来很简单,优化下长度即可,通过ALTER TABLE修改表字段长度。

  通常这么做无可厚非,字段不够当然是加字段了。不过随着业务量的提升,很多看似简单的问题在处理起来的时候,也许并不简单!

  语法如下:

ALTER TABLE 表 ALTER COLUMN 字段 类型

  在执行过程中,需要考到执行时间,有些SQL是在程序里连接数据库跑的,如果执行时间过程会报超时。而这里的SQL,如果表数据不多,一般很快,但是如果表的数据量大,上百万,千万,甚至有索引的情况下,就会很耗时了。

  具体耗时要看数据库的实际情况,笔者测这边的测试库,2w多条数据6s左右。

  当然了,如果实在耗时久,可以通过换表的方式处理,思路就是新建个表,把旧表copy过去,再删除旧表,新表改名。

 

  国内相关的资料太难查找,这里列出一些搜集的资料给大家参考:

  更改大表中的列:案例研究 |SQL 研究 (sqlstudies.com)

  [已解决]当我更改 MS SQL Server 2014 的表时会发生什么情况 - CodeProject

  KB2986423 - 修复:当行大小超过允许的最大大小时,向表添加新列需要很长时间 - Microsoft 支持

  ALTER COLUMN 性能下降 – SQLServerCentral 论坛

  如何加快在 Sql Server 中向大表添加列的速度 - 服务器故障 (serverfault.com)

  在超大表上扩展列长度 – SQLServerCentral 论坛

  SQL Server 2016 Online ALTER COLUMN 操作 (mssqltips.com)

  了解数据库管理:Berzukov,Pablo:9781450500913:Amazon.com:书籍

标签:段长度,sql,表字,server,耗时,SQL,com,ALTER
From: https://www.cnblogs.com/sunshine-wy/p/18215217

相关文章

  • Mysql初始
    存储数据的演变过程基于内存保存:字典,列表基于硬盘本地保存文本文件文件夹json模块保存基于网络保存TCP服务端数据库就是一个基于网络通信保存数据的应用程序数据库类型关系型数据库:通过关系模型组织数据,支持sql查询MySQL,postgresqlOraclesqlserver特......
  • MySQL语句基础
    SQL规范关键字不区分大小写用;结尾SQL注释单行注释--注释-注释多行注释/*注释*/SQL类型数据定义语言(DDL:Datadefinitionlanguage)1.操作(DML:datamanuplatelanguage)1.控制(DCL:datacontrollanguage)1.SQL常用命令helpstatusexitquit\c......
  • PostgreSQL备份与恢复
            PostgreSQL数据库应当被定期地备份。虽然过程相当简单,但清晰地理解其底层技术和假设是非常重要的。有三种不同的基本方法来备份PostgreSQL数据:SQL转储文件系统级备份连续归档每一种都有其优缺点,在下面的小节中将分别讨论。SQL转储        S......
  • windows下mysql修改表名大消息参数lower_case_table_names,需要initialize才生效
    第一步:尝试修改文件my.ini,发现改了重启不管用:C:\ProgramFiles\MySQL\MySQLServer8.0\bin>notepadmy.ini[mysqld]lower_case_table_names=2 第二步:尝试初始化mysql服务,带上参数。注意,会清空数据库,所以务必先备份数据!!!参考:https://blog.csdn.net/cccgo68/article/d......
  • 1915springboot VUE 宠物寄养平台系统开发mysql数据库web结构java编程计算机网页源码m
    一、源码特点 springbootVUE宠物寄养平台系统是一套完善的完整信息管理类型系统,结合springboot框架和VUE完成本系统,对理解JSPjava编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。springbootVUE宠物寄养......
  • pgsq的学习记录②——PostgreSQL基础用法
    PostgreSQL基础用法创建一个数据库操作数据库创建表删除表表插入数据查询表多表联查创建一个数据库创建一个名为postgres的数据库createdbpostgres操作数据库创建表创建表weatherCREATETABLEweather(cityvarchar(80),temp_lo......
  • 解密kube-apiserver限流机制原理
    背景apiserver是kubernetes中最重要的组件,一旦遇到恶意刷接口或请求量超过承载范围,apiserver服务可能会崩溃,导致整个kubernetes集群不可用。所以我们需要对apiserver做限流处理来提升kubernetes的健壮性。k8s-apiserver限流能力发展过程apiserver限流能力的发展分为两个阶段......
  • MySQL数据库知识点快速回忆【五分钟过一遍】
    前言为找实习做准备,跟网课学习中,差不多一周时间把MySQL部分看完(2024.5.15-2024.5.24),手敲知识点,坐地铁的时候几分钟过一遍,分享给大家。一、SQL1.1SQL简介SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。1.2通用语法SQL语句可以单行或多行......
  • k8s练习--通过NFS+PV+PVC+POD,部署一个MySQL服务,并将MySQL的数据进行持久化存储
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、实验环境二、具体步骤1.准备存储设备:这里使用的是NFS2.现在部署一个MySQL服务,并且将MySQL的数据进行持久化存储。(1)创建PV,PVC(2)部署MySQL(3)在MySQL数据库中添加数据(4)模拟MySQ服务器节点故障......
  • MySQL8.0针对某个IP添加访问权限
    #先进入mysqlmysql-uroot-p#输入对应的密码后进入#切换数据库为mysqlusemysql;#查看现有用户信息;selectuser,hostfromuser;#如果Host有对应的IP,可以通过以下语句查询授权信息,username和host为上面对应的user,host,如果要对所有IP放开限制将host写成%即可show......