zoukankan      html  css  js  c++  java
  • SQL Server 数据的索引引发的血案

    char,nchar,varchar,nvarchar。

    char,固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。char 的 ISO 同义词为 character

    varchar,可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加 2 个字节。所输入数据的长度可以为 0 个字符。varchar 的 ISO 同义词为 char varyingcharacter varying

    nchar,n 个字符的固定长度的 Unicode 字符数据。n 值必须在 1 到 4,000 之间(含)。存储大小为两倍 n 字节。nchar 的 ISO 同义词为 national charnational character

    nvarchar,可变长度 Unicode 字符数据。n值在 1 到 4,000 之间(含)。max 指示最大存储大小为 2^31-1 字节。存储大小是所输入字符个数的两倍 + 2 个字节。所输入数据的长度可以为 0 个字符。nvarchar 的 ISO 同义词为 national char varyingnational character varying

    业务系统中有个大表,用于日常订单记录。

    因为业务部门开发过程中,初期未介入。字段也不算特别多,大概24个字段。

    因为其中有一列非中文数据,使用了char类型。在数据增多后,系统操作越来越慢,随时把cpu满载,在线上分析了很久,也没分析到原因。

    把数据库结构拖到线下来测试,都很顺畅。

    后来一个偶然的原因,发现该char字段,但是开发的传参是varchar,导致索引失效。

  • 相关阅读:
    linux sar 命令详解
    linux perf
    Linux下的内核测试工具——perf使用简介
    系统级性能分析工具 — Perf
    使用truss、strace或ltrace诊断软件的“疑难杂症”
    6.数组类型和数组指针类型
    5.二级指针
    4.const
    3.字符串
    C/C++ 错误笔记-如果要释放内存,必须拿到内存的首地址进行释放
  • 原文地址:https://www.cnblogs.com/dreamdale/p/13613899.html
Copyright © 2011-2022 走看看