Sybase IQ 索引和数据类型.docxVIP

  • 2
  • 0
  • 约5.24千字
  • 约 6页
  • 2024-03-15 发布于湖北
  • 举报

SybaseIQ索引和数据类型

1、SybaseIQ的9种索引类型:

、FP(FastProjection)此索引为默认的索引形式,在创建表时系统自动设置此索引。

特点:用于SELECT、LIKE‘%sys%’、SUM(AB)、JOIN操作等语句。此类型索引也是唯一可用于BIT数据类型的索引。

FP索引可以优化索引,将小于255的唯一值的索引压缩到1字节中,将小于65537的唯一值索引压缩到2字节中。方法:设置Minimize_Storage选项On,建表时指定IQUNIQUE关键字。

、LF(LowFast)基于平衡树的结构,存储唯一值小于1500个的索引,是最快的索引类型。可以用作唯一索引。

特点:用于=、!=、IN、NOTIN查询参数。

MIN()、MAX()、COUNT()、GroupBy、JOIN等。

、HNG(HighNongroup)基于位的优化索引,适合于数字索引。用于范围查找和求合计算。

特点:Rangs、Between、MIN()、MAX()、SUM()、AVG()等。

、HG(HighGroup)基于平衡树的结构,存储唯一值大于1500个的索引,是最快的索引类型。可以用作唯一索引。

特点:同LF索引的特点。

、CMP(compare)仅用于比较一个表中的两个列的比较。特点:、=、、=、=

数据库选项设置为On的时候有利于节省资源,有利于性能。

、WD(Word),仅用于索引数据类型为WORD的列。特点:‘CONTAINS’、LIKE操作(但没有‘%’)。

例子:

Selectcount(*)fromCustomerwhereaddresscontains(‘Main’)

、DATE(date)仅用于日期类型的列。

、DTTM(Datetime)仅用于日期时间类型的列。

、TIME(Time)仅用于时间类型的列。例子:

Select*fromsaleswhereDATAPART(YEAR,dales_dt)=2007

Select*fromsaleswheresales_dt=‘2003-01-0108:00:00’

【评选】SybaseIQ列存储、数据压缩和索引技术

SybaseIQ——革命性的产品

Sybase的数据仓库方法从根本上不同于其他的关系型数据库提供商。Sybase认为,传统的关系型方法以及ROLAP方法效率很低,要想获得足够的性能,必须通过高额的成本,在额外的硬件、软件、资源、钱、时间上进行大量投资,否则不可能达到。因此Sybase已经开发了一个新的关系型数据库——逆向关系型数据库可能是对此最好的解释,它使用一个传统的关系型结构以及类似的非常熟悉的术语,但是却是基于列的,而非基于行的。

我们开始审视SybaseIQ时,我们正是从此点开始,我们发现,Sybase对其使用列方法的好处所作的论述“相当令人信服”。然而,通过对数据仓库不断增加需求、迅猛增长的来自Web的数据与用户所带来的分析和报表(更不必提即将到来的RFID应用),以及客户的经验等等,我们现在可以证明,SybaseIQ提供了一个远比那些传统的关系型供应商更优越的方法。

列存储

不同于传统的关系型数据库,其数据在表中是按行存储的,SybaseIQ是通过表中的列来存储与访问数据的。尽管这种方式很明显的不太适合于交易环境,在交易环境中,一个事务与一行数据有效对应,而在查询进程环境中,很显然,查询是基于特定的列来选择的。

列方式所带来的重要好处之一就是,由于查询中的选择规则是通过列来定义的,因此整个数据库是自动索引化的。事实上,情况并不象上述的这样简单,SybaseIQ有各种方法支持基于列的索引,我们将在下面就此讨论。

使用列方法的另一个结果就是,SybaseIQ在压缩方面比传统的关系型数据库更加有效(根据Sybase所称,效果可达5倍之好)。这个原因,无消说,是由于同一列中的所有数据域有相同的数据类型。因此,每一列都可以为优化的效率与检索进行压缩。相比来讲,基于行的存储,各个不同的域拥有各不相同的数据类型,这非常适合于交易进程。在这样的环境中,不断变换理想的压缩算法是不可行的,这意味着任何压缩都将可能是一种最低通用的规则。

基于列的方法的另一个重要优势完全基于所有读出的数据量。无论何时你从传统的数据库中访问数据,你需要读出完整的每一行,而不管你实际所感兴趣的是哪些域。实际上,这可能意味着读300个字节的数据仅仅检索20个字符的数据。但是,基于列来读取数据,你仅仅需要读出你想要了解的数据。当然,读取一条单独的

文档评论(0)

1亿VIP精品文档

相关文档