您的位置:首页技术开发数据库技巧 → 在SQL2k降序索引上使用中bug

在SQL2k降序索引上使用中bug

时间:2004/11/15 23:32:00来源:本站整理作者:蓝点我要评论(0)

解决SQL2k降序索引上使用对比条件更新或删除的bug我在SQL server 2000 enterprise 和 personal 都试过了, 每次都这样。:(

详细情况看我的回贴:



SQl server 7.0 中的确没有问题,  sql 2000 中(enterprise 和 personal版本都可以),



表要有聚簇索引,并且索引的顺序是降序,



例如 按下列DDL sql 建立的表

CREATE TABLE [AType] (

    [AID] [int] NOT NULL ,

    [name] [varchar(20)] NOT NULL ,

    CONSTRAINT [PK_DateType] PRIMARY KEY  CLUSTERED

    ([AID] DESC)  ON [PRIMARY] ,

) ON [PRIMARY]



添一些数据后, AID 分别分布在1-100之间

INSERT INTO [AType] VALUES(1,'a')

INSERT INTO [AType] VALUES(50,'b')

INSERT INTO [AType] VALUES(100,'c')



   select from atype where Aid < 50

   go

   delete from Atype where AID < 50

   go

   select from atype where Aid < 50

最后一句查询仍然有记录输出. :(





by 怡红公子

报告已经发送给MSSQL开发小组,他们承认这一错误。

在没有新的补丁出来之前,给出以下建议:

不要在单列上使用降序索引,因为这并没有在性能上带来好处,仅仅是省略了Order by field desc几个字而已,用qa的show plan看一下就知道了,不管有没有order by或者不管是asc还是desc,都没有这项开销的(在聚簇索引上)。

降序索引一般是用于复合索引的,这可能是这个bug出现的原因。

原文:

Note that there is no need to create a descending index on a single column because SQL Server can traverse

an ascending index backwards when appropriate.  Descending is normally used only in composite indexes.  

This is probably why the bug surfaces here




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 mssql企业管理器不能打 Oracle PRKC-1002错误原因和解决方案SQL SERVER数据库日志清空图文教程win2003计算机改名后sql server 2005 本地复DB2错误信息码大全

人气排行 彻底解决mysql中文乱码的办法mysql数据库root密码忘记的修改方法SQL SERVER数据库日志清空图文教程.bak备份文件如何恢复Oracle PRKC-1002错误原因和解决方案Oracle错误代码大全如何将txt的文本数据导入SQL server 2005呢DB2错误信息码大全