存档

文章标签 ‘索引’,文章数:4

今天下午在solaris10 ASE15.0.3平台上批量创建非聚簇索引时,报下面的错误: Msg 1526, Level 17, State 5: Server 'SYB_NFJD_TEST', Procedure 'sp_helpdb', Line 674: Sort failure. The configure size for data cache (default data cache) is not sufficient to handle the sort buffers (128) requested. Please reconfigure the data cache or sort buffers and try the command again. (return status = -7) 用命令:sp_helpcache "default data [...]

今天在sqlcentral群里面有人讨论主键和索引的区别,特地搜索了一下。找到一篇,特作收藏。 http://www.cnblogs.com/chinhr/archive/2007/09/30/911792.html 其实指定列的索引就相当于对指定的列进行排序,为什么要排序呢?因为 排序有利于对该列的查询,可以大大增加查询效率。(那么可能有人认为应该对所有的列排序,这样就可以增加整个数据库的查询效率?这样的想法是错误的,原因 是建立索引也是要消耗系统资源的,给每个表里的每个列都建立索引那么将对系统造成极大的负担,那就更别提效率了!)———简单的说建立一个列 的索引,就相当与建立一个列的排序。     主键其实就是一个索引,但是这个索引跟一般的索引有所不同,不 同在于主键所在的列里的每一个的记录都是唯一的,也可以说不能在主键里出现相同的记录,在同一个表里只能有一个主键。(主键等于索引,索引不一定等于主 键)———-简单的说主键就是所在列不能出现相同记录的特殊索引,而且这个索引只能在表里出现一次。     1.主键一定是唯一性索引,唯一性索引并不一定就是主键;     2.一个表中可以有多个唯一性索引,但只能有一个主键;     3.主键列不允许空值,而唯一性索引列允许空值。

迄今已分析出来了sybase中索引(indid>1)的物理存储结构。 索引结构是B-Tree类型的。最顶部叫做根(root),最底层称为叶子(leaf)。一个表可能建有好几个非聚簇索引,这时indid依次为2,3,。。。递增。 对于一个索引,比如indid=2的那个。索引树状结构是分层次的,在sybase数据存储中用level表示,根部级别最高,叶子的级别最低。叶 子(leaf)的级别level为0,往上索引层level为1,再往上位2,。。。最后到达顶部root级别为(N-1,N为所有的层次数)。 不管APL还是DOL表,索引的每层(level)上的页面都是前后链接起来的,这一点有点像APL表中的数据页面上的前、后页链(data page link)。 以下简要演示分析索引结构的过程。 1. 设定成在终端显示dbcc结果信息。 1 2 dbcc traceon(3604) go 2. 查看syspartitions表的信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [...]

在sybase表上建立聚集索引可以提高键列的检索速度。这是索引的主要功能所在。 可是,聚集索引对于统计表上的行数count(*)有没有改善呢? 答案是否定的。 请看我下面的测试代码! 建立一张临时表test3 1 create table test3(id int not null,name varchar(30) null) 向表中插入测试数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 insert into test3 select 1,’liu’ go insert into test3 select 2,’zhang’ go insert into test3 select 3,’wang’ go insert into test3 select 4,’li’ go 循环插入 [...]