排序和索引

概念信息

SORT 命令

INDEX 命令

排序和索引是两种不同的对表中的数据进行序列排序的方法。某些 Analytics 命令要求首先对输入进行排序或者索引。对数据进行排序本身也可以是有用的解析操作,可让您发现模式和异常。

操作 描述
排序

对表进行排序是以物理方式将数据按序列顺序重新排序,并将结果输出到新 Analytics 表中。

建立索引

建立索引不会对数据的基本物理顺序做任何改动。与此相反,它能创建独立的索引文件,此文件可引用表中的记录,允许按照序列顺序而不是物理顺序来访问记录。只有当索引处于活动状态时,才会根据索引将视图中的数据重新排序。

作为其他操作的先决条件的数据排序

因为计算机从第一个记录开始按顺序处理文件,所以,对于 Analytics 中的多种分析测试和其他操作而言,对数据进行序列排序是一个先决条件。联接或关联等多表操作可能要求对键域进行排序或索引。

其他 Analytics 测试和操作可能不需要已排序的数据,但是,如果首先对数据进行排序或索引,则它们的执行速度可以大大提高。

我应该进行排序还是索引?

是否进行排序或索引的决定可能取决于您想要执行的具体任务。例如:

  • 对调查工作而言,排序可能是更好的选择,因为它输出一个可作为后续分析的基础的新表
  • 对于信息性或基础性工作而言,索引可能是更好的选择,因为它能让您在活动表中的不同数据呈现方式间快速切换

排序和索引的优缺点

下表比较了排序和索引的优点和缺点,并列出了需要将排序或索引作为先决条件的操作。

功能区域

排序

建立索引

将结果输出到新的、物理上独立的 Analytics 表

按物理方式重新排序数据

操作速度

较慢

较快

处理时所需的磁盘空间

更多

较少

生成文件的大小

较大

较小

排序或索引文件的后续处理

较快

较慢

搜索字符域

较慢

较快

先决条件

  • 联接

    (对主表而言,建议而非强制这样做)

  • 合并
  • 重复
  • 间隔
  • 定义关系

    (Analytics 自动对子表键域执行索引)

  • 联接

    (只能从命令行或者在脚本中向辅助表应用索引)

  • 合并

    (只能从命令行或者在脚本中向辅助表应用索引)

  • 重复
  • 间隔
  • 查找
  • “查找文字”搜索选项
  • 寻找
  • 寻找“表达式”搜索选项

“排序顺序”选项和排序顺序

排序顺序选项(工具 > 选项 > 表)指定字符数据的排序序列(排序规则)。您指定的选项定义了在使用字符域排序、索引记录或测试序列顺序时使用的排序序列。

什么是排序序列?

排序序列就像一个模板,在排序、索引、测试序列顺序或执行快速排序时,Analytics 依据它比较字符域中每个值的头一个或多个字符。

下表显示了默认的 Analytics 排序顺序设置和关联的排序序Analytics列。

Analytics 版本

默认排序顺序

关联排序顺序

非 Unicode

系统默认

(ASCII)

  • 先是数字,然后是大写、小写

    0, 1, 2...  A, B, C...  a, b, c...

    例如,“Z”排在“a”之前。

  • 特殊字符根据字符的不同出现在顺序中不同的位置。

  • 带有附加符号的字符出现在顺序末尾,并且同样采用大写在小写之前的内部顺序。

Unicode

混合语言 (UCA)

(Unicode 排序算法)

  • 先是数字,然后是小写、大写相互混合

    0, 1, 2...  a, A, b, B, c, C...

    例如,“a”排在“Z”之前。

  • 特殊字符出现在数字之前。

  • 带附加符号的字符与不带附加符号的字符相互混合。

    例如:e, E, é, É, f, F

更改排序顺序

您可以将排序顺序更改为不同的语言,如果它能够更好地匹配您要分析的数据。在 Unicode 版本的 Analytics 中,您还可以使用命令行或脚本中的 ISOLOCALE 参数在命令基础上进行此更改。

修改排序序列

在非 Unicode 版本的 Analytics 中,如果要选择不同的语言,可以通过在排序顺序文本框中更改字符的顺序来修改相关联的排序顺序。

另外,也可以通过在排序顺序域中选择自定义并指定序列,或者通过在命令行或脚本中输入 SET ORDER <TO> 并指定序列来创建自定义排序顺序。您指定的任何字符都将排在所有其他字符之前,并按您所指定的顺序排列。例如,您可以通过输入值 aAbBcC... 来指定混用小写和大写字母。指定 SET ORDER 会使排序序列恢复其默认设置。

基于字节顺序的默认排序序列

各种语言的默认排序序列源于其字符集中每个字符的字节顺序。您可以使用“Windows 字符映射”查看字符集中字符的字节顺序。